Sumber dimuat naik... memuat...

Strategi Dagangan Kuantitatif Berbilang Tahap Berdasarkan Trend Divergence Bollinger Bands

Penulis:ChaoZhang, Tarikh: 2024-12-27 15:52:41
Tag:BBEMASMAstdevBBDIVTrend

img

Ringkasan

Strategi ini adalah sistem perdagangan kuantitatif pelbagai peringkat berdasarkan perbezaan trend Bollinger Bands dan perubahan lebar jalur dinamik. Strategi ini membina kerangka keputusan perdagangan yang lengkap dengan memantau dinamik lebar Bollinger Bands, penembusan harga, dan koordinasi EMA200. Ia menggunakan mekanisme penjejakan turun naik adaptif untuk menangkap titik perubahan trend pasaran dengan berkesan.

Prinsip Strategi

Strategi ini berdasarkan unsur utama berikut:

  1. Pengiraan Bollinger Bands menggunakan purata bergerak 20 tempoh dan 2 penyimpangan standard
  2. Penentuan kekuatan trend melalui perubahan lebar jalur di tiga titik masa berturut-turut
  3. Pengesahan pecah menggunakan badan lilin untuk nisbah lebar jalur
  4. EMA200 sebagai penapis trend jangka sederhana dan panjang
  5. Masuk panjang apabila harga memecahkan di atas jalur atas dengan keadaan lebar jalur yang berkembang
  6. Keluar apabila harga pecah di bawah jalur bawah dengan keadaan lebar jalur yang menyusut

Kelebihan Strategi

  1. Sistem isyarat berwawasan ke hadapan yang mengenal pasti titik perubahan trend yang berpotensi
  2. Penyelarasan silang pelbagai penunjuk teknikal mengurangkan isyarat palsu
  3. Penunjuk kadar perubahan lebar jalur menyesuaikan diri dengan baik dengan turun naik pasaran
  4. Logik masuk dan keluar yang jelas, mudah dilaksanakan secara programatik
  5. Mekanisme kawalan risiko yang komprehensif mengawal pengeluaran secara berkesan

Risiko Strategi

  1. Boleh menghasilkan perdagangan yang kerap di pasaran yang berbeza
  2. Potensi kelewatan semasa perubahan trend tiba-tiba
  3. Pengoptimuman parameter menghadapi risiko overfit
  4. Risiko lipatan semasa tempoh turun naik pasaran yang tinggi
  5. Memerlukan pemantauan berterusan keberkesanan penunjuk lebar jalur

Arahan Pengoptimuman Strategi

  1. Memperkenalkan mekanisme pengoptimuman parameter adaptif
  2. Tambah jumlah dan penunjuk tambahan lain untuk pengesahan
  3. Mengoptimumkan keadaan stop-loss dan mengambil keuntungan
  4. Meningkatkan standard kuantitatif untuk penilaian kekuatan trend
  5. Masukkan penapis persekitaran pasaran tambahan

Ringkasan

Strategi ini membina sistem dagangan yang kukuh melalui perpecahan trend Bollinger Bands dan perubahan lebar jalur dinamik. Walaupun berprestasi cemerlang di pasaran trend, peningkatan diperlukan untuk pasaran berkisar dan pengoptimuman parameter. Secara keseluruhan, strategi ini menunjukkan nilai praktikal yang baik dan ruang untuk pengembangan.


/*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 lanjut