Ini adalah strategi perdagangan momentum breakout berdasarkan Saluran Donchian, menggabungkan price breakout dan konfirmasi volume sebagai kondisi kunci. Strategi ini menangkap tren pasar naik dengan mengamati price breakout di luar kisaran yang telah ditentukan sementara membutuhkan dukungan volume.
Logika inti mencakup komponen kunci berikut: 1. Menggunakan saluran Donchian yang tertinggal sebagai indikator teknis utama, dibangun menggunakan harga tertinggi dan terendah selama 27 periode. 2. Syarat masuk mengharuskan kedua: - Harga penutupan pecah di atas band atas Saluran Donchian - Volume saat ini melebihi 1,4 kali volume rata-rata 27 periode Kondisi keluar yang fleksibel: - Dapat keluar ketika harga turun di bawah band atas, tengah, atau bawah - Band tengah digunakan sebagai sinyal keluar default Mengimplementasikan parameter lag 10 periode untuk meningkatkan stabilitas saluran dan mengurangi pecah palsu.
Ini adalah strategi trend-mengikuti yang dirancang dengan baik dengan logika yang jelas. Dengan menggabungkan price breakout dan konfirmasi volume, strategi mempertahankan keandalan sambil menjaga fleksibilitas. Desain parametrisasi memberikan kemampuan beradaptasi yang baik, meskipun investor perlu mengoptimalkan parameter berdasarkan kondisi pasar tertentu. Secara keseluruhan, ini mewakili kerangka strategis yang layak untuk optimasi lebih lanjut dan implementasi praktis.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Breakout Strategy", overlay=true, calc_on_every_tick=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, pyramiding=1, fill_orders_on_standard_ohlc=true) // Input Parameters start_date = input(timestamp("2018-01-01 00:00"), "Start Date") end_date = input(timestamp("2060-01-01 00:00"), "End Date") in_time_range = true length = input.int(27, title="Donchian Channel Length", minval=1, tooltip="Number of bars used to calculate the Donchian channel.") lag = input.int(10, title="Donchian Channel Offset", minval=1, tooltip = "Offset to delay the Donchian channel, enhancing stability.") volume_mult = input.float(1.4, title="Volume Multiplier", minval=0.1, step=0.1, tooltip="Multiplier for the average volume to filter breakout conditions.") closing_condition = input.string("Mid", title="Trade Closing Band", options= ["Upper","Lower","Mid"], tooltip = "Donchian Channel Band to use for exiting trades: Upper, Lower, or Middle.") // // Donchian Channel (Lagged for Stability) upper_band = ta.highest(high[lag], length) lower_band = ta.lowest(low[lag], length) middle_band = (upper_band + lower_band) / 2 plot(upper_band, color=color.blue, title="Upper Band (Lagged)") plot(middle_band, color=color.orange, title="Middle Band") plot(lower_band, color=color.blue, title="Lower Band (Lagged)") // Volume Filter avg_volume = ta.sma(volume, length) volume_condition = volume > avg_volume * volume_mult // Long Breakout Condition long_condition = close > upper_band and volume_condition bool reverse_exit_condition = false // Exit Condition (Close below the middle line) if closing_condition == "Lower" reverse_exit_condition := close < lower_band else if closing_condition == "Upper" reverse_exit_condition := close < upper_band else reverse_exit_condition := close < middle_band // Long Strategy: Entry and Exit if in_time_range and long_condition strategy.entry("Breakout Long", strategy.long) // Exit on Reverse Signal if in_time_range and reverse_exit_condition strategy.close("Breakout Long", comment="Reverse Exit")