EMA-Kreuzübergangs-Tagegehandelsstrategie auf Basis des AO-Oszillators

Schriftsteller:ChaoZhang, Datum: 25.12.2023
Tags:

img

Übersicht

Dies ist eine Intraday-Handelsstrategie, die den AO-Oszillator und EMA-Crossovers verwendet, um Handelssignale zu generieren.

Strategie Logik

Die Strategie stützt sich hauptsächlich auf zwei Indikatoren für Ein- und Ausstiege:

  1. AO-Oszillator: Er misst die Differenz zwischen 5-Perioden- und 34-Perioden-HL2-Durchschnitten, um die aktuelle Trendrichtung zu messen. Positiver AO stellt einen Aufwärtstrend dar, während negativer AO einen Abwärtstrend signalisiert.

  2. EMA Crossover: Die Strategie verwendet eine 3-Perioden-EMA für den kurzfristigen Trend und eine 20-Perioden-EMA für die mittelfristige Trendrichtung.

Die Trades werden nur eingegangen, wenn der AO seine Nulllinie gleichzeitig mit einem EMA-Crossover überschreitet. Dies vermeidet falsche Signale, wenn der AO oszilliert. Die Exits erfolgen nach Abschluss der London Session, indem alle Positionen abgeflacht werden.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Der AO-Oszillator stellt eine genaue Trendrichtung für zuverlässige Signale sicher.
  2. Doppel-Indikator-Kombination filtert Geräusche für Hochvertrauenssignale aus;
  3. Der Handel nur während der wichtigsten Sitzungen vermeidet das Overnight-Risiko;
  4. Einfache und klare Logik macht sie leicht verständlich und umsetzbar.
  5. Keine Optimierung oder Kurvenanpassung mit stabilen Parametern erforderlich.

Risikoanalyse

Zu den zu berücksichtigenden Risiken gehören:

  1. Die Risikopositionen werden von den Risikokapitalgebern in Bezug auf die Risikopositionen gemäß Artikel 36 Absatz 1 Buchstabe b der CRR ausgewiesen.
  2. Whipsaws aus falschen EMA-Crossovers in verschiedenen Märkten;
  3. Mangelnde Anpassungsfähigkeit von festen Parametern in wechselnden Marktzyklen.

Die Risiken können durch Stop-Losses, an unterschiedliche Zyklen angepasste Adaptivparameter usw. gemildert werden.

Optimierungsrichtlinien

Die wichtigsten Optimierungsrichtungen sind die Parameter-Tuning:

  1. Anpassung von EMA-Perioden für die Prüfung von kurzfristigen Kombinationen oder zusätzlichen EMAs bei der Signalerzeugung;
  2. Abstimmung der AO-Parameter zur Bewertung der Auswirkungen auf den Oszillator;
  3. Zusätzliche Indikatoren wie RSIbord hinzufügen, um Überkauf-/Überverkaufsbedingungen zu vermeiden;
  4. Anpassung der Handelszeiten, um verschiedene Regionen oder längere Zeiträume zu testen.

Parameteränderungen und zusätzliche Filter können die Robustheit und Effizienz der Strategie erhöhen.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass diese Intraday-Trading-Taktik den AO-Trendgager mit EMA-Crossovers kombiniert, um einen einfachen, aber praktischen Ansatz zu entwickeln. Sie hat klare Signale, die leicht zu implementieren sind, aber anpassungsfähige Parameter fehlen. Weitere Tests und Verbesserungen können ihre Stabilität und Ausrichtung auf unterschiedliche Marktlandschaften verbessern. Insgesamt bietet sie Einzelhandelshändlern eine ausgezeichnete Wahl.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@author SoftKill21

strategy(title="MA cross + AO", shorttitle="MA_AO")
ao = sma(hl2,5) - sma(hl2,34)

len = input(3, minval=1, title="Length")
src = input(close, title="Source")
out = ema(src, len)

len1 = input(20, minval=1, title="Length")
src1 = input(close, title="Source")
out1 = sma(src1, len1)

timeinrange(res, sess) => time(res, sess) != 0
londopen = timeinrange(timeframe.period, "0300-1100") 
nyopen = timeinrange(timeframe.period, "0800-1600") 

longC = crossover(out,out1) and ao>0 and londopen
shortC = crossunder(out,out1) and ao<0 and londopen

invert = input(title="Reverse position ?", type=input.bool, defval=false)

if(invert==false)
    strategy.entry("LONG",1,when=longC)
    strategy.entry("SHORT",0,when=shortC)



if(invert==true)
    strategy.entry("short",0,when=longC)
    strategy.entry("long",1,when=shortC)
    
strategy.close_all(when= not (londopen))




Mehr