Die Ressourcen sind geladen. Beförderung...

Quantitative Strategie für den Querschnitt zwischen bewegten Durchschnittswerten mit doppeltem Rumpf

Schriftsteller:ChaoZhang, Datum: 2024-11-29 16:53:05
Tags:HMA- Nein.WMA

img

Übersicht

Diese Strategie basiert auf den Crossover-Signalen des Hull Moving Average (HMA). Sie erzeugt Handelssignale, wenn sich zwei HMA-Linien mit unterschiedlichen Perioden kreuzen.

Strategieprinzip

Der Kern der Strategie besteht darin, Markttrendumkehrpunkte mit HMA-Kreuzungen verschiedener Perioden zu erfassen. Die HMA-Berechnung beinhaltet drei Schritte: zunächst eine Halbzeit-WMA berechnen, dann eine Vollzeit-WMA berechnen und schließlich eine andere WMA mit einer Periode berechnen, die der Quadratwurzel der ursprünglichen Periode entspricht, indem eine spezielle Kombination der ersten beiden WMAs verwendet wird. Kaufsignale werden generiert, wenn die schnelle HMA (Standard 9-Perioden) über die langsame HMA (Standard 16-Perioden) kreuzt und Verkaufssignale, wenn die schnelle HMA unter die langsame HMA kreuzt.

Strategische Vorteile

  1. Schnelle Signalreaktion: HMA verringert durch seine spezielle Berechnungsmethode die Verzögerung der traditionellen gleitenden Durchschnitte erheblich und erfasst die Veränderungen des Markttrends schneller.
  2. Lärmfilterung: Die Überschreitungsbestätigung zwischen zwei gleitenden Durchschnitten filtert effektiv Marktlärm aus und reduziert falsche Signale.
  3. Flexible Parameter: Die Strategie ermöglicht die Anpassung von schnellen und langsamen Linienzeiten an verschiedene Marktumgebungen.
  4. Klare Visualisierung: Die Strategie zeigt sowohl gleitende Durchschnitte als auch Handelssignale auf dem Diagramm für einfache Analyse und Optimierung.

Strategische Risiken

  1. Chappy-Marktrisiko: Häufige Überschreitungen in seitlichen Märkten können zu Überhandelungen und aufeinanderfolgenden Verlusten führen.
  2. Verzögerungsrisiko: Obwohl die HMA weniger Verzögerung aufweist als herkömmliche gleitende Durchschnitte, besteht immer noch eine gewisse Verzögerung, die möglicherweise optimale Einstiegspunkte fehlt.
  3. Parameterempfindlichkeit: Verschiedene Parameterkombinationen können zu deutlich unterschiedlichen Handelsergebnissen führen, die eine sorgfältige Optimierung erfordern.
  4. Falsches Ausbruchrisiko: Der Markt kann falsche Ausbrüche aufweisen, die zu falschen Handelssignalen führen.

Strategieoptimierungsrichtlinien

  1. Einführung von Trendfiltern: Hinzufügen von ADX- oder Trendstärkenindikatoren, um nur in klaren Trends zu handeln.
  2. Optimierung des Stop-Loss-Mechanismus: Entwerfen dynamischer Stop-Loss auf Basis von ATR oder Volatilität.
  3. Hinzufügen von Handelsbestätigungsbedingungen: Einbeziehung von Volumen- und Dynamikindikatoren als Hilfsbestätigungssignale.
  4. Anpassung der Parameter: Entwicklung dynamischer Mechanismen zur Anpassung der Parameter auf der Grundlage der Marktvolatilität.
  5. Optimierung des Risikomanagements: Hinzufügen von Positionsgrößen und Geldverwaltungsmodulen.

Zusammenfassung

Dies ist eine quantitative Handelsstrategie, die auf HMA-Crossovers basiert und zeitnahere Handelssignale liefert, indem die Verzögerung traditioneller gleitender Durchschnitte reduziert wird. Das Strategiedesign ist prägnant, leicht zu verstehen und umzusetzen, erfordert jedoch Aufmerksamkeit für die Anpassungsfähigkeit an das Marktumfeld und das Risikomanagement in praktischen Anwendungen. Durch kontinuierliche Optimierung und Verbesserung hat diese Strategie das Potenzial, zu einem robusten Handelssystem zu werden.


/*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)

Verwandt

Mehr