
Il s’agit d’un système de suivi des tendances basé sur le filtrage des sauts de prix et des moyennes mobiles. La stratégie consiste à identifier les signaux de sauts de prix qui sont statistiquement significatifs et, en combinaison avec le filtre de tendances SMA, à effectuer des transactions lorsque le marché est clairement en tendance.
Le fonctionnement de la stratégie repose sur les éléments clés suivants:
La stratégie, combinant le saut des prix et le filtrage des tendances en ligne droite, construit un système de négociation logiquement clair et contrôlable par les risques. Grâce à des paramètres de réglage raisonnables et à une optimisation continue, la stratégie est capable d’obtenir des rendements stables dans un marché tendance. Il est recommandé aux traders de faire des tests historiques complets avant de l’utiliser en direct et d’optimiser de manière ciblée en fonction des caractéristiques spécifiques du marché.
/*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)