Diese Strategie verwendet die Überschneidung von zwei exponentiellen gleitenden Durchschnitten (EMA) mit unterschiedlichen Perioden als Handelssignale, während festgelegte Stop-Loss- und Take-Profit-Levels festgelegt werden. Wenn die kurzfristige EMA über die langfristige EMA überschreitet, eröffnet sie eine Long-Position; wenn die kurzfristige EMA unter die langfristige EMA überschreitet, eröffnet sie eine Short-Position. Die Strategie setzt festgelegte Stop-Loss- und Take-Profit-Levels, um das Risiko zu kontrollieren und Gewinne zu erzielen.
Die Dual Moving Average Crossover Stop Loss and Take Profit Strategie ist eine einfache und einfach zu bedienende Handelsstrategie, die Handelssignale durch EMA-Crossovers generiert, während feststehende Stop Loss- und Gewinnniveaus festgelegt werden, um das Risiko zu kontrollieren. Die Vorteile der Strategie liegen in ihrer klaren Logik, ihrer einfachen Implementierung und ihrer Fähigkeit, Markttrends effektiv zu erfassen. Sie ist jedoch auch mit Risiken wie falschen Signalen, Trendverzögerungen, Bereichsmärkten und festen Stop Loss-Niveaus konfrontiert. Zu den Optimierungsrichtungen gehören die Einführung von mehr Indikatoren, die Optimierung von Parametern, dynamischen Stop Loss, Positionsmanagement und das Hinzufügen von Filtern.
/*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)