Adaptive Bollinger Bands Trend Mengikuti Strategi dan Sistem Pengurusan Risiko Berbilang Lapisan

BB EMA SL TP SMA
Tarikh penciptaan: 2025-02-10 15:14:57 Akhirnya diubah suai: 2025-02-10 15:14:57
Salin: 3 Bilangan klik: 446
1
fokus pada
1617
Pengikut

Adaptive Bollinger Bands Trend Mengikuti Strategi dan Sistem Pengurusan Risiko Berbilang Lapisan

Gambaran keseluruhan

Strategi ini adalah sistem pengesanan trend yang menggabungkan Bollinger Bands dan indikator EMA untuk mengoptimumkan prestasi perdagangan melalui mekanisme kawalan risiko berlapis. Inti strategi ini adalah untuk menangkap trend pasaran menggunakan bentuk regresi terobosan Bollinger Bands di bawah landasan, sambil menggabungkan penapis trend EMA untuk meningkatkan ketepatan perdagangan.

Prinsip Strategi

Logik perdagangan strategi ini adalah berdasarkan kepada beberapa elemen utama:

  1. Menggunakan standard deviation (STDDEV) 1.5 dengan kitaran 14 sebagai indikator isyarat perdagangan utama
  2. Apabila satu garis K semasa menembusi harga penutupan dan garis K semasa berbalik, ia akan mencetuskan isyarat kosong
  3. Apabila satu garis K semasa menembusi harga penutupan dan garis K semasa menjadi kuat, ia akan mencetuskan isyarat berganda
  4. EMA 80 kitaran boleh ditambah secara pilihan sebagai penapis trend, hanya membuka kedudukan apabila arah trend selaras
  5. Aktifkan Tracking Stop Loss apabila harga melintasi Brin Belt Mid-Trail
  6. Jumlah sasaran yang boleh ditetapkan untuk menghentikan kerugian dan keuntungan
  7. Menyokong mekanisme penyelesaian automatik berdasarkan bilangan baris K

Kelebihan Strategik

  1. Menggabungkan ciri-ciri trend-following dan reversal trading, mampu menunjukkan prestasi yang stabil dalam pelbagai keadaan pasaran
  2. Sistem kawalan risiko bertingkat menyediakan program pengurusan wang yang menyeluruh
  3. Tetapan parameter yang fleksibel membolehkan strategi menyesuaikan diri dengan keadaan pasaran yang berbeza
  4. Penapis EMA berkesan mengurangkan risiko penembusan palsu
  5. Mekanisme Tracking Stop Loss berkesan mengunci keuntungan
  6. Mekanisme penadaman dimensi masa mengelakkan risiko penjara jangka panjang

Risiko Strategik

  1. Isyarat pelarian palsu yang kerap mungkin berlaku dalam pasaran yang tidak menentu
  2. Penutupan jumlah tetap mungkin tidak sesuai untuk semua keadaan pasaran
  3. Penapisan EMA boleh menyebabkan peluang perdagangan penting terlepas
  4. Tracking Stop Losses boleh mendatangkan pelepasan awal dalam pasaran yang bergelombang tinggi
  5. Pengoptimuman parameter boleh menyebabkan data sejarah terlalu sesuai

Arah pengoptimuman strategi

  1. Memperkenalkan kitaran Brin yang menyesuaikan diri, menyesuaikan diri secara dinamik mengikut turun naik pasaran
  2. Membangunkan Sistem Henti Kerosakan Bergerak Berasaskan Pengurusan Wang
  3. Menambah analisis jumlah transaksi untuk mengesahkan kesahihan penembusan
  4. Sistem pengoptimuman parameter untuk mencapai kecerdasan
  5. Tambah modul pengenalan persekitaran pasaran untuk menggunakan parameter yang berbeza dalam keadaan pasaran yang berbeza

ringkaskan

Ini adalah sistem pengesanan trend yang direka dengan baik, yang menyediakan isyarat perdagangan yang boleh dipercayai melalui gabungan Brin dan EMA, dan memastikan keselamatan perdagangan melalui pelbagai tahap kawalan risiko. Strategi ini sangat boleh dikonfigurasi, dapat menyesuaikan diri dengan gaya perdagangan dan persekitaran pasaran yang berbeza. Walaupun terdapat beberapa risiko yang wujud, kestabilan dan keuntungan strategi dapat ditingkatkan lagi melalui arah pengoptimuman yang disyorkan.

Kod sumber strategi
/*backtest
start: 2025-01-10 00:00:00
end: 2025-02-08 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("AI Bollinger Bands Strategy with SL, TP, and Bars Till Close", overlay=true)

// Input parameters
bb_length           = input.int(14, title="Bollinger Bands Length", minval=1)
bb_stddev           = input.float(1.5, title="Bollinger Bands Standard Deviation", minval=0.1)
use_ema             = input.bool(true, title="Use EMA Filter")
ema_length          = input.int(80, title="EMA Length", minval=1)
use_trailing_stop   = input.bool(true, title="Use Trailing Stop")
use_sl              = input.bool(true, title="Use Stop Loss")
use_tp              = input.bool(false, title="Use Take Profit")
sl_dollars          = input.float(300.0, title="Stop Loss (\$)", minval=0.0)
tp_dollars          = input.float(1000.0, title="Take Profit (\$)", minval=0.0)
use_bars_till_close = input.bool(true, title="Use Bars Till Close")
bars_till_close     = input.int(10, title="Bars Till Close", minval=1)
// New input to toggle indicator plotting
plot_indicators     = input.bool(true, title="Plot Bollinger Bands and EMA on Chart")

// Calculate Bollinger Bands and EMA
basis      = ta.sma(close, bb_length)
upper_band = basis + bb_stddev * ta.stdev(close, bb_length)
lower_band = basis - bb_stddev * ta.stdev(close, bb_length)
ema        = ta.ema(close, ema_length)

// Plot Bollinger Bands and EMA conditionally
plot(plot_indicators  ? basis : na, color=color.blue, linewidth=2, title="Basis (SMA)")
plot(plot_indicators ? upper_band : na, color=color.red, linewidth=2, title="Upper Band")
plot(plot_indicators  ? lower_band : na, color=color.green, linewidth=2, title="Lower Band")
plot(plot_indicators   ? ema   : na, color=color.orange, linewidth=2, title="EMA")

// EMA conditions
ema_long_condition  = ema > ema[1]
ema_short_condition = ema < ema[1]

// Entry conditions
sell_condition = close[1] > upper_band[1] and close[1] > open[1] and close < open
if sell_condition and (not use_ema or ema_short_condition)
    strategy.entry("Sell", strategy.short)

buy_condition = close[1] < lower_band[1] and close > open
if buy_condition and (not use_ema or ema_long_condition)
    strategy.entry("Buy", strategy.long)

// Trailing stop logic
if use_trailing_stop
    if strategy.position_size > 0 and close >= basis
        strategy.exit("Trailing Stop Long", from_entry="Buy", stop=low)
    if strategy.position_size < 0 and close <= basis
        strategy.exit("Trailing Stop Short", from_entry="Sell", stop=high)

// Stop Loss and Take Profit logic
if use_sl or use_tp
    if strategy.position_size > 0
        long_entry = strategy.position_avg_price
        long_sl    = long_entry - sl_dollars
        long_tp    = long_entry + tp_dollars
        if use_sl and close <= long_sl
            strategy.close("Buy", comment="Long SL Hit")
        if use_tp and close >= long_tp
            strategy.close("Buy", comment="Long TP Hit")
    if strategy.position_size < 0
        short_entry = strategy.position_avg_price
        short_sl    = short_entry + sl_dollars
        short_tp    = short_entry - tp_dollars
        if use_sl and close >= short_sl
            strategy.close("Sell", comment="Short SL Hit")
        if use_tp and close <= short_tp
            strategy.close("Sell", comment="Short TP Hit")

// Bars Till Close logic
var int bars_since_entry = na
if strategy.position_size != 0
    bars_since_entry := na(bars_since_entry) ? 0 : bars_since_entry + 1
else
    bars_since_entry := na

if use_bars_till_close and not na(bars_since_entry) and bars_since_entry >= bars_till_close
    strategy.close("Buy", comment="Bars Till Close Hit")
    strategy.close("Sell", comment="Bars Till Close Hit")

// Plot buy/sell signals
plotshape(sell_condition and (not use_ema or ema_short_condition), title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")
plotshape(buy_condition and (not use_ema or ema_long_condition), title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")