Sumber daya yang dimuat... Pemuatan...

Strategi perdagangan kuantitatif multi-level berdasarkan Bollinger Bands Trend Divergence

Penulis:ChaoZhang, Tanggal: 2024-12-27 15:52:41
Tag:BBEMASMAstdevBBDIVTren

img

Gambaran umum

Strategi ini adalah sistem perdagangan kuantitatif multi-level berdasarkan divergensi tren Bollinger Bands dan perubahan bandwidth dinamis. Strategi ini membangun kerangka keputusan perdagangan yang lengkap dengan memantau dinamika lebar Bollinger Bands, price breakout, dan koordinasi EMA200. Ini menggunakan mekanisme pelacakan volatilitas adaptif untuk secara efektif menangkap titik balik tren pasar.

Prinsip Strategi

Strategi ini didasarkan pada elemen kunci berikut:

  1. Perhitungan Bollinger Bands menggunakan rata-rata bergerak 20 periode dan 2 standar deviasi
  2. Penentuan kekuatan tren melalui perubahan bandwidth di tiga titik waktu berturut-turut
  3. Validasi penembusan menggunakan badan lilin untuk rasio bandwidth
  4. EMA200 sebagai filter tren jangka menengah dan panjang
  5. Masuk panjang ketika harga melanggar band atas dengan kondisi bandwidth yang berkembang
  6. Keluar ketika harga menembus band bawah dengan kondisi bandwidth yang menyusut

Keuntungan Strategi

  1. Sistem sinyal berwawasan ke depan yang mengidentifikasi titik perubahan tren potensial
  2. Validasi silang beberapa indikator teknis mengurangi sinyal palsu
  3. Indikator tingkat perubahan bandwidth beradaptasi dengan baik dengan volatilitas pasar
  4. Logika masuk dan keluar yang jelas, mudah diimplementasikan secara program
  5. Mekanisme pengendalian risiko yang komprehensif secara efektif mengendalikan penarikan

Risiko Strategi

  1. Dapat menghasilkan perdagangan yang sering di berbagai pasar
  2. Potensi keterlambatan saat perubahan tren tiba-tiba
  3. Optimasi parameter menghadapi risiko overfit
  4. Risiko slippage selama periode volatilitas pasar yang tinggi
  5. Membutuhkan pemantauan konstan terhadap efektivitas indikator bandwidth

Arah Optimasi Strategi

  1. Memperkenalkan mekanisme optimasi parameter adaptif
  2. Tambahkan volume dan indikator tambahan lainnya untuk validasi
  3. Mengoptimalkan kondisi stop loss dan take profit
  4. Meningkatkan standar kuantitatif untuk penilaian kekuatan tren
  5. Masukkan filter lingkungan pasar tambahan

Ringkasan

Strategi ini membangun sistem perdagangan yang kuat melalui divergensi tren Bollinger Bands dan perubahan bandwidth dinamis. Sementara berkinerja sangat baik di pasar tren, perbaikan diperlukan untuk pasar berkisar dan optimasi parameter. Secara keseluruhan, strategi ini menunjukkan nilai praktis yang baik dan ruang untuk ekspansi.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("BBDIV_Strategy", overlay=true)

// Inputs for Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Multiplier")

// Calculate Bollinger Bands
basis = ta.sma(close, length)
deviation = mult * ta.stdev(close, length)
upperBB = basis + deviation
lowerBB = basis - deviation

// Calculate Bollinger Band width
bb_width = upperBB - lowerBB
prev_width = ta.valuewhen(not na(bb_width[1]), bb_width[1], 0)
prev_prev_width = ta.valuewhen(not na(bb_width[2]), bb_width[2], 0)

// Determine BB state
bb_state = bb_width > prev_width and prev_width > prev_prev_width ? 1 : bb_width < prev_width and prev_width < prev_prev_width ? -1 : 0

// Assign colors based on BB state
bb_color = bb_state == 1 ? color.green : bb_state == -1 ? color.red : color.gray

// Highlight candles closed outside BB
candle_size = high - low
highlight_color = (candle_size > bb_width / 2 and close > upperBB) ? color.new(color.green, 50) : (candle_size > bb_width / 2 and close < lowerBB) ? color.new(color.red, 50) : na

bgcolor(highlight_color, title="Highlight Candles")

// Plot Bollinger Bands
plot(upperBB, title="Upper BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(lowerBB, title="Lower BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(basis, title="Middle BB", color=color.blue, linewidth=1, style=plot.style_line)

// Calculate EMA 200
ema200 = ta.ema(close, 200)

// Plot EMA 200
plot(ema200, title="EMA 200", color=color.orange, linewidth=2, style=plot.style_line)

// Strategy logic
enter_long = highlight_color == color.new(color.green, 50)
exit_long = highlight_color == color.new(color.red, 50)

if (enter_long)
    strategy.entry("Buy", strategy.long)

if (exit_long)
    strategy.close("Buy")

// Display profit at close
if (exit_long)
    var float entry_price = na
    var float close_price = na
    var float profit = na

    if (strategy.opentrades > 0)
        entry_price := strategy.opentrades.entry_price(strategy.opentrades - 1)
        close_price := close
        profit := (close_price - entry_price) * 100 / entry_price * 2 * 10 // Assuming 1 pip = 0.01 for XAUUSD
        label.new(bar_index, high + (candle_size * 2), str.tostring(profit, format.mintick) + " USD", style=label.style_label_up, color=color.green)


Berkaitan

Lebih banyak