Ini adalah sistem perdagangan yang mengikuti tren berdasarkan kesenjangan harga dan penyaringan rata-rata bergerak. Strategi ini menangkap peluang tren dengan mengidentifikasi kesenjangan harga yang signifikan secara statistik dikombinasikan dengan filter tren SMA, mengeksekusi perdagangan ketika tren pasar yang jelas muncul.
Strategi ini bekerja pada beberapa elemen utama:
Strategi ini menggabungkan kesenjangan harga dan penyaringan tren rata-rata bergerak untuk menciptakan sistem perdagangan dengan logika yang jelas dan risiko yang terkendali. Melalui pengaturan parameter yang tepat dan pengoptimalan berkelanjutan, strategi dapat mencapai pengembalian yang stabil di pasar tren. Pedagang disarankan untuk melakukan pengujian historis menyeluruh sebelum implementasi langsung dan mengoptimalkan berdasarkan karakteristik pasar tertentu.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simplified Gap Strategy with SMA Filter", overlay=true) // Input fields for user control long_gap_threshold = input.float(0.1, title="Gap Threshold (%)", minval=0.01, step=0.01) // Minimum percentage for gaps hold_duration = input.int(10, title="Hold Duration (bars)", minval=1) // Duration to hold the position gap_trade_option = input.string("Long Up Gap", title="Select Trade Option", options=["Long Up Gap", "Short Down Gap", "Short Up Gap", "Long Down Gap"]) // Combined option use_sma_filter = input.bool(false, title="Use SMA Filter") // Checkbox to activate SMA filter sma_length = input.int(200, title="SMA Length", minval=1) // Length of the SMA // RGB color definitions for background color_up_gap = color.new(color.green, 50) // Green background for up gaps color_down_gap = color.new(color.red, 50) // Red background for down gaps // Gap size calculation in percentage terms gap_size = (open - close[1]) / close[1] * 100 // Gap size in percentage // Calculate gaps based on threshold input up_gap = open > close[1] and gap_size >= long_gap_threshold // Long gap condition down_gap = open < close[1] and math.abs(gap_size) >= long_gap_threshold // Short gap condition // Calculate the SMA sma_value = ta.sma(close, sma_length) // Define the trading logic based on selected option and SMA filter if (gap_trade_option == "Long Up Gap" and up_gap and (not use_sma_filter or close > sma_value)) strategy.entry("Long", strategy.long) if (gap_trade_option == "Short Down Gap" and down_gap and (not use_sma_filter or close < sma_value)) strategy.entry("Short", strategy.short) if (gap_trade_option == "Short Up Gap" and up_gap and (not use_sma_filter or close < sma_value)) strategy.entry("Short", strategy.short) if (gap_trade_option == "Long Down Gap" and down_gap and (not use_sma_filter or close > sma_value)) strategy.entry("Long", strategy.long) // Exit position after the hold duration if (strategy.opentrades > 0) if (bar_index - strategy.opentrades.entry_bar_index(0) >= hold_duration) strategy.close("Long") strategy.close("Short") // Background coloring to highlight gaps on the chart bgcolor((gap_trade_option == "Long Up Gap" and up_gap) ? color_up_gap : na, title="Up Gap Background") bgcolor((gap_trade_option == "Short Down Gap" and down_gap) ? color_down_gap : na, title="Down Gap Background") bgcolor((gap_trade_option == "Short Up Gap" and up_gap) ? color_down_gap : na, title="Short Up Gap Background") bgcolor((gap_trade_option == "Long Down Gap" and down_gap) ? color_up_gap : na, title="Long Down Gap Background") // Plot the SMA for visualization plot(use_sma_filter ? sma_value : na, color=color.white, title="SMA", linewidth=1)