Strategi ini menggunakan indikator Bollinger Bands untuk menentukan apakah harga berada dalam periode konsolidasi, dan breakout untuk menentukan entri dan keluar. Secara keseluruhan, strategi ini terutama memanfaatkan pergerakan kekerasan yang dibawa oleh konsolidasi harga untuk menghasilkan keuntungan.
Strategi ini pertama-tama menghitung rata-rata pergerakan sederhana 20 hari dari harga penutupan sebagai band tengah Bollinger Bands, dan 2 kali deviasi standar sebagai lebar band. Penutupan di atas band atas menunjukkan terobosan band atas, sementara penutupan di bawah band bawah menunjukkan terobosan band bawah.
Ketika harga berada di antara Bollinger Band atas dan bawah, itu dianggap sebagai periode konsolidasi. Ketika sinyal breakout terdeteksi, pergi panjang. Ketika harga melanggar band bawah lagi, tutup posisi.
Stop loss ditetapkan pada 2 kali indikator ATR.
Keuntungan utama dari strategi ini adalah:
Ada juga beberapa risiko:
Tindakan balas:
Beberapa cara untuk meningkatkan strategi:
Strategi ini sederhana dan lurus ke depan, mendapatkan keuntungan dari penumpukan energi selama konsolidasi. ruang optimasi besar ada di sekitar aturan masuk, metode stop loss dll untuk mendapatkan keuntungan yang lebih stabil sambil mengendalikan 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")