Il s'agit d'une stratégie de trading quantitative qui combine la tendance EMA, la rupture des numéros ronds et le filtrage des sessions de négociation. La stratégie repose principalement sur la direction de la tendance EMA, couplée à des modèles de rupture des prix aux niveaux clés des numéros ronds en tant que signaux de négociation, tout en incorporant le filtrage des sessions pour améliorer la qualité des transactions.
La logique de base comprend les éléments clés suivants: 1. Utilise l'EMA à 20 jours comme outil d'identification de tendance, ne dépassant que largement l'EMA et étant court en dessous 2. recherche de motifs d'engloutissement près des chiffres ronds clés (intervalles de 5 $) 3. Ne négociez que pendant les séances de Londres et de New York pour éviter les périodes de faible volatilité 4. Les signaux longs nécessitent: une tendance haussière, un prix supérieur à la EMA, une session de négociation active 5. Les signaux courts nécessitent: une tendance baissière, un prix inférieur à la EMA, une session de négociation active 6. met en œuvre un ratio stop-loss de 1% et un ratio risque-rendement de 1,5% pour la gestion du commerce
La stratégie construit un système de trading logiquement rigoureux en combinant plusieurs mécanismes, y compris les tendances EMA, les modèles de prix et le filtrage de session. Bien qu'elle ait certaines limitations, l'optimisation et le raffinement continus peuvent potentiellement améliorer la stabilité et la rentabilité de la stratégie.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("The Gold Box Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Inputs roundNumberInterval = input.int(5, title="Round Number Interval ($)", minval=1) useEMA = input.bool(true, title="Use 20 EMA for Confluence") emaLength = input.int(20, title="EMA Length") // Session times for London and NY londonSession = input("0300-1200", title="London Session (NY Time)") nySession = input("0800-1700", title="New York Session (NY Time)") // EMA Calculation emaValue = ta.ema(close, emaLength) // Plot Round Number Levels roundLow = math.floor(low / roundNumberInterval) * roundNumberInterval roundHigh = math.ceil(high / roundNumberInterval) * roundNumberInterval // for level = roundLow to roundHigh by roundNumberInterval // line.new(x1=bar_index - 1, y1=level, x2=bar_index, y2=level, color=color.new(color.gray, 80), extend=extend.both) // Session Filter inLondonSession = not na(time("1", londonSession)) inNYSession = not na(time("1", nySession)) inSession = true // Detect Bullish and Bearish Engulfing patterns bullishEngulfing = close > open[1] and open < close[1] and close > emaValue and inSession bearishEngulfing = close < open[1] and open > close[1] and close < emaValue and inSession // Entry Conditions if bullishEngulfing strategy.entry("Long", strategy.long, comment="Bullish Engulfing with EMA Confluence") if bearishEngulfing strategy.entry("Short", strategy.short, comment="Bearish Engulfing with EMA Confluence") // Stop Loss and Take Profit stopLossPercent = input.float(1.0, title="Stop Loss (%)", minval=0.1) / 100 takeProfitPercent = input.float(1.5, title="Take Profit (%)", minval=0.1) / 100 strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent), limit=close * (1 + takeProfitPercent)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent), limit=close * (1 - takeProfitPercent))