Handelsstrategie mit langsam schließendem gleitendem Durchschnitt


Erstellungsdatum: 2023-12-22 13:18:34 zuletzt geändert: 2023-12-22 13:18:34
Kopie: 0 Klicks: 687
1
konzentrieren Sie sich auf
1623
Anhänger

Handelsstrategie mit langsam schließendem gleitendem Durchschnitt

Überblick

Diese Strategie kombiniert die Verwendung eines langsamen Heiken Ashi mit einem Index-Moving Average, um Trends zu identifizieren, und führt einen langen und kurzen Zwei-Wege-Handel in trendigen Situationen durch.

Strategieprinzip

Die Strategie verwendet folgende Kombinationen von Kennzahlen:

  1. Langsamer Heiken Ashi: Eine spezielle Art von K-Linienkarte, die den Mittelwert der vorherigen K-Linien verwendet, um Marktlärm zu filtern und Trends zu erkennen. Dies wird durch die Adaption des Kama-Filters erreicht.

  2. Indikatorische Moving Average: Die mittlere Linie, die nach einer Index-Gleichung der Preise ermittelt wird, die EMAs für mehrere Perioden von 5 bis 100 Tagen enthält.

Die Transaktionslogik lautet wie folgt:

  1. Wenn der Preis die 100-Tage-EMA überschreitet, machen Sie mehr; wenn der Preis die 100-Tage-EMA überschreitet, machen Sie nichts.

  2. Plateau-Bedingungen: Wenn der Heiken Ashi-Eröffnungspreis seinen Schlusskurs überschreitet (potentielle Umkehrsignale), werden die entsprechenden Multi-Head-Positionen durch eine umgekehrte Kreuzung ausgeglichen, wobei die leeren Positionen gleichwertig sind.

Analyse der Stärken

Diese Strategie kombiniert Trendbeurteilung und Umkehrsignale, um erhebliche Preisschwankungen in Trendbewegungen zu erfassen, während Verluste durch Umkehrsignale vermieden werden.

  1. Verwenden Sie die EMA, um die Richtung des globalen Trends zu bestimmen, um nicht von lokalen Erschütterungen getäuscht zu werden.

  2. Heiken Ashi’s Kreuzung signalisiert eine frühe Chance auf Umkehr.

  3. Der Adaptive Kama-Filter reduziert die Wahrscheinlichkeit von Falschsignalen.

Risikoanalyse

  1. Eine starke Überschreitung der EMA kann zu einer Verlustvergrößerung führen. Die Haltedauer kann entsprechend verkürzt oder ein Stop-Loss gesetzt werden.

  2. Die Umkehrsignale können nachlässig sein, so dass eine Verringerung der Positionsgröße zur Risikokontrolle in Betracht gezogen werden kann.

  3. Die falsche Einstellung der EMA-Parameter beeinflusst auch die Strategie-Performance und sollte je nach Sorte und Marktumgebung angepasst werden.

Optimierungsrichtung

  1. Die Wahrscheinlichkeit, dass sowohl die EMA als auch Heiken Ashi falsche Signale abgeben, kann mit einer Kombination verschiedener Indikatoren beurteilt werden.

  2. Die EMA-Parameter können in Echtzeit anhand der Marktfluktuation optimiert werden, wobei die Stop-Loss-Parameter bei hohen Schwankungen festgehalten und die Gleitpunkte bei niedrigen Schwankungen gelockert werden.

  3. Automatische Optimierung der Parameter-Einstellungen und Filterregeln basierend auf Machine-Learning-Algorithmen, um die Strategie robuster zu machen.

Zusammenfassen

Die Strategie ist insgesamt relativ einfach und praktisch, aber in Kombination mit Trends und Umkehrungen gibt es bei der Optimierung der Parameter und der Risikokontrolle noch genügend Gewinnspielraum. Anschließend kann die Strategie an die Veränderungen der Marktumgebung angepasst werden.

Strategiequellcode
/*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)