Diese Strategie ist eine quantitative Handelsstrategie, die auf gleitenden Durchschnittskreuzungen und dynamischen ATR-Stop-Loss und Take-Profit basiert. Die Strategie verwendet zwei einfache gleitende Durchschnitte (SMAs) mit verschiedenen Perioden, um Handelssignale zu generieren, während die Average True Range (ATR) verwendet wird, um Stopp-Loss- und Gewinnniveaus für eine bessere Risikokontrolle dynamisch festzulegen. Darüber hinaus filtert die Strategie Handelssignale basierend auf verschiedenen Handelssitzungen, um ihre Robustheit zu verbessern.
Das Kernprinzip dieser Strategie besteht darin, Veränderungen in den Preistrends mithilfe von gleitenden Durchschnitts-Crossovers zu erfassen. Wenn der schnelle gleitende Durchschnitt über den langsamen gleitenden Durchschnitt überschreitet, wird ein Kaufsignal generiert; umgekehrt, wenn der schnelle gleitende Durchschnitt unter den langsamen gleitenden Durchschnitt überschreitet, wird ein Verkaufssignal generiert. Gleichzeitig verwendet die Strategie ATR, um Stop-Loss- und Take-Profit-Level dynamisch festzulegen. Die Take-Profit-Level wird zum Einstiegspreis plus 3 mal der ATR festgelegt, während die Stop-Loss-Level zum Einstiegspreis minus 1,5 mal der ATR festgelegt wird. Darüber hinaus erzeugt die Strategie nur Handelssignale während der europäischen Handelssitzung, um den Handel in Zeiten geringer Liquidität zu vermeiden.
Diese Strategie ist eine einfache und leicht verständliche Trendfolgestrategie, die Preistrends mithilfe gleitender Durchschnittsquerschnitte erfasst und gleichzeitig das Risiko mit ATR kontrolliert. Obwohl die Strategie bestimmte Risiken birgt, kann sie durch Parameteroptimierung, Signalfilterung und Risikomanagementverbesserungen weiter verbessert werden. Für Anfänger dient diese Strategie als hervorragendes Lern- und Praxisbeispiel.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Enhanced Moving Average Crossover Strategy", overlay=true) // Input parameters fastLength = input(10, title="Fast MA Length") slowLength = input(50, title="Slow MA Length") atrLength = input(14, title="ATR Length") riskPerTrade = input(1, title="Risk Per Trade (%)") / 100 // Time-based conditions isLondonSession = hour >= 8 and hour <= 15 isAsianSession = hour >= 0 and hour <= 7 isEuropeanSession = hour >= 7 and hour <= 14 // Moving Averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Average True Range (ATR) for dynamic stop loss and take profit atr = ta.atr(atrLength) // Buy and Sell Conditions buySignal = ta.crossover(fastMA, slowMA) sellSignal = ta.crossunder(fastMA, slowMA) // Dynamic stop loss and take profit stopLoss = close - atr * 1.5 takeProfit = close + atr * 3 // Strategy Logic if (buySignal and isEuropeanSession) strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", limit=takeProfit, stop=stopLoss) if (sellSignal and isEuropeanSession) strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", limit=takeProfit, stop=stopLoss) // Plotting plot(fastMA, color=color.blue, title="Fast MA") plot(slowMA, color=color.red, title="Slow MA") plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")