Ini adalah strategi perdagangan penyebaran rentang berdasarkan pada titik tinggi dan rendah hari sebelumnya. Strategi ini mencari peluang perdagangan dengan mengidentifikasi penyebaran harga atau kerusakan di luar titik tinggi atau rendah hari sebelumnya, hanya mengeksekusi satu perdagangan per arah penyebaran atau kerusakan. Strategi ini menggunakan pengaturan take profit dan stop-loss 50 poin tetap dan menetapkan kembali bendera perdagangan di awal setiap hari perdagangan untuk memastikan perdagangan yang teratur. Inti dari strategi ini adalah menangkap pergerakan penyebaran harga satu arah dalam sehari sambil mengendalikan risiko melalui manajemen perdagangan yang ketat.
Logika inti dari strategi ini mencakup aspek berikut: 1. Generasi Sinyal Perdagangan: Sistem menentukan arah perdagangan dengan memeriksa apakah harga penutupan saat ini menembus hari sebelumnya yang tinggi atau rendah. Ketika harga ditutup di atas hari sebelumnya yang tinggi, sistem menghasilkan sinyal panjang; ketika harga ditutup di bawah hari sebelumnya yang rendah, sistem menghasilkan sinyal pendek. 2. Pengendalian Frekuensi Perdagangan: Strategi ini menggunakan bendera untuk memastikan hanya satu perdagangan per arah per hari. Desain ini mencegah perdagangan berulang di area harga yang sama dan mengurangi biaya perdagangan. Manajemen Risiko: Setiap perdagangan memiliki profit dan stop loss 50 poin yang tetap, menyediakan manajemen risiko simetris yang secara efektif mengendalikan risiko perdagangan tunggal. 4. Mekanisme Reset Harian: Sistem menetapkan kembali bendera perdagangan pada awal setiap hari perdagangan, mempersiapkan peluang perdagangan baru. Mekanisme ini memastikan strategi dapat menangkap peluang perdagangan baru.
Strategi ini adalah sistem perdagangan klasik yang didasarkan pada penyebaran jangkauan harian, yang cocok untuk melacak tren pasar satu arah melalui manajemen perdagangan yang ketat dan kontrol risiko. Meskipun ada beberapa risiko yang melekat, stabilitas dan profitabilitas strategi dapat ditingkatkan melalui optimalisasi dan peningkatan yang wajar. Kunci keberhasilan terletak pada penanganan risiko penyebaran palsu dengan benar, menetapkan tingkat mengambil keuntungan dan stop-loss yang sesuai, dan mempertahankan kemampuan adaptasi strategi di berbagai kondisi pasar.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown, New York Time)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, trim_orders = true) // Set pip size for US 30 (1 pip = 1 point) var float pip = 1.0 // Set take profit and stop loss in points (1 pip = 1 point) take_profit_pips = 50 stop_loss_pips = 50 // Calculate the previous day's high and low (assumes chart timezone is set to New York) prevDayHigh = request.security(syminfo.tickerid, "D", high[1]) prevDayLow = request.security(syminfo.tickerid, "D", low[1]) // Initialize flags to track if a breakout/breakdown trade has been taken var bool breakout_traded = false var bool breakdown_traded = false // Reset flags at the start of a new day in New York timezone (as per chart setting) if (ta.change(time("D"))) breakout_traded := false breakdown_traded := false // Condition for a long entry: candle closes above the previous day's high and no breakout trade has been taken longCondition = close > prevDayHigh and strategy.opentrades == 0 and not breakout_traded // Condition for a short entry: candle closes below the previous day's low and no breakdown trade has been taken shortCondition = close < prevDayLow and strategy.opentrades == 0 and not breakdown_traded // Execute long trade if the condition is met, and set the breakout flag if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", limit=close + take_profit_pips * pip, stop=close - stop_loss_pips * pip) breakout_traded := true // Set breakout flag // Execute short trade if the condition is met, and set the breakdown flag if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit/Stop Loss", "Short", limit=close - take_profit_pips * pip, stop=close + stop_loss_pips * pip) breakdown_traded := true // Set breakdown flag // Plotting the previous day's high and low for visualization plot(prevDayHigh, color=color.green, linewidth=1, title="Previous Day High") plot(prevDayLow, color=color.red, linewidth=1, title="Previous Day Low")