Strategi dagangan kuantitatif berdasarkan kejayaan Bollinger Band


Tarikh penciptaan: 2024-02-04 14:52:52 Akhirnya diubah suai: 2024-02-04 14:52:52
Salin: 0 Bilangan klik: 802
1
fokus pada
1617
Pengikut

Strategi dagangan kuantitatif berdasarkan kejayaan Bollinger Band

Gambaran keseluruhan

Strategi ini melakukan strategi perdagangan Brin Belt Breakthrough dengan mengira Brin Belt Up, Mid, Down dan menilai harga penutupan dengan garis K. Apabila harga menembus tren, lakukan lebih banyak; apabila harga menembus tren, kosong.

Prinsip Strategi

  1. Hitung Brin Belt SMA tengah, panjangnya 60 kitaran, yang mewakili arah tengah trend harga.

  2. Berhitung jalur Brin ke atas dan ke bawah, jalur atas adalah jarak + 2 kali standard, jalur bawah adalah jarak -2 kali standard, bandwidth melalui kawalan berbilang nilai.

  3. Apabila harga penutupan lebih besar daripada tren atas, masuk lebih banyak; apabila harga penutupan kurang dari tren bawah, masuk kosong.

  4. Setting stop loss stop brake mechanism. Stop loss ialah 1.5% dan stop brake ialah 6%

  5. Apabila harga memasuki semula Brin atau mencetuskan Stop Loss untuk keluar dari kedudukan, kedudukan kosong akan dikeluarkan.

Analisis kelebihan

  1. Menggunakan indikator Brin untuk menilai harga, mempunyai kebolehan yang lebih kuat untuk menilai trend.

  2. Strategi ini mudah digunakan dan mudah difahami.

  3. Tetapkan pengendalian risiko mekanisme penangguhan kerosakan

Analisis risiko

  1. Penembusan Brin tidak dapat menentukan dengan tepat titik pembalikan trend harga, dan terdapat risiko penembusan palsu.

  2. Penetapan yang tidak munasabah terhadap penghalang kemusnahan boleh membawa kepada risiko yang lebih besar.

  3. Frekuensi transaksi mungkin lebih tinggi, dan kesan kos transaksi perlu dipertimbangkan.

Arah pengoptimuman

  1. Digabungkan dengan indikator lain untuk menapis isyarat pecah palsu. Sebagai contoh, indikator KDJ menilai trend, MACD menilai deviasi.

  2. Secara dinamik menyesuaikan parameter Brin band, bandwidth yang munasabah dikira berdasarkan turun naik pasaran.

  3. Mengoptimumkan strategi hentian kerugian, hentian terowong atau hentian hentian kerugian secara berturut-turut

  4. Mengambil kira kesan kos urus niaga, menyesuaikan tempoh pegangan.

ringkaskan

Strategi ini mempunyai kesan tertentu untuk mencapai trend mengikut harga melalui penunjuk Brin, tetapi mungkin terdapat penembusan palsu yang membawa risiko yang lebih besar. Anda boleh mempertimbangkan kombinasi dengan penunjuk lain dan terus menguji parameter pengoptimuman untuk mengawal risiko dan meningkatkan keuntungan.

Kod sumber strategi
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fuera Bolinga", overlay=true)

length = input.int(60, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
take_profit_percentage = 6.0

basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

stop_loss_percentage = 1.5

// Determinar si la vela cierra por fuera de las bandas
above_upper_band = close > upper
under_lower_band = close < lower

// Pintar las velas que cierran por fuera de las bandas
barcolor(above_upper_band ? color.new(#2cee32, 0) : na)
barcolor(under_lower_band ? color.new(#e02c2c, 0) : na)

// Entrada larga con stop loss y take profit
if (ta.crossover(close, upper))
    strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

// Entrada corta con stop loss y take profit
if (ta.crossunder(close, lower))
    strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//// Salida de operación larga
if ((ta.crossunder(close, upper) or ta.crossunder(close, lower)) and (strategy.opentrades != 0))
    strategy.close("BBandLE")

// Salida de operación corta
if ((ta.crossover(close, lower) or ta.crossover(close, upper)) and (strategy.opentrades != 0))
    strategy.close("BBandSE")
	
// Plot de las bandas de Bollinger
plot(upper, color=color.new(#2cee32, 0), title="Upper Bollinger Band")
plot(lower, color=color.new(#e02c2c, 0), title="Lower Bollinger Band")