Slow Heiken Ashi Exponential Moving Average Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-22 13:18:34
Tags:

img

Übersicht

Diese Strategie kombiniert langsame Heiken Ashi und exponentielle gleitende Durchschnitte, um Trends zu identifizieren und lange/kurze Trades während trending Markets zu machen.

Strategie Logik

Die Strategie setzt folgende Indikatoren ein:

  1. Slow Heiken Ashi: Eine spezielle Art von Leuchter, der anhand des vorherigen Durchschnittspreises der Bar berechnet wird, der Marktlärm filtert und Trends identifiziert.

  2. Exponentieller gleitender Durchschnitt: Glättete Preisdurchschnitte mit exponentieller Gewichtung.

Die spezifische Handelslogik lautet:

  1. Gehen Sie lang, wenn der Preis über die 100-Tage-EMA geht, gehen Sie kurz, wenn der Preis unter die 100-Tage-EMA geht.

  2. Ausgangspositionen, wenn der offene Kurs von Heiken Ashi seinen Schlusskurs überschreitet (potenzielles Umkehrsignal).

Analyse der Vorteile

Die Strategie kombiniert Trend- und Umkehrsignale, um große Kursschwankungen während der Trendmärkte zu erfassen und gleichzeitig übermäßige Verluste bei Umkehrtrends zu vermeiden.

  1. Die EMA bestimmt die allgemeine Markttrendrichtung und verhindert Ablenkungen durch lokale Schwankungen.

  2. Heiken Ashi Crossovers ermöglichen eine frühzeitige Erkennung potenzieller Umkehrungen.

  3. Adaptiver KAMA-Filter reduziert falsche Signale.

Risikoanalyse

  1. Plötzliche, große EMA-Brechungen können zu verstärkten Verlusten führen.

  2. Umkehrsignale können sich verzögern.

  3. Eine unzureichende EMA-Parametrierung wirkt sich negativ auf die Leistung aus.

Optimierungsrichtlinien

  1. Zusätzliche Indikatoren wie MACD und Bollinger-Bänder einbeziehen, um gleichzeitige EMA/Heiken-Ashi-Fehler zu vermeiden.

  2. Dynamische Optimierung der EMA-Parameter auf der Grundlage der Marktvolatilität, entsprechend eine Verschärfung der Stopps/Erhöhung der Schlupf Toleranz.

  3. Nutzen Sie maschinelles Lernen, um Parameter, Filterregeln und Robustheit automatisch einzustellen.

Schlussfolgerung

Die Strategie ist relativ einfach und praktisch insgesamt, kombiniert sowohl Trend- als auch Umkehrelemente. Mit gut abgestimmten Parametern und Risikokontrollen behält sie ein anständiges Gewinnpotenzial. Weitere Verbesserungen können auf den Optimierungsrichtungen aufbauen, um die Strategie anpassungsfähiger zu machen.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-19 10:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("NoScoobies Slow Heiken Ashi and Exponential Moving average Strategy 2.2", overlay=true)

//SHA
p=input(6,title='Period')
fastend=input(0.666,step=0.001)
slowend=input(0.0645,step=0.0001)
kama(close,amaLength)=>
    diff=abs(close[0]-close[1])
    signal=abs(close-close[amaLength])
    noise=sum(diff, amaLength)
    efratio=noise!=0 ? signal/noise : 1
    smooth=pow(efratio*(fastend-slowend)+slowend,2)
    kama=nz(kama[1], close)+smooth*(close-nz(kama[1], close))
    kama
hakamaper=1
Om=sma(open,p)
Hm=sma(high,p)
Lm=sma(low,p)
Cm=sma(close,p)
vClose=(Om+Hm+Lm+Cm)/4
vOpen= kama(vClose[1],hakamaper)
vHigh= max(Hm,max(vClose, vOpen))
vLow=  min(Lm,min(vClose, vOpen))
asize=vOpen-vClose
size=abs(asize)

//MMAR
exponential = input(true, title="Exponential MA")
src = close
ma05 = exponential ? ema(src, 05) : sma(src, 05)
ma10 = exponential ? ema(src, 10) : sma(src, 10)
ma15 = exponential ? ema(src, 15) : sma(src, 15)
ma20 = exponential ? ema(src, 20) : sma(src, 20)
ma25 = exponential ? ema(src, 25) : sma(src, 25)
ma30 = exponential ? ema(src, 30) : sma(src, 30)
ma35 = exponential ? ema(src, 35) : sma(src, 35)
ma40 = exponential ? ema(src, 40) : sma(src, 40)
ma45 = exponential ? ema(src, 45) : sma(src, 45)
ma50 = exponential ? ema(src, 50) : sma(src, 50)
ma55 = exponential ? ema(src, 55) : sma(src, 55)
ma60 = exponential ? ema(src, 60) : sma(src, 60)
ma65 = exponential ? ema(src, 65) : sma(src, 65)
ma70 = exponential ? ema(src, 70) : sma(src, 70)
ma75 = exponential ? ema(src, 75) : sma(src, 75)
ma80 = exponential ? ema(src, 80) : sma(src, 80)
ma85 = exponential ? ema(src, 85) : sma(src, 85)
ma90 = exponential ? ema(src, 90) : sma(src, 90)
ma95 = exponential ? ema(src, 95) : sma(src, 95)
ma100 = exponential ? ema(src, 100) : sma(src, 100)

longcondition=src>ma100
shortcondition=src<ma100
long=longcondition and size<size[1] and (vOpen<vClose or vOpen>vClose)
short=shortcondition and size<size[1] and (vOpen>vClose or vOpen<vClose)
close_long=longcondition and crossunder(open, vClose)
close_short=shortcondition and crossover(open, vClose)
_close=close_long[2] or close_short[2]

if long
    strategy.entry("LONG", strategy.long)
    strategy.close("LONG", when = _close)
if short
    strategy.entry("SHORT", strategy.short)
    strategy.close("SHORT", when = _close)
    


Mehr