Strategi pullback breakout adalah strategi yang mengikuti tren. Prinsip dasarnya adalah untuk pergi panjang atau pendek ketika harga menembus tinggi atau rendah lilin sebelumnya dan membiarkan keuntungan terus berjalan setelah mengatur take profit dan stop loss.
Logika inti dari strategi ini adalah untuk menentukan waktu masuk dengan menilai apakah harga menembus tinggi atau rendah dari lilin sebelumnya.
Jika puncak candlestick saat ini lebih tinggi dari puncak candlestick sebelumnya, sinyal panjang dipicu.
Jika titik rendah candlestick saat ini lebih rendah dari titik rendah candlestick sebelumnya, sinyal pendek akan dipicu.
Setelah menerima sinyal long atau short, masukkan posisi segera. Setelah masukkan posisi, atur take profit menjadi 50 pips dan stop loss menjadi 100 pips.
Ketika kerugian lebih besar dari atau sama dengan pips stop loss atau keuntungan lebih besar dari atau sama dengan pips take profit, keluar dari posisi secara aktif.
Strategi penarikan keluar ini memiliki keuntungan berikut:
Strategi ini juga memiliki beberapa risiko:
Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:
Tambahkan pemeriksaan validitas untuk price breakout untuk menghindari breakout palsu, seperti menggunakan filter indikator dan konfirmasi volume.
Menambahkan mekanisme penentuan tren untuk menghindari risiko terperangkap di pasar yang terikat rentang.
Mengoptimalkan mengambil keuntungan dan strategi stop loss, seperti trailing stop loss, bergerak stop loss setelah profit, dll, untuk memaksimalkan keuntungan.
Optimasi parameter untuk menemukan optimal mengambil keuntungan dan stop loss pips.
Secara umum, strategi pullback breakout ini memiliki keuntungan logika yang sederhana, penerapan yang mudah, dan efektif menangkap awal tren.
/*backtest start: 2023-01-25 00:00:00 end: 2024-01-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Breakout Strategy", shorttitle="BS", overlay=true) // Input for take profit and stop loss in pips tp_pips = input(50, title="Take Profit (in pips)") sl_pips = input(100, title="Stop Loss (in pips)") // Calculate take profit and stop loss levels in points tp_level = tp_pips * syminfo.mintick sl_level = sl_pips * syminfo.mintick // Function to check if a breakout has occurred breakout(high_or_low) => high_or_low > request.security(syminfo.tickerid, "D", high[1]) ? true : false // Buy condition buy_condition = breakout(high) strategy.entry("Buy", strategy.long, when=buy_condition) // Sell condition sell_condition = breakout(low) strategy.entry("Sell", strategy.short, when=sell_condition) // Take profit and stop loss conditions for Buy tp_buy_condition = strategy.position_avg_price + tp_level sl_buy_condition = strategy.position_avg_price - sl_level strategy.exit("Take Profit/Close Buy", from_entry="Buy", profit=tp_buy_condition, loss=sl_buy_condition) // Take profit and stop loss conditions for Sell tp_sell_condition = strategy.position_avg_price - tp_level sl_sell_condition = strategy.position_avg_price + sl_level strategy.exit("Take Profit/Close Sell", from_entry="Sell", profit=tp_sell_condition, loss=sl_sell_condition)