Multi-EMA- und RSI-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2024-03-01 13:26:24
Tags:

img

Übersicht

Dieser Artikel analysiert hauptsächlich die von Ravikant_sharma entwickelte quantitative Handelsstrategie, die auf mehreren exponentiellen gleitenden Durchschnitten (EMA) und Relative Strength Index (RSI) basiert.

Strategieprinzip

Berechnung der Indikatoren

Die Strategie verwendet 5 EMAs mit verschiedenen Perioden, darunter 9-Tage-, 21-Tage-, 51-Tage-, 100-Tage- und 200-Tage-Linien. Nur die ersten 4 EMAs werden im Code gezeichnet. Der RSI-Parameter ist auf 14 festgelegt.

Einreisebedingungen

Vor dem Kauf muss eine der folgenden Bedingungen erfüllt sein:

  1. Der 9-Tage-EMA überschreitet den 21-Tage-EMA
  2. Der 9-Tage-EMA überschreitet den 51-Tage-EMA
  3. Der 51-Tage-EMA geht unter den 100-Tage-EMA

Gleichzeitig muss der RSI über 65 liegen, was auf einen starken Aufwärtstrend hinweist.

Bedingungen für den Austritt

Vor dem Schließen der Position muss eine der folgenden Bedingungen erfüllt sein:

  1. Der 9-Tage-EMA überschreitet den 51-Tage-EMA, was auf eine Trendumkehr hinweist
  2. Der Schlusskurs übersteigt 125% des Einstiegspreises und erreicht das Gewinnziel
  3. RSI fällt unter 40, Signal für Umkehrung
  4. Der Schlusskurs fällt unter 98% des Eintrittspreises, Stopp-Loss ausgelöst

Analyse der Vorteile

Es handelt sich um eine typische Strategie mit folgenden Stärken:

  1. Verwendung von EMA-Kreuzungen zur Bestimmung der Trendrichtung für eine effektive Trendverfolgung
  2. Durch die Kombination von EMAs aus verschiedenen Zeiträumen werden zuverlässigere Trendsignale ermittelt
  3. Der RSI-Filter vermeidet falsche Signale in Bereichsgebundenen Märkten
  4. Gewinn- und Stop-Loss-Einstellungen verriegeln Gewinne und kontrollieren Risiken

Risiken und Lösungen

Es gibt noch einige Risiken:

  1. In den Märkten mit Range-Bindungen können häufig unsichere Signale auftreten, die zu einem Überhandel führen.
  2. EMA-Crossover-Signale können bei starken Umkehrungen verzögert sein und nicht rechtzeitig aussteigen können.
  3. Unzulässige Gewinnziele und Stop-Loss-Einstellungen führen zu einem vorzeitigen Stop-Loss oder zu einem Versagen, die Gewinne rechtzeitig zu erzielen.

Optimierungsrichtlinien

Die Strategie kann auf folgende Weise weiter optimiert werden:

  1. Parameteroptimierung für verschiedene Produkte
  2. Hinzufügen anderer technischer Indikatoren zum Aufbau von Multifaktormodellen
  3. Einbeziehung von Algorithmen des maschinellen Lernens zur Bewertung der Signalqualität
  4. Kombination von Gefühlsanalysen, um emotionale Fallstricke zu vermeiden
  5. Verschiedene Take-Profit-/Stop-Loss-Strategien testen, um optimale

Schlussfolgerung

Zusammenfassend ist dies eine allgemein zuverlässige und einfach umsetzbare Trendfolgestrategie. Mit EMA-Crossover für die Trendrichtung und RSI-Filter für falsche Signale bieten gute Backtest-Ergebnisse eine solide Grundlage für weitere Parameter- und Modelloptimierung, um stetige Gewinne zu erzielen. Trader sollten jedoch immer noch vorsichtig mit starken Umkehrungen und unsachgemäßen Parametern sein, die Risiken bergen.


/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ravikant_sharma

//@version=5

strategy('new', overlay=true)

start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)

rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))   

//plot(ema4, '100', color.new(color.gray, 0)) 


//LongEntry = (  ta.crossover(ema0,ema3)  or  ta.crossover(ema0,ema2) or  ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1) 
    if rsi2>65
        LongEntry:=true
if ta.crossover(ema1,ema2)
    if rsi2>65
        LongEntry:=true
        
LongExit =  ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)



if time >= start and time <= end 
    if(LongEntry and rsi2>60)
        strategy.entry('Long', strategy.long, 1)
    if(LongExit)
        strategy.close('Long') 



Mehr