Doppelter gleitender Durchschnitt-Crossover kombiniert mit der quantitativen Strategie des gleitenden Durchschnitts von Hull

HMA MA WMA
Erstellungsdatum: 2024-11-29 16:53:05 zuletzt geändert: 2024-11-29 16:53:05
Kopie: 2 Klicks: 514
1
konzentrieren Sie sich auf
1617
Anhänger

Doppelter gleitender Durchschnitt-Crossover kombiniert mit der quantitativen Strategie des gleitenden Durchschnitts von Hull

Überblick

Die Strategie basiert auf dem Hull Moving Average (HMA), der auf Kreuzungssignalen basiert. Die HMA ist ein fortgeschrittener Moving Average-Indikator, der die Rückstände durch eine spezielle Kombination von gewichteten Moving Averages (WMA) reduziert, um ein schnelleres und friedlicheres Markttrendsignal zu liefern.

Strategieprinzip

Der Kern der Strategie ist die Verwendung von HMA-Kreuzungen verschiedener Zyklen, um Wendepunkte für Markttrends zu erfassen. Der HMA-Berechnungsvorgang besteht aus drei Schritten: Zuerst berechnet man den halben Zyklus-WMA, dann den vollen Zyklus-WMA, und schließlich berechnet man einen Zyklus als Quadratwurzel des ursprünglichen Zyklus-WMA durch eine spezielle Kombination dieser beiden WMA.

Strategische Vorteile

  1. Schnelle Reaktion der Signale: Die HMA reduziert die Verzögerung des traditionellen Moving Averages durch spezielle Berechnungsmethoden und kann so schnellere Veränderungen der Markttrends erfassen.
  2. Lärmfilter: Durch die Kreuzbestätigung zweier Gleichlinien kann der Marktlärm effektiv gefiltert und falsche Signale reduziert werden.
  3. Flexibilität der Parameter: Die Strategie erlaubt die Anpassung der Periodiparameter der schnellen und langsamen Linie an unterschiedliche Marktbedingungen.
  4. Die Strategie zeigt die beiden Mittellinien und die Handelssignale klar auf der Grafik, um die Analyse und Optimierung zu erleichtern.

Strategisches Risiko

  1. Das Risiko von Marktschocks: Häufige Kreuzungen können zu Überhändlungen und langfristigen Stop-Losses führen.
  2. Rückstandsrisiko: Obwohl die HMA im Vergleich zum herkömmlichen Durchschnittswert weniger zurückliegt, gibt es eine gewisse Rückstandsgefahr, die den optimalen Einstiegspunkt verpassen kann.
  3. Parameter-Sensitivität: Verschiedene Kombinationen von Parametern können zu sehr unterschiedlichen Transaktionsergebnissen führen und erfordern eine sorgfältige Parameteroptimierung.
  4. Gefahr eines Fehlbruchs: Es kann zu einem Fehlbruch kommen, der zu falschen Handelssignalen führt.

Richtung der Strategieoptimierung

  1. Einführung eines Trendfilters: ADX oder Trendstärke-Indikatoren können hinzugefügt werden, um nur dann zu handeln, wenn ein Trend eindeutig ist.
  2. Optimierte Stop-Mechanismen: Entwerfen von dynamischen Stop-Strategien, wie zum Beispiel Stop-Strategien auf Basis von ATR oder Volatilität.
  3. Erweiterung der Bedingungen für die Bestätigung von Transaktionen: Zusätzliche Bestätigungssignale, wie z. B. die Kombination von Verkehrs- und Bewegungsindikatoren.
  4. Anpassung der Parameter: Entwicklung einer dynamischen Anpassungsmechanik für die Parameter, die auf der Volatilität des Marktes basiert.
  5. Optimierung des Risikomanagements: Hinzufügen von Positionsmanagement- und Vermögensverwaltungsmodulen.

Zusammenfassen

Es handelt sich um eine quantitative Handelsstrategie, die auf HMA-Kreuzungen basiert und zeitnahere Handelssignale liefert, indem sie die Verzögerung des herkömmlichen Moving Averages reduziert. Die Strategie ist schlicht und einfach zu verstehen und zu implementieren, aber in der praktischen Anwendung muss auf die Anpassung an die Marktumgebung und das Risikomanagement geachtet werden. Durch kontinuierliche Optimierung und Verbesserung hat die Strategie das Potenzial, ein robustes Handelssystem zu werden.

Strategiequellcode
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Hull Moving Average Crossover", overlay=true)


fastLength = input.int(9, "Fast HMA Length", minval=1)
slowLength = input.int(16, "Slow HMA Length", minval=1)


hma(src, length) =>
    wma1 = ta.wma(src, length / 2)
    wma2 = ta.wma(src, length)
    ta.wma(2 * wma1 - wma2, math.floor(math.sqrt(length)))


fastHMA = hma(close, fastLength)
slowHMA = hma(close, slowLength)


plot(fastHMA, color=color.blue, title="Fast HMA")
plot(slowHMA, color=color.red, title="Slow HMA")


longCondition = ta.crossover(fastHMA, slowHMA)
shortCondition = ta.crossunder(fastHMA, slowHMA)


if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)


plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)