Die Dual Moving Average HullMA Crossover Trend Strategie ist eine Trendfolgestrategie, die auf dem Crossover von dualen gleitenden Durchschnitten basiert.
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.
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.
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.
Die Strategie des doppelten gleitenden Durchschnitts HullMA Crossover Trend kann in folgenden Aspekten verbessert werden:
Optimieren Sie die gleitenden Durchschnittsparameter, um die beste Parameterkombination zu finden
Fügen Sie Filter wie Volumen oder Volatilität hinzu, um falsche Ausbrüche zu eliminieren
Einbeziehung anderer Indikatoren als ergänzende Validierung zur Verbesserung der Signalqualität
Dynamische Optimierung der gleitenden Durchschnittsperiodenparameter
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)