
Es handelt sich um eine Trend-Tracking-Strategie, die auf einem Triple-Index-Moving-Average (EMA) -Kreuzsignal basiert. Die Strategie nutzt die EMA-Indikatoren mit 9-, 15- und 50-Zyklen, um die Kreuzsignale der kurzfristigen und der mittelfristigen Mittelwerte zu ermitteln, und kombiniert die langfristige Mittelwerte als Trendfilter, um das Handelsrisiko zu verwalten. Die Strategie ist so konzipiert, dass die Bedürfnisse des Trend-Trackings und des Risikomanagements berücksichtigt werden.
Die Kernlogik der Strategie besteht darin, den Zeitpunkt des Handels zu bestimmen, indem ein Kreuzsignal zwischen einem 9-Zyklus-EMA und einem 15-Zyklus-EMA überwacht wird und ein 50-Zyklus-EMA als Trendbestätigungsindikator verwendet wird.
Es ist eine Strategie zur Trendverfolgung, die vernünftig und logisch klar gestaltet ist. Durch die kombinierte Verwendung von mehreren Durchschnittslinien wird sowohl die Zuverlässigkeit des Signals als auch die effektive Verfolgung der Trends gewährleistet. Die eingebaute Risikomanagement-Mechanismus bietet Sicherheit für die stabile Funktionsweise der Strategie. Durch die empfohlene Optimierungsrichtung gibt es noch Raum für weitere Verbesserungen.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with 50 EMA Filter", overlay=true)
// Customizable Inputs
ema9Length = input(9, title="EMA 9 Length")
ema15Length = input(15, title="EMA 15 Length")
ema50Length = input(50, title="EMA 50 Length")
stopLossPoints = input(100, title="Stop Loss Points")
takeProfitPoints = input(200, title="Take Profit Points")
// Calculate EMAs
ema9 = ta.ema(close, ema9Length)
ema15 = ta.ema(close, ema15Length)
ema50 = ta.ema(close, ema50Length)
// Detect crossovers
crossover_above = ta.crossover(ema9, ema15)
crossover_below = ta.crossunder(ema9, ema15)
// Plot EMAs
plot(ema9, color=color.blue, title="EMA 9")
plot(ema15, color=color.red, title="EMA 15")
// Make the 50 EMA invisible
plot(ema50, color=color.new(color.white, 100), title="EMA 50", display=display.none)
// Plot buy and sell signals as shapes
plotshape(crossover_above and close > ema50, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(crossover_below and close < ema50, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Execute trades
if (crossover_above and close > ema50)
strategy.entry("Buy", strategy.long)
if (crossover_below and close < ema50)
strategy.close("Buy")
// Apply stop loss and take profit
if (crossover_above and close > ema50)
strategy.exit("Exit", from_entry="Buy", loss=stopLossPoints, profit=takeProfitPoints)
// Alerts for notifications
if (crossover_above and close > ema50)
alert("EMA 9 crossed above EMA 15 with price above EMA 50 - Buy Signal", alert.freq_once_per_bar_close)
if (crossover_below and close < ema50)
alert("EMA 9 crossed below EMA 15 with price below EMA 50 - Sell Signal", alert.freq_once_per_bar_close)