
Die Strategie ist ein Trend-Tracking-System, das auf Multiple-Index-Moving Averages (EMA) basiert. Durch die Kombination von 20-, 50- und 150-Perioden-EMA wird ein vollständiges Rahmenwerk für die Trenderkennung und die Ausführung von Geschäften aufgebaut. Die Strategie nutzt die Kreuzung zwischen verschiedenen Perioden-EMA, um Veränderungen der Markttrends und spezifische Handelszeiten zu bestimmen.
Die Strategie nutzt Index-Moving Averages aus drei verschiedenen Perioden: EMA20 für kurzfristige Trends, EMA50 für mittelfristige Trends und EMA150 für langfristige Trends. Bei einem Überschreiten der EMA50 entsteht eine Gold-Kreuzung, die eine langfristige Aufwärtstrendbildung anzeigt; bei einem Überschreiten der EMA50 unterhalb der EMA150 entsteht eine Todeskreuzung, die eine langfristige Abwärtstrendbildung anzeigt. Das spezifische Handelssignal wird durch die Kreuzung von EMA20 und EMA50 erzeugt: Ein Kaufsignal wird bei einem Überschreiten der EMA50 auf der EMA20 erzeugt, ein Verkaufssignal wird bei einem Überschreiten der EMA50 erzeugt.
Durch die kombinierte Verwendung von Multiple-Index-Moving-Averages baut die Strategie ein vollständiges Trend-Tracking-Handelssystem auf. Die Strategie ist klar in der Logik, einfach zu implementieren und hat eine gute Skalierbarkeit. Durch die empfohlene Optimierungsrichtung kann die Stabilität und Anpassungsfähigkeit der Strategie weiter verbessert werden. Die Strategie ist geeignet, mittel- und langfristige Trends zu verfolgen, muss jedoch auf die Wahl des Marktumfelds und die Risikokontrolle achten.
/*backtest
start: 2024-02-20 00:00:00
end: 2025-01-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("EMA2050150 Crossover Strategy#ganges", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)
// EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)
// Cross conditions
longCondition = ta.crossover(ema20, ema50)
flatCondition = ta.crossunder(ema20, ema50)
deathCross = ta.crossunder(ema50, ema150)
goldenCross = ta.crossover(ema50, ema150)
// // Trade execution
// if longCondition and time >= startDate and time <= endDate and strategy.position_size == 0
// strategy.entry("Long", strategy.long)
// if flatCondition and time >= startDate and time <= endDate and strategy.position_size > 0
// strategy.close("Long")
// Plot EMAs
plot(ema20, title="EMA 20", color=color.blue)
plot(ema50, title="EMA 50", color=color.orange)
plot(ema150, title="EMA 150", color=color.red)
// Plot cross signals
plotshape(series=goldenCross, location=location.belowbar, color=color.green, style=shape.labelup, title="Golden Cross", size=size.small, text="Golden Cross")
plotshape(series=deathCross, location=location.abovebar, color=color.red, style=shape.labeldown, title="Death Cross", size=size.small, text="Death Cross")
// Plot buy and sell signals
plotshape(series=longCondition, location=location.belowbar, color=color.blue, style=shape.triangleup, title="Buy Signal", size=size.small, text="Buy")
plotshape(series=flatCondition, location=location.abovebar, color=color.orange, style=shape.triangledown, title="Sell Signal", size=size.small, text="Sell")
// Trade execution
if longCondition and strategy.position_size == 0
strategy.entry("Long", strategy.long)
if flatCondition and strategy.position_size > 0
strategy.close("Long")