Diese Strategie ist ein Trend-Folgende Handelssystem, das auf mehreren exponentiellen gleitenden Durchschnitten (EMA) und Durchschnittswahrem Bereich (ATR) basiert. Es verwendet drei EMA (20, 50 und 100 Perioden) in Verbindung mit ATR für dynamisches Risikomanagement und Gewinnzielung. Dieser Ansatz gewährleistet einen systematischen Handel bei gleichzeitiger Aufrechterhaltung einer dynamischen Risikokontrolle.
Die Kernlogik basiert auf der Wechselwirkung zwischen Preis und mehreren EMAs:
Diese Strategie kombiniert mehrere EMAs und ATR-basierte dynamische Risikokontrolle, um ein Handelssystem zu schaffen, das sowohl Trend-folgende als auch Swing-Trading-Eigenschaften aufweist. Seine Stärken liegen in systematischem Ansatz und kontrollierbarem Risiko, aber die praktische Anwendung erfordert Aufmerksamkeit für die Anpassungsfähigkeit des Marktes und spezifische Optimierungen auf der Grundlage der tatsächlichen Bedingungen. Durch die richtige Einstellung von Parametern und eine strenge Risikokontrolle hat die Strategie das Potenzial, stabile Handelsergebnisse in den meisten Marktumgebungen zu erzielen.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("EMA Swing Strategy with ATR", overlay=true) // Inputs emaShort = input.int(20, "Short EMA") emaMid = input.int(50, "Mid EMA") emaLong = input.int(100, "Long EMA") rrRatio = input.float(1.5, "Risk-Reward Ratio") contracts = input.int(5, "Number of Contracts") // Calculations ema20 = ta.ema(close, emaShort) ema50 = ta.ema(close, emaMid) ema100 = ta.ema(close, emaLong) atr = ta.atr(14) // Conditions longCondition = ta.crossover(close, ema20) and close > ema50 shortCondition = ta.crossunder(close, ema20) and close < ema50 // Variables for trades var float entryPrice = na var float stopLoss = na var float takeProfit = na // Long Trades if (longCondition) entryPrice := close stopLoss := close - atr takeProfit := close + atr * rrRatio strategy.entry("Long", strategy.long, contracts) strategy.exit("Exit Long", from_entry="Long", stop=stopLoss, limit=takeProfit) // Short Trades if (shortCondition) entryPrice := close stopLoss := close + atr takeProfit := close - atr * rrRatio strategy.entry("Short", strategy.short, contracts) strategy.exit("Exit Short", from_entry="Short", stop=stopLoss, limit=takeProfit) // Plot EMAs plot(ema20, color=color.green, title="EMA 20") plot(ema50, color=color.red, title="EMA 50") plot(ema100, color=color.white, title="EMA 100") // Visualization for Entries plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Long Entry") plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Short Entry")