Heikin-Ashi Umkehrstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-16 15:44:14
Tags:

img

Übersicht

Diese Strategie verwendet hauptsächlich verbesserte Heikin-Ashi-Kerzen, um Umkehrpunkte im Preis zu identifizieren und signifikante Trendänderungen zu erfassen. Sie gehört zu kurzfristigen Handelsstrategien. Die Strategie berechnet die Öffnungs-, Höchst-, Tief- und Schlusskuren von Kerzen mit HA und bestimmt die endgültige Farbe basierend auf der Preisbeziehung. Grüne Kerzen repräsentieren steigende Preise und rote Kerzen fallenende Preise. Die Strategie verwendet HA Kerzenfarbenwechsel als Handelssignale, um auf Grün zu roten Veränderungen zu gehen und auf Rot zu grünen Veränderungen zu gehen. Es ist eine typische Umkehrstrategie.

Strategie Logik

Die Kernlogik der Strategie besteht darin, Farbwechsel in HA-Kerzen zu erkennen, um die Preisumkehrung zu bestimmen.

Erstens erhalten Sie die Eröffnungs-, Höchst-, Tief- und Schlusskurswerte aus HA-Daten oder Originaldaten auf der Grundlage des Eingabeparameters.

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close

haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open  

haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high

haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

Dann berechnen Sie den Strom von HA bei offenem und geschlossenem Strom nach Formeln.

haclose = (haOpen + haHigh + haLow + haClose) / 4  

haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2

Weiter erhalten HA höchste und niedrigste Preise.

hahigh = max(haHigh, max(haopen, haclose))

halow = min(haLow, min(haopen, haclose))  

Die Farbe der HA-Kerze wird anhand der offenen/nahen Beziehung bestimmt.

hacolor = haclose > haopen ? color.green : color.red

Identifizieren Sie Umkehrsignale auf der Grundlage der Farbwechsel zwischen den Balken.

turnGreen = haclose > haopen and haclose[1] <= haopen[1]  

turnRed = haclose <= haopen and haclose[1] > haopen[1] 

Öffnen von Long/Short-Positionen, wenn Signale ausgelöst werden.

strategy.entry("long", 1, when=turnGreen)
  
strategy.entry("short", 0, when=turnRed) 

Schließen Sie Positionen bei entgegengesetzten Signalen.

strategy.close("long", when=turnRed)

Durch das Erkennen von Farbwechseln der HA-Kerze erfasst die Strategie Preisumkehrpunkte für den Umkehrhandel.

Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Durch die Verwendung verbesserer HA-Kerzen wird Lärm filtert und Rückschläge klarer erkannt.

  2. Einfache Logik, basierend auf HA-Farbwechseln, leicht zu verstehen und umzusetzen.

  3. Der Umkehrhandel erfasst schnell Trendveränderungen für den Gewinn.

  4. Anpassbar, um HA-Kerzen für verschiedene Märkte zu verwenden oder nicht.

  5. Kerzenpfeile zeigen visuell Umkehrungen an.

  6. Parameter wie Zeitrahmen können für verschiedene Produkte optimiert werden.

Risiken

Es gibt auch einige Risiken zu beachten:

  1. Der Umkehrhandel kann anfällig für Fallen sein. Die Signale müssen zuverlässig sein.

  2. In verschiedenen Märkten können häufige Whipsaws auftreten.

  3. Es ist nicht möglich, die Trenddauer zu bestimmen, kann der Trend umkehren und dann fortführen.

  4. Ein einzelner Indikator, der anfällig für falsche Signale ist, sollte mit anderen kombiniert werden.

  5. Überanpassung muss durch Optimierung vermieden werden.

Lösungen:

  1. Optimieren Sie die Parameter für zuverlässige Signale.

  2. Fügen Sie einen Trendfilter hinzu, um Marktveränderungen zu vermeiden.

  3. Verwenden Sie Stop Loss, um Verluste pro Handel zu kontrollieren.

  4. Bestätigen Sie Signale mit anderen Indikatoren, um falsche Signale zu vermeiden.

  5. Gründliche Rückprüfung zur Optimierung der Parameter und zur Verhinderung von Überanpassung.

Verbesserungen

Die Strategie kann wie folgt verbessert werden:

  1. Optimieren Sie den Zeitrahmen für verschiedene Produkte.

  2. Die Verwendung von HA-Kerzen pro Produktmerkmal prüfen.

  3. Fügen Sie einen Trendfilter hinzu, um Whipsaws in den unterschiedlichen Märkten zu vermeiden.

  4. Implementieren dynamischer Stopps basierend auf der Marktvolatilität.

  5. Bestätigen Sie die Signale mit zusätzlichen Indikatoren.

  6. Einbeziehung einer Positionsgröße auf der Grundlage des Risikomanagements.

  7. Erweitern Sie den Handel mit Arbitrage für mehrere Produkte.

  8. Anpassung der Parameter anhand der Rückprüfungsergebnisse, um eine Überanpassung zu vermeiden.

Schlussfolgerung

Diese Strategie nutzt die Stärken der verbesserten HA-Kerzen, um potenzielle Umkehrpunkte durch HA-Farbänderungen zu entdecken. Im Vergleich zu normalen Kerzen filtert HA Lärm für sauberere Signale. Die Strategie implementiert Umkehrhandelslogik auf eine einfache und intuitive Weise, die für den Live-Handel einfach zu bedienen ist. Aber Umkehrtrades sind mit Fallrisiken konfrontiert und sollten für eine größere Signalgenauigkeit optimiert werden. In Kombination mit Trendanalyse und anderen Faktoren kann ein vollständigeres System gebildet werden.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Heikin-Ashi Change Strategy", overlay=true)

UseHAcandles    = input(true, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

// Calculation HA Values 
haopen = 0.0
haclose = (haOpen + haHigh + haLow + haClose) / 4
haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = max(haHigh, max(haopen, haclose))
halow = min(haLow, min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red

// Signals
turnGreen = haclose > haopen and haclose[1] <= haopen[1]
turnRed = haclose <= haopen and haclose[1] > haopen[1]

// Plotting
bgcolor(hacolor)

plotshape(turnGreen, style=shape.arrowup, location=location.belowbar, color=color.green)
plotshape(turnRed, style=shape.arrowdown, location=location.abovebar, color=color.red)

// Alerts
alertcondition(turnGreen, "ha_green", "ha_green")
alertcondition(turnRed, "ha_red", "ha_red")

strategy.entry("long", 1, when=turnGreen)
//strategy.entry("short", 0, when=turnRed)
strategy.close("long", when=turnRed)


Mehr