Die Momentum Indicator Crossover Strategy ist ein Handelsansatz, der auf der Kombination von Exponential Moving Average (EMA) und Relative Strength Index (RSI) basiert.
Der Kern dieser Strategie ist das Crossover-System aus schnellen und langsamen EMA-Linien, die drei EMA-Linien mit unterschiedlichen Parametern definieren:ema1
, ema2
undema3
Unter ihnen:ema1
stellt einen kurzfristigen Trend dar,ema2
eine mittelfristige Entwicklung darstellt undema3
Der langfristige Trend wird durch ein Kaufsignal erzeugt, wenn der kurzfristige Trend über den mittelfristigen Trend geht. Wenn der kurzfristige Trend unter den mittelfristigen Trend fällt, wird ein Verkaufssignal erzeugt.
Um falsche Signale zu filtern, definiert die Strategie auch zwei zusätzliche Bedingungen:bodybar1 > bodybar2
undclose > entrybar
(für Kaufsignal) oderclose < entrybar
Dies stellt sicher, dass die letzten beiden Kerzen die Richtung des Signals treffen und der Preis durch den Einstiegspunkt bricht, um einen redundanten Einstieg zu vermeiden.
Darüber hinaus beinhaltet die Strategie den RSI-Indikator, um Überkauf- und Überverkaufszustände zu bewerten. Der Überkaufbereich des RSI wird verwendet, um übermäßige Kaufsignale zu definieren, während der überverkaufte Bereich verwendet wird, um übermäßige Verkaufssignale zu definieren. Dies hilft, falsche Signale in überhitzten und übergekühlten Märkten zu vermeiden.
Zu den Vorteilen dieser Strategie gehören:
Zu den Risiken dieser Strategie gehören:
Die Strategie kann in folgenden Aspekten optimiert werden:
Die Momentum-Indikator-Crossover-Strategie integriert die Stärken von EMA und RSI und bildet Handelssignale auf Basis von Indikator-Crossovers. Die Strategie ist einfach und praktisch, geeignet für Anfänger und kann auch entsprechend den tatsächlichen Bedürfnissen erweitert und optimiert werden, um die Strategieleistung zu verbessern.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('EMA Crossover Strategy', shorttitle='EMA Crossover', overlay=true) // Define input for position size as a percentage of equity position_size_pct = input(1, title='Position Size (%)') / 100 //Input EMA len1 = input.int(25, minval=1, title='EMA 1') src1 = input(close, title='Source') ema1 = ta.ema(src1, len1) len2 = input.int(100, minval=1, title='EMA 2') src2 = input(close, title='Source') ema2 = ta.ema(src2, len2) len3 = input.int(200, minval=1, title='EMA 3') src3 = input(close, title='Source') ema3 = ta.ema(src3, len3) //End of format //Format RSI lenrsi = input(14, title='RSI length') outrsi = ta.rsi(close,lenrsi) //plot(outrsi, title='RSI', color=color.new(color.blue, 0), linewidth=1) //hline(70, 'Overbought', color=color.red) //hline(30, 'Oversold', color=color.green) //End of format bodybar1 = math.abs(close - open) bodybar2 = math.abs(close[1] - open[1]) // Plot the EMAs plot(ema1, color=color.new(color.blue, 0), title='EMA 1') plot(ema2, color=color.new(color.red, 0), title='EMA 2') //plot(ema3, color=color.new(#ffffff, 0), title='EMA 3') // EMA Crossover conditions emaCrossoverUp = ta.crossover(ema1, ema2) emaCrossoverDown = ta.crossunder(ema1, ema2) var entrybar = close // Initialize entrybar with the current close // Calculate crossovers outside of the if statements emaCrossoverUpOccured = ta.crossover(close, ema1) and ema1 > ema2 and bodybar1 > bodybar2 and close > entrybar emaCrossoverDownOccured = ta.crossunder(close, ema1) and ema1 < ema2 and bodybar1 > bodybar2 and close < entrybar plotshape(series=emaCrossoverUpOccured, location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, title='New Buy Order', size=size.tiny) plotshape(series=emaCrossoverDownOccured, location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, title='New Sell Order', size=size.tiny) // Define trading logic with custom position size and RSI conditions if emaCrossoverUp or emaCrossoverUpOccured strategy.entry('Buy', strategy.long) entrybar := close // Update entrybar when entering a new buy position entrybar if emaCrossoverDown or emaCrossoverDownOccured strategy.entry('Sell', strategy.short) entrybar := close // Update entrybar when entering a new sell position entrybar