Diese Strategie ist eine Trendfolgestrategie, die auf Multi-Zeitrahmen-Exponential Moving Averages (EMA) und einem 200-Perioden-EMA-Filter basiert. Die Hauptidee besteht darin, EMAs in verschiedenen Zeitrahmen zu verwenden, um die Markttrendrichtung zu identifizieren und Long-Positionen zu etablieren, wenn der Trend nach oben geht und der Preis über der 200-Perioden-EMA liegt. Dies stellt sicher, dass Trades nur während starker Aufwärtstrends eingegangen werden, um nachhaltige Aufwärtstrends zu erfassen und gleichzeitig das Risiko mit definierten Stop-Loss- und Take-Profit-Mechanismen zu managen.
Die Strategie verwendet drei Zeitrahmen: 5-minütige, 15-minütige und 30-minütige, die für jeden schnelle und langsame EMAs berechnen. Durch den Vergleich der schnellen und langsamen EMAs für jeden Zeitrahmen kann die Trendrichtung bestimmt werden. Die Trendsignale aus den drei Zeitrahmen werden dann zusammengefasst, um ein kombiniertes Trendsignal zu erhalten. Wenn das kombinierte Trendsignal 3 ist (was einen Aufwärtstrend in allen Zeitrahmen anzeigt) und der aktuelle Schlusskurs über der 200-Perioden-EMA auf dem 5-minütigen Zeitrahmen liegt, tritt die Strategie in eine Long-Position ein. Die Position wird geschlossen, wenn das kombinierte Trendsignal unter 3 fällt oder der Preis den 5-minütigen 200-Perioden-EMA fällt.
Diese Strategie bestimmt die Trendrichtung, indem sie EMAs in mehreren Zeitrahmen vergleicht und dabei eine 200-Perioden-EMA als Trendfilter verwendet. Sie setzt Long-Positionen ein, wenn der Trend deutlich nach oben steigt und der Preis über dem langfristigen gleitenden Durchschnitt liegt, um starke Aufwärtstrends zu erfassen. Strenge Ein- und Ausstiegsbedingungen und feste Stop-Loss- und Take-Profit-Levels helfen, das Risiko zu managen. Die Strategie kann jedoch bei Trendwendepunkten langsam reagieren und hat Einschränkungen beim Umgang mit plötzlicher Marktvolatilität aufgrund fester Stop-Loss- und Take-Profit-Level. In Zukunft können die Anpassungsfähigkeit und Robustheit der Strategie verbessert werden, indem mehr Zeitrahmen eingeführt, Stop-Loss- und Take-Profit-Niveaus optimiert, zusätzliche Handelssignale integriert, Parameter optimiert usw. Dies ermöglicht es der Strategie, Marktchancen besser zu nutzen und gleichzeitig Risiken zu kontrollieren.
/*backtest start: 2023-05-17 00:00:00 end: 2024-05-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Multi-Timeframe Trend Following with 200 EMA Filter - Longs Only", shorttitle="MTF_TF_200EMA_Longs", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=1) // Inputs fast_length = input.int(9, title="Fast EMA Length", minval=1) slow_length = input.int(21, title="Slow EMA Length", minval=1) filter_length_200 = input.int(200, title="200 EMA Length", minval=1) stop_loss_perc = input.float(1.0, title="Stop Loss Percentage", minval=0.1) / 100 take_profit_perc = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100 // Calculate EMAs for 5-minute, 15-minute, and 30-minute timeframes ema_fast_5min = request.security(syminfo.tickerid, "5", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on) ema_slow_5min = request.security(syminfo.tickerid, "5", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on) ema_fast_15min = request.security(syminfo.tickerid, "15", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on) ema_slow_15min = request.security(syminfo.tickerid, "15", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on) ema_fast_30min = request.security(syminfo.tickerid, "30", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on) ema_slow_30min = request.security(syminfo.tickerid, "30", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on) // Calculate 200 EMA for the 5-minute timeframe ema_200_5min = ta.ema(close, filter_length_200) // Determine the trend for each timeframe trend_5min = ema_fast_5min > ema_slow_5min ? 1 : -1 trend_15min = ema_fast_15min > ema_slow_15min ? 1 : -1 trend_30min = ema_fast_30min > ema_slow_30min ? 1 : -1 // Combine trend signals combined_trend = trend_5min + trend_15min + trend_30min // Define entry and exit conditions with 200 EMA filter enter_long = combined_trend == 3 and close > ema_200_5min exit_long = combined_trend < 3 or close < ema_200_5min // Plot EMAs for the 5-minute timeframe plot(ema_fast_5min, color=color.blue, linewidth=2, title="Fast EMA 5min") plot(ema_slow_5min, color=color.red, linewidth=2, title="Slow EMA 5min") plot(ema_200_5min, color=color.green, linewidth=2, title="200 EMA 5min") // Strategy execution if (enter_long) strategy.entry("Long", strategy.long, stop=close * (1 - stop_loss_perc), limit=close * (1 + take_profit_perc)) if (exit_long) strategy.close("Long")