Hull gleitender Durchschnittswert nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-02 14:57:37
Tags:

img

Übersicht

Diese Strategie basiert auf dem Hull Moving Average Indikator, um einen Trend nach dem Handelssystem zu konstruieren.

Strategie Logik

Der Hull Moving Average wurde 2005 vom amerikanischen Händler Alan Hull vorgeschlagen.

Insbesondere enthält der Hull Moving Average zwei Durchschnitte - einer ist der gleitende Durchschnitt MA ((n) der Periode n, der andere ist der gleitende Durchschnitt MA ((n/2) der Periode n/2. Die Differenz zwischen den beiden gleitenden Durchschnitten bildet die Hull Differenzkurve.

Wenn die Hull-Kurve nach oben neigt, überschreitet der kürzere Periode gleitende Durchschnitt über die längere Periode eins, was ein langes Signal gibt.

Diese Strategie setzt die Periode n der Hull-Kurve auf 16. Sie berechnet die 8-Perioden-MA (n/2=8), die 16-Perioden-MA und die Differenz zwischen ihnen, um die Hull-Kurve zu erhalten. Sie nimmt dann die 4-Perioden-MA (Quadratwurzel von n=4) der Hull-Kurve selbst. Wenn die Hull-Kurve nach oben kreuzt, geht sie lang. Wenn die Hull-Kurve nach unten kreuzt, geht sie kurz.

Analyse der Vorteile

Im Vergleich zu gewöhnlichen gleitenden Durchschnitten hat der Hull-Gleibende Durchschnitt folgende Vorteile:

  1. Durch die Verwendung einer Quadratwurzelfunktion wird die Hull-Kurve die Kursbewegung näher umfassen und ist schneller, um Trendumkehrungen zu erfassen.

  2. Die Hull-Kurve kann etwas Lärm filtern und unnötige Trades vermeiden.

  3. Die Hull-Kurve benötigt nur einen Parameter n, was die Optimierung erleichtert.

  4. Der n-Wert der Hull-Kurve kann für verschiedene Märkte angepasst und für verschiedene Instrumente angepasst werden.

  5. Systematisch: Das Hull-System ist robust und vermeidet manuelle Auswahl, wobei die Konsistenz mechanischer Handelssysteme eingehalten wird.

Risikoanalyse

Trotz der Vorteile gegenüber gleitenden Durchschnittssystemen birgt das Hull-System weiterhin folgende Risiken:

  1. Als Trendverfolgungsstrategie sind Hull-Systeme anfällig für Stopps bei drastischen Trendänderungen.

  2. Die schnelle Reaktion der Hull-Kurven kann die Handelsfrequenz erhöhen und zu Überhandelungen führen.

  3. Überoptimierung von Parametern. Nur ein Parameter n zu haben, kann zu Kurvenanpassungsrisiken durch Überoptimierung führen.

  4. Das Hull-System funktioniert weniger gut für Instrumente mit hoher Volatilität.

Verbesserungsrichtlinien

Aufgrund der oben genannten Einschränkungen kann die Strategie des gleitenden Durchschnitts von Hull in folgenden Aspekten verbessert werden:

  1. Fügen Sie Filter mit zusätzlichen Indikatoren hinzu, um falsche Kreuzungen zu vermeiden.

  2. Hinzufügen von Stop-Loss-Strategien zur Kontrolle einzelner Handelsverluste, z. B. mit Trailing-Stops oder Profit-Stops.

  3. Optimieren Sie die Parameter-N-Auswahl, um eine Überoptimierung zu vermeiden.

  4. Verwenden Sie maschinelle Lernmodelle wie RNNs, um die Parameterwerte dynamisch zu optimieren.

  5. Optimieren von Parametern für verschiedene Instrumente mit Hilfe von Machine Learning Fitting.

  6. Optimieren Sie die Positionsgröße, um die Handelsfrequenz zu senken.

Schlussfolgerung

Die Hull Moving Average Strategie ist eine typische Trend-Folge-Strategie. Trotz ihrer Vorteile gegenüber MAs hat sie immer noch Probleme wie Überoptimierung und Overtrading. Wir können die Strategie durch Parameteroptimierung, Stop-Losses, Positionsgröße usw. verbessern. Das Hull-System ist einfach und praktisch. Es verdient weitere Forschung und Verbesserung, indem mehr Indikatoren und Techniken einbezogen werden, um ein robustes Handelssystem aufzubauen.


/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
n = input(title = "HullMA period", defval=16)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//HullMA
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
    
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if n1 > n2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if n1 < n2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if true
    strategy.close_all()

Mehr