Cette stratégie utilise le croisement de deux moyennes mobiles exponentielles (EMA) avec des périodes différentes comme signaux de trading, tout en définissant des niveaux de stop loss et de profit à point fixe. Lorsque l'EMA à court terme dépasse l'EMA à long terme, elle ouvre une position longue; lorsque l'EMA à court terme dépasse l'EMA à long terme, elle ouvre une position courte. La stratégie définit des niveaux de stop loss et de profit à point fixe pour contrôler le risque et verrouiller les bénéfices.
La stratégie de stop loss et take profit double moyenne mobile est une stratégie de trading simple et facile à utiliser qui génère des signaux de trading par le biais de crossovers EMA tout en définissant des points fixes de stop loss et en prenant des niveaux de profit pour contrôler le risque. Les avantages de la stratégie résident dans sa logique claire, sa mise en œuvre facile et sa capacité à capturer efficacement les tendances du marché. Cependant, elle fait également face à des risques tels que de faux signaux, des retards de tendance, des marchés à plage et des niveaux fixes de stop loss. Les directions d'optimisation comprennent l'introduction de plus d'indicateurs, l'optimisation des paramètres, le stop loss dynamique, la gestion de position et l'ajout de filtres. Les traders peuvent optimiser et ajuster la stratégie en fonction de leurs préférences de risque et des caractéristiques du marché pour améliorer la robustesse et la rentabilité de la stratégie.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA5 Cross EAM200 && SL/TP 50 and 200 Point Target", overlay=true) // Define input parameters for EMA lengths ema_5 = input.int(5, title="Fast EMA Length") ema_200 = input.int(200, title="Slow EMA Length") // Define input parameters for stop loss and profit target in points stopLossPoints = input.float(50, title="Stop Loss (Points)") profitTargetPoints = input.float(200, title="Profit Target (Points)") // Calculate EMAs price = close emafast = ta.ema(price, ema_5) emaslow = ta.ema(price, ema_200) // Plot EMAs on chart plot(emafast, title="5-period EMA", color=color.black) plot(emaslow, title="200-period EMA", color=color.blue) // Extra lines if needed ema_13 = input.int(13, title="13 EMA") ema_13_line = ta.ema(price, ema_13) plot(ema_13_line, title="13-period EMA", color=color.rgb(156, 39, 176, 90)) ema_20 = input.int(20, title="20 EMA") ema_20_line = ta.ema(price, ema_20) plot(ema_20_line, title="20-period EMA", color=color.red) // Define entry conditions longCondition = ta.crossover(emafast, emaslow) shortCondition = ta.crossunder(emafast, emaslow) // Counter to keep track of the number of bars since the entry var int barCount = na // Reset counter and enter long trade if (longCondition) strategy.entry("Long", strategy.long, comment="Long") barCount := 0 // Reset counter and enter short trade if (shortCondition) strategy.entry("Short", strategy.short, comment="Short") barCount := 0 // Increment counter if in trade if (strategy.opentrades > 0) barCount += 1 // Calculate entry price entryPrice = strategy.position_avg_price // Exit long trade if stop loss, profit target hit, or 200 points have been reached if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", "Long", stop=entryPrice - stopLossPoints, limit=entryPrice + profitTargetPoints) // Exit short trade if stop loss, profit target hit, or 200 points have been reached if (strategy.position_size < 0) strategy.exit("Take Profit/Stop Loss", "Short", stop=entryPrice + stopLossPoints, limit=entryPrice - profitTargetPoints)