Strategi ini menggunakan penunjuk Bollinger Bands untuk menentukan sama ada harga berada dalam tempoh penyatuan, dan pecah untuk menentukan kemasukan dan keluar. Secara keseluruhan, strategi ini terutamanya memanfaatkan pergerakan ganas yang dibawa oleh penyatuan harga untuk membuat keuntungan.
Strategi ini mula-mula mengira purata bergerak mudah 20 hari harga penutupan sebagai jalur tengah Bollinger Bands, dan 2 kali penyimpangan standard sebagai lebar jalur. Penutupan di atas jalur atas menunjukkan penutupan jalur atas, sementara penutupan di bawah jalur bawah menunjukkan penutupan jalur bawah.
Apabila harga berada di antara Bollinger Bands atas dan bawah, ia dianggap sebagai tempoh penyatuan. Apabila isyarat pecah dikesan, pergi panjang. Apabila harga pecah di bawah band bawah lagi, tutup kedudukan.
Stop loss ditetapkan pada 2 kali penunjuk ATR.
Kelebihan utama strategi ini ialah:
Terdapat juga beberapa risiko:
Tindakan balas:
Beberapa cara untuk meningkatkan strategi:
Strategi ini mudah dan lurus ke hadapan, mendapat keuntungan daripada penumpukan tenaga semasa penyatuan. ruang pengoptimuman yang besar wujud di sekitar peraturan kemasukan, kaedah hentian kerugian dan lain-lain untuk mendapatkan keuntungan yang lebih stabil sambil mengawal risiko.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Consolidation Breakout Strategy", shorttitle="CBS", overlay=true) // Parameters length = input(20, title="Bollinger Bands Length") mult = input(2.0, title="Bollinger Bands Multiplier") risk = input.float(1, title="Risk per Trade (%)") / 100 // Calculate Bollinger Bands basis = ta.sma(close, length) dev = mult * ta.stdev(close, length) upper = basis + dev lower = basis - dev // Entry Conditions consolidating = ta.crossover(close, upper) and ta.crossunder(close, lower) // Exit Conditions breakout = ta.crossover(close, upper) or ta.crossunder(close, lower) // Risk Management atrVal = ta.atr(14) stopLoss = atrVal * input.float(2, title="Stop Loss Multiplier", minval=0.1, maxval=5) // Entry and Exit Conditions longEntry = breakout and close > upper shortEntry = breakout and close < lower if (longEntry) strategy.entry("Long", strategy.long) if (shortEntry) strategy.entry("Short", strategy.short) if (longEntry and close < basis - stopLoss) strategy.close("Long Exit") if (shortEntry and close > basis + stopLoss) strategy.close("Short Exit") // Plot Entry and Exit Points plotshape(consolidating, style=shape.triangleup, location=location.belowbar, color=color.rgb(30, 255, 0), title="Entry Signal") plotshape(breakout, style=shape.triangledown, location=location.abovebar, color=color.rgb(255, 0, 0), title="Exit Signal")