Strategi perdagangan kuantitatif jangka menengah-panjang berdasarkan Bollinger Bands

Penulis:ChaoZhang, Tanggal: 2023-09-14 20:09:13
Tag:

Artikel ini menjelaskan secara rinci strategi perdagangan kuantitatif jangka menengah dan panjang menggunakan Bollinger Bands.

I. Logika Strategi

Strategi ini terutama menggunakan indikator Bollinger Bands berikut:

  1. Menghitung harga moving median sebagai garis dasar selama periode tertentu.

  2. Hitung standar deviasi harga dan kalikan dengan faktor sebagai kisaran.

  3. Rentang ± median membentuk pita atas dan bawah.

  4. Harga menembus band menghasilkan sinyal perdagangan.

Logika perdagangan khusus adalah:

Ketika harga menembus band bawah, sinyal beli dihasilkan untuk mengambil posisi panjang.

Ketika harga melanggar band atas, sinyal jual dihasilkan untuk mengambil posisi pendek.

Ambil keuntungan dan stop loss ditetapkan pada persentase tetap untuk mengunci keuntungan dan kerugian.

Secara keseluruhan, strategi ini mengidentifikasi tren jangka menengah dan panjang dengan mendeteksi price breakout dari Bollinger Bands.

II. Keuntungan dari Strategi

Keuntungan utama dari strategi ini adalah:

Pertama, Bollinger Bands dapat mengidentifikasi price breakouts dan reversals untuk menangkap tren jangka menengah dan panjang.

Kedua, langsung stop loss dan mengambil keuntungan pengaturan bantuan dalam pengelolaan uang yang bijaksana.

Akhirnya, aturan yang sederhana dan jelas membuat strategi ini mudah diterapkan dan dioptimalkan.

III. Potensi Risiko

Namun, risiko berikut harus diperhatikan:

Pertama, pita harus dioptimalkan dengan tepat untuk sinyal yang stabil.

Kedua, stop loss set terlalu kecil risiko keuntungan yang tidak cukup, sementara terlalu besar meningkatkan risiko.

Akhirnya, perdagangan yang terlalu sering harus dicegah.

IV. Ringkasan

Singkatnya, artikel ini telah menjelaskan strategi perdagangan kuantitatif jangka menengah-panjang menggunakan Bollinger Bands untuk mengikuti tren. Ini dapat melacak tren harga dalam jangka menengah hingga panjang, tetapi membutuhkan penyetelan interval band dan tingkat stop loss. Secara keseluruhan, ini memberikan pendekatan tren yang relatif sederhana dan intuitif.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//------------------------------------
//
// 『おすすめストラテジーSS1』
// 『BitMEX XBTUSD 30分足向け中長期用ストラテジー』
//  本番用ストラテジーファイル
//
//
//
//------------------------------------
//【説明】
// 『おすすめストラテジーSS1』のPineスクリプトです。
//------------------------------------
 
//@version=3
// strategy(title = "『おすすめストラテジーSS1』", shorttitle="Strategy1", initial_capital=1200000, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.05, overlay=true)
 
 
//------------------------------------
//
//ストラテジーロジック
//
//------------------------------------
 
 
source = close
 
length = input(51, minval = 1, title = "移動平均")
mult = input(3.01, minval = 0.001,step=0.01, maxval = 10, title = "マルチ")
 
Rikaku = input(14.2, minval = 0.1, step=0.1,maxval = 100, title = "利確(%)")
Songiri = input(99, minval = 0.1, maxval = 100, title = "損切(%)")
 
base = sma(source, length)
range = mult * stdev(source, length)
 
upper = base + range
lower = base - range
 
short_cond = crossover(source, lower)
long_cond = crossunder(source, upper)
 
 
cl = 0.0
cl := na(cl[1]) ? sma(source, length) : (cl[1] * (length - 1) + source) / length
 
plot(cl, color=black)
 
up_plot = plot(upper, color=blue)
low_plot = plot(lower, color=red)
 
fill(up_plot, low_plot,color=#009900)
 
//------------------------------------
//
//オーダー処理
//
//------------------------------------
 
 
if (long_cond)
 
	strategy.entry("Long_Entry", strategy.long, oca_name="BollingerBands", comment="Long")
 
	//BitFlyerのようなJPY建ての場合は以下のコードを使います。他の通貨ペアにする場合も1ティックが異なるため桁数の変更が必要です。
	//strategy.exit("LE Exit", "BBandLE", profit = close*(Rikaku/100)*100, loss = close*(Songiri/100)*100, comment="Close")
	strategy.exit("Long_Exit", "Long_Entry", profit = close*(Rikaku/100)*10, loss = close*(Songiri/100)*10, comment="LongClose")
 
if (short_cond)
 
	strategy.entry("Short_Entry", strategy.short, oca_name="BollingerBands",  comment="Short")
 
    //BitFlyerのようなJPY建ての場合は以下のコードを使います。他の通貨ペアにする場合も1ティックが異なるため桁数の変更が必要です。
    //strategy.exit("SE Exit", "BBandSE", profit = close*(Rikaku/100)*100, loss = close*(Songiri/100)*100, comment="Close")
    strategy.exit("Short_Exit", "Short_Entry", profit = close*(Rikaku/100)*10, loss = close*(Songiri/100)*10, comment="ShortClose")

Lebih banyak