Diese Strategie erzeugt Handelssignale basierend auf dem Crossover von zwei gleitenden Durchschnitten (EMA). Wenn die kurzfristige EMA (20-Tage) über die langfristige EMA (50-Tage) überschreitet, wird ein Kaufsignal ausgelöst; wenn die kurzfristige EMA unter die langfristige EMA überschreitet, wird ein Verkaufssignal ausgelöst. Darüber hinaus zeichnet die Strategie eine 200-tägige EMA als Referenz für den langfristigen Trend. Die Hauptidee hinter dieser Strategie besteht darin, Veränderungen in den Markttrends zu erfassen, indem die Überschneidung von gleitenden Durchschnitten mit verschiedenen Perioden genutzt wird.
Die EMA Double Moving Average Crossover Strategy ist eine einfache und unkomplizierte Handelsstrategie, die für Trendmärkte geeignet ist. Sie nutzt die Überschneidung von kurz- und langfristigen gleitenden Durchschnitten, um Veränderungen in den Markttrends zu erfassen und gleichzeitig eine langfristige Trendreferenz zu integrieren. Obwohl die Strategie einige Einschränkungen aufweist, wie z. B. suboptimale Leistung in unbeständigen Märkten und die Verzögerung von gleitenden Durchschnitten, kann sie durch die Einbeziehung zusätzlicher Indikatoren, die Optimierung von Parametern, die Implementierung von Risikomanagementmaßnahmen und die Bestätigung von Trends weiter verbessert werden. Diese Optimierungen können die Robustheit und Rentabilität der Strategie verbessern.
/*backtest start: 2023-03-23 00:00:00 end: 2024-03-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy by Peter Gangmei", overlay=true) // Define the length for moving averages short_ma_length = input.int(20, "Short MA Length") long_ma_length = input.int(50, "Long MA Length") long_ma_200_length = input.int(200, "Long MA 200 Length") // Define start time for testing start_time = timestamp(2024, 01, 01, 00, 00) // Calculate current date and time current_time = timenow // Calculate moving averages ema20 = ta.ema(close, short_ma_length) ema50 = ta.ema(close, long_ma_length) ema200 = ta.ema(close, long_ma_200_length) // Crossing conditions crossed_above = ta.crossover(ema20, ema50) crossed_below = ta.crossunder(ema20, ema50) // Entry and exit conditions within the specified time frame if true if (crossed_above) strategy.entry("Buy", strategy.long) alert("Buy Condition", alert.freq_once_per_bar_close) if (crossed_below) strategy.entry("Sell", strategy.short) alert("Sell Condition", alert.freq_once_per_bar_close) // Plotting moving averages for visualization plot(ema20, color=color.green, title="EMA20") plot(ema50, color=color.red, title="EMA50") plot(ema200, color=color.blue, title="EMA200") // Placing buy and sell markers plotshape(series=crossed_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=crossed_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")