Cette stratégie est un système de négociation automatisé basé sur la théorie du double croisement des moyennes mobiles avec une fonctionnalité de gestion des risques intégrée.
Le système génère un signal haussier et entre dans une position longue lorsque l'EMA à court terme (21-période) traverse au-dessus de l'EMA à long terme (50-période), et inversement, génère un signal baissier et entre dans une position courte lorsque l'EMA à court terme traverse au-dessous de l'EMA à long terme. Chaque signal commercial définit automatiquement les niveaux de stop loss et take profit, avec des paramètres par défaut de 40 ticks pour l'arrêt de la perte et 80 ticks pour le take profit.
Il s'agit d'une stratégie de trading automatisée bien conçue avec une logique claire. En combinant des signaux de croisement de moyenne mobile avec une gestion stricte des risques, la stratégie fournit un cadre technique fiable pour capturer les tendances du marché tout en assurant la sécurité des transactions. Bien qu'il existe des possibilités d'optimisation, la base de la stratégie est complète et convient comme module de base pour un développement et un raffinement ultérieurs des systèmes de trading quantitatifs.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy with SL & TP", overlay=true, default_qty_type=strategy.percent_of_equity) // Input settings for SL and TP (ticks) slTicks = input.int(40, title="Stop Loss (ticks)", minval=1) tpTicks = input.int(80, title="Take Profit (ticks)", minval=1) // Define EMA periods ema21 = ta.ema(close, 21) ema50 = ta.ema(close, 50) // Detect crossovers bullishCross = ta.crossover(ema21, ema50) bearishCross = ta.crossunder(ema21, ema50) // Plot the EMAs plot(ema21, color=color.green, linewidth=2, title="EMA 21") plot(ema50, color=color.red, linewidth=2, title="EMA 50") // Calculate tick size in points var float tickSize = syminfo.mintick // Calculate stop loss and take profit prices for long and short positions longSL = close - slTicks * tickSize longTP = close + tpTicks * tickSize shortSL = close + slTicks * tickSize shortTP = close - tpTicks * tickSize // Execute trades on crossover signals if (bullishCross) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP) if (bearishCross) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP) // Plot arrows on crossovers plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) // Optional: Background coloring bgcolor(bullishCross ? color.new(color.green, 90) : na, title="Bullish Background") bgcolor(bearishCross ? color.new(color.red, 90) : na, title="Bearish Background")