Die Ressourcen sind geladen. Beförderung...

Null Lag Hull EMA Combo Trend nach der Strategie

Schriftsteller:ChaoZhang, Datum: 2023-09-19 16:52:39
Tags:

Übersicht

Diese Strategie verwendet eine Kombination von Zero Lag EMA und Hull EMA, um Trendfolgen zu implementieren. Zero Lag EMA beseitigt die Verzögerung der regulären EMA und Hull EMA glättet die Kurskurve. Ihre Kombination kann Trendbewegungen für einen risikoarmen Trend nach dem Handel genauer erfassen.

Strategie Logik

Berechnen Sie zunächst die Nullverzögerungs-EMA:EMA1 = ema(close, Period) EMA2 = ema(EMA1, Period) Difference = EMA1 - EMA2 ZeroLagEMA = EMA1 + Difference

ZeroLagEMA ist die Zero Lag EMA, die das Problem der Verzögerung der regulären EMA eliminiert.

Dann berechnen Sie die Hull EMA-Gleichungskurve:

```
n2ma = 2*wma(ZeroLagEMA, round(S_period/2))
nma = wma(ZeroLagEMA, S_period) 
n1 = wma(n2ma - nma, sqn)
```

Schließlich wird die Trendrichtung auf der Grundlage des Größenverhältnisses zwischen der aktuellen Hull EMA (n1) und der Hull EMA (n2) der vorangegangenen Perioden bestimmt und die Handelsstrategie formuliert.

Analyse der Vorteile

Der größte Vorteil dieser Strategie ist die Fähigkeit, Trendrichtungen genau zu erfassen.

  1. Zero Lag EMA beseitigt das Problem der Verzögerung der regulären EMA und kann Preisänderungen schneller erfassen.

  2. Hull EMA verdoppelt die Preise und filtert etwas Lärm aus, um Trends klarer zu erfassen.

Im Vergleich zur Verwendung von EMA oder Hull EMA allein nutzt die Kombination die Stärken beider für eine genauere und zuverlässigere Strategie.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Eine falsche Einstellung der Parameter Periode und S_period kann dazu führen, dass die Strategie marktunempfindlich ist und Handelsmöglichkeiten verpasst wird.

  2. Auf den Märkten mit unterschiedlichen Märkten können die EMA und die Hull EMA mehr falsche Crossover-Signale erzeugen, die Vorsicht erfordern.

  3. Sie kann nicht effektiv mit den Preisunterschieden über Nacht umgehen.

Daher sind sorgfältige Parameterprüfungen erforderlich, die Indikatorsignale sollten mit Bedacht interpretiert und die Risiken der Preisunterschiede abgesichert werden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Versuchsparameterkombinationen für unterschiedliche Märkte und Zeitrahmen für eine bessere Anpassungsfähigkeit.

  2. Hinzufügen anderer Indikatoren, um falsche Ausbruchssignale wie KDJ, MACD usw. zu filtern, um die Stabilität zu verbessern.

  3. Hinzufügen von Stop Loss zur Kontrolle von Einzelverlusten.

  4. Optimieren Sie den Eintrittszeitpunkt, um die Gewinnquote weiter zu verbessern, z. B. Vermeidung von Trades gegen den Trend.

Zusammenfassung

Diese Strategie verwendet die Zero Lag Hull EMA-Combine, um Markttrends für einen risikoarmen Trend nach dem Handel genau und sensibel zu erfassen. Weitere Verbesserungen der Stabilität können durch Parameteroptimierung, Signalfilterung, Stop-Loss usw. erzielt werden. Insgesamt ist die Strategie einfach, praktisch und geeignet für Trendwährungspaare und Indizes.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Zero Lag EMA combined with Hull moving average for smoothing purposes.
// author: email: sbginter@gmail.com

strategy("Ujanja", overlay=true)



Period = input(title="Period",defval=30, minval=1)
S_period=input(title="Smoother Period",defval=176)
EMA1= ema(close,Period)
EMA2= ema(EMA1,Period)
Difference= EMA1 - EMA2
ZeroLagEMA= EMA1 + Difference

n2ma=2*wma(ZeroLagEMA,round(S_period/2))
nma=wma(ZeroLagEMA,S_period)
diff=n2ma-nma
sqn=round(sqrt(S_period))


n2ma1=2*wma(ZeroLagEMA[1],round(S_period/2))
nma1=wma(ZeroLagEMA[1],S_period)
diff1=n2ma1-nma1
sqn1=round(sqrt(S_period))


n1=wma(diff,sqn)
n2=wma(diff1,sqn)

c=n1>n2?green:red
ma=plot(n1,color=c)


longCondition = n1>n2
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = longCondition != true
if (shortCondition)
    strategy.entry("Short", strategy.short)

Mehr