Strategi Dagangan Regresi Jalur Bollinger Berbilang Tahap

BB SMA stdev TP SL
Tarikh penciptaan: 2025-02-21 13:06:24 Akhirnya diubah suai: 2025-02-21 13:06:24
Salin: 1 Bilangan klik: 463
2
fokus pada
319
Pengikut

Strategi Dagangan Regresi Jalur Bollinger Berbilang Tahap Strategi Dagangan Regresi Jalur Bollinger Berbilang Tahap

Gambaran keseluruhan

Ini adalah strategi perdagangan berdasarkan prinsip pulangan nilai purata Bollinger Bands, yang menghasilkan keuntungan secara berturut-turut melalui pelbagai tahap hentian. Strategi ini melakukan perdagangan apabila harga kembali selepas penembusan Bollinger Bands, dan menetapkan 5 tahap hentian yang berbeza untuk mengurangkan kedudukan secara beransur-ansur.

Prinsip Strategi

Strategi ini berdasarkan pada 20 kitaran indikator Bollinger Bands, menggunakan 2 kali perbezaan standard sebagai ruang pergerakan. Apabila harga menembusi tren bawah dari bawah dan ditutup di dalam kawasan, mencetuskan isyarat berganda; Apabila harga menembusi tren atas dari atas dan ditutup di dalam kawasan, mencetuskan isyarat kosong. Selepas masuk, strategi ini menggunakan mekanisme berhenti 5 peringkat, menetapkan titik berhenti masing-masing pada 0.5%, 1%, 1.5%, 2% dan 2.5%, setiap titik berhenti meratakan 20% kedudukan.

Kelebihan Strategik

  1. Mempunyai mekanisme penangguhan bertingkat untuk mendapatkan lebih banyak pendapatan jika trend berterusan, sambil memastikan sebahagian keuntungan
  2. Sokongan untuk meningkatkan keuntungan dengan menaikkan kedudukan apabila arah dagangan betul
  3. Menggunakan Blink sebagai sokongan dan rintangan dinamik untuk beradaptasi dengan turun naik pasaran
  4. Boleh menyesuaikan masa dagangan untuk mengelakkan gangguan pada masa bukan dagangan
  5. Mekanisme Henti Kerosakan dan Kawal Risiko

Risiko Strategik

  1. Mungkin sering mencetuskan isyarat penembusan palsu dalam pasaran yang bergolak tinggi
  2. Peluang Keuntungan Lebih Besar Mungkin Terlewatkan Dalam Perdagangan Tren Cepat
  3. Mekanisme pegangan boleh menyebabkan kerugian yang lebih besar apabila pasaran berbalik
  4. Beberapa pesanan hentian mungkin tidak dapat dilaksanakan sepenuhnya kerana kekurangan kecairan Adalah disyorkan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza dengan menyesuaikan parameter Brin dan Stop Loss Ratio.

Arah pengoptimuman strategi

  1. Memperkenalkan penunjuk kuantiti pertukaran sebagai syarat penapisan isyarat untuk meningkatkan kebolehpercayaan penembusan
  2. Mengubah kedudukan stop loss mengikut kadar turun naik
  3. Meningkatkan penapis trend untuk mengelakkan dagangan berlawanan semasa trend kuat
  4. Mengoptimumkan logik penambahan kedudukan, menetapkan had pegangan maksimum
  5. Pertimbangkan untuk menambah fungsi henti rugi mudah alih untuk melindungi keuntungan dengan lebih baik

ringkaskan

Strategi ini menangkap peluang pulangan nilai rata-rata melalui indikator Brin, menggunakan pelbagai peringkat berhenti dan berhenti dinamik untuk menguruskan risiko. Keunggulan strategi adalah pengurusan kedudukan dan mekanisme kawalan risiko yang fleksibel, tetapi perlu berhati-hati dengan kesesuaian dengan keadaan pasaran semasa digunakan. Dengan menambah petunjuk penapisan tambahan dan mengoptimumkan parameter berhenti berhenti, anda dapat meningkatkan lagi kestabilan dan keuntungan strategi.

Kod sumber strategi
/*backtest
start: 2025-02-19 10:00:00
end: 2025-02-20 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

//@version=5
strategy("Bollinger Band Reentry Strategy", overlay=true)

// Inputs
bbLength = input.int(20, title="Bollinger Band Length")
bbMult = input.float(2.0, title="Bollinger Band Multiplier")
stopLossPerc = input.float(1.0, title="Stop Loss (%)") / 100
tp1Perc = input.float(0.5, title="Take Profit 1 (%)") / 100
tp2Perc = input.float(1.0, title="Take Profit 2 (%)") / 100
tp3Perc = input.float(1.5, title="Take Profit 3 (%)") / 100
tp4Perc = input.float(2.0, title="Take Profit 4 (%)") / 100
tp5Perc = input.float(2.5, title="Take Profit 5 (%)") / 100
allowAddToPosition = input.bool(true, title="Allow Adding to Position")
customSession = input.timeframe("0930-1600", title="Custom Trading Session")

// Calculate Bollinger Bands
basis = ta.sma(close, bbLength)
dev = ta.stdev(close, bbLength)
upperBB = basis + bbMult * dev
lowerBB = basis - bbMult * dev

// Plot Bollinger Bands
plot(upperBB, color=color.red, title="Upper Bollinger Band")
plot(lowerBB, color=color.green, title="Lower Bollinger Band")
plot(basis, color=color.blue, title="Bollinger Band Basis")

// Entry Conditions
longCondition = (ta.crossover(close, lowerBB) or (low < lowerBB and close > lowerBB)) and time(timeframe.period, customSession)
shortCondition = (ta.crossunder(close, upperBB) or (high > upperBB and close < upperBB)) and time(timeframe.period, customSession)

// Execute Trades
if (longCondition)
    strategy.entry("Long", strategy.long, when=allowAddToPosition or strategy.position_size == 0)
if (shortCondition)
    strategy.entry("Short", strategy.short, when=allowAddToPosition or strategy.position_size == 0)

// Take-Profit and Stop-Loss Levels for Long Trades
if (strategy.position_size > 0)
    strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + tp1Perc), qty=strategy.position_size * 0.2) // Take 20% profit
    strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + tp2Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + tp3Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP4", "Long", limit=strategy.position_avg_price * (1 + tp4Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP5", "Long", limit=upperBB, qty=strategy.position_size * 0.2) // Take final 20% at opposite band
    strategy.exit("Stop Loss", "Long", stop=strategy.position_avg_price * (1 - stopLossPerc))

// Take-Profit and Stop-Loss Levels for Short Trades
if (strategy.position_size < 0)
    strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - tp1Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - tp2Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - tp3Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP4", "Short", limit=strategy.position_avg_price * (1 - tp4Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP5", "Short", limit=lowerBB, qty=strategy.position_size * 0.2)
    strategy.exit("Stop Loss", "Short", stop=strategy.position_avg_price * (1 + stopLossPerc))

// Alerts
alertcondition(longCondition, title="Long Signal", message="Price closed inside Bollinger Band from below.")
alertcondition(shortCondition, title="Short Signal", message="Price closed inside Bollinger Band from above.")