HullMA-Krossover-Trendstrategie für doppelte gleitende Durchschnitte

Schriftsteller:ChaoZhang, Datum: 2024-02-26 11:21:45
Tags:

img

Übersicht

Die Dual Moving Average HullMA Crossover Trend Strategie ist eine Trendfolgestrategie, die auf dem Crossover von dualen gleitenden Durchschnitten basiert.

Strategie Logik

Die HullMA Crossover-Strategie verwendet drei WMA-Linien mit unterschiedlichen Perioden, darunter wma1, wma2 und wma3. Die wma2 und wma3 konstruieren das doppelte gleitende Durchschnittssystem. Die wma2-Kreuzung über wma3 gibt bullische Signale, während die wma2-Kreuzung unter wma3 bärische Signale gibt. Die wma1 dient als Hilfsreferenzlinie.

Darüber hinaus verwendet die Strategie den Hull Moving Average, um die Signalvalidierung zu stärken. Insbesondere berechnet sie die Differenz zwischen 2-Perioden-WMA verdoppelt (n2ma) und n-Perioden-WMA (nma). Nur wenn die Differenz steigt, werden Bullensignale bestätigt. Nur wenn die Differenz fällt, werden Bearsignale bestätigt.

Die Strategie beinhaltet auch die Preisvalidierung. Nur wenn der Preis höher als am Vortag ist, werden Bullensignale für Long-Orders bestätigt. Nur wenn der Preis niedriger als am Vortag ist, werden Bear-Signale für Short-Orders bestätigt.

Analyse der Vorteile

Die Dual Moving Average HullMA Crossover Trend Strategie kombiniert doppelten gleitenden Durchschnitts-Crossover und Preisvalidierung, wodurch sie falsche Signale effektiv herausfiltern kann. Dies ist ihre größte Stärke. Außerdem kann die Strategie mit drei gleitenden Durchschnittslinien verschiedener Perioden Trends unterschiedlicher Ebenen frühzeitig erfassen. Ihr Stop-Loss-Mechanismus ist auch ziemlich stabil und zuverlässig.

Risikoanalyse

Als Trendfolgestrategie kann die Dual Moving Average HullMA Crossover Trend-Strategie relativ mehr Trades und Slippage-Kosten während von Bereichsgebundenen Märkten generieren. Darüber hinaus neigen Dual Moving Average Crossover-Systeme dazu, zu empfindlich zu sein und können während seitlicher Trends falsche Signale emittieren. Es ist ratsam, die Parameter des gleitenden Durchschnitts anzupassen oder entsprechend zusätzliche Filter zu erlegen.

Optimierungsrichtlinien

Die Strategie des doppelten gleitenden Durchschnitts HullMA Crossover Trend kann in folgenden Aspekten verbessert werden:

  1. Optimieren Sie die gleitenden Durchschnittsparameter, um die beste Parameterkombination zu finden

  2. Fügen Sie Filter wie Volumen oder Volatilität hinzu, um falsche Ausbrüche zu eliminieren

  3. Einbeziehung anderer Indikatoren als ergänzende Validierung zur Verbesserung der Signalqualität

  4. Dynamische Optimierung der gleitenden Durchschnittsperiodenparameter

Zusammenfassung

Zusammenfassend ist die Dual Moving Average HullMA Crossover Trend Strategie eine stabile und zuverlässige Trendfolgestrategie. Sie erzeugt qualitativ hochwertige Signale durch Kombination von Dual Moving Average Crossover und Preisvalidierung. Durch Parameter-Tuning und das Hinzufügen von Filtern kann sie falsche Signale weiter reduzieren und eine bessere Leistung erzielen. Sie eignet sich zur Erfassung mittelfristiger bis langfristiger Trends und ist eine solide Wahl für den quantitativen Handel.


/*backtest
start: 2023-02-25 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("ZendicatoR", overlay=true)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)

Mehr