Keltner Channel Breakout Retracement Strategie


Erstellungsdatum: 2023-12-27 14:49:39 zuletzt geändert: 2023-12-27 14:49:39
Kopie: 0 Klicks: 761
1
konzentrieren Sie sich auf
1621
Anhänger

Keltner Channel Breakout Retracement Strategie

Überblick

Diese Strategie basiert auf dem Keltner-Kanal-Indikator und entwickelt eine Rücknahme-Trading-Strategie. Die Strategie vergleicht die Beziehung zwischen dem Preis und dem Auf- und Abgang des Keltner-Kanals, um zu beurteilen, wann der Preis sich umdrehen kann, und um geeignete Positionen zu machen.

Strategieprinzip

Diese Strategie verwendet die Keltner-Kanal-Indikatoren, um die Preisentwicklung zu bestimmen. Die Keltner-Kanal besteht aus einer Mittellinie und einer durchschnittlichen realen Breite (ATR). Die Kanaloberfläche ist gleich dem N-fachen der ATR plus die Mittellinie; die Unterbahn ist gleich dem N-fachen der ATR minus die Mittellinie.

Die Strategie beurteilt außerdem die Chance auf einen Rückzug, wenn der Preis die Kanalgrenze erneut berührt oder durchbricht. Zum Beispiel, wenn der Preis nach einem Anstieg die Unterbahn durchbricht, ohne die Oberbahn zu berühren, wieder fällt und die Unterbahn berührt. Dies ist eine Gelegenheit, mehrere Rückzüge zu machen.

Analyse der Stärken

Es handelt sich um eine Strategie, bei der der Preis zurückgezogen wird.

  1. Die Keltner-Kanäle können die Richtung der Preisentwicklung bestimmen und so den Lärm wirksam filtern.
  2. Das Spiel wird von den Spielerinnen und Spielern des Spiels, die sich in der Gegend befinden, gezeigt.

Risikoanalyse

Die Hauptrisiken dieser Strategie sind:

  1. Wenn die Märkte langfristig einseitig sind, gibt es möglicherweise nur wenige Chancen, dass sie zurückgezogen werden können, und es ist nicht möglich, dass sie profitieren.
  2. Wenn die Rücktrittssignale nicht korrekt beurteilt werden, kann dies zu Verlusten führen.

Gegenmaßnahmen:

  1. Optimierung der Parameter, Anpassung der Kanalbreite an die Marktumgebung.
  2. Die Einführung von Positionsverwaltung und Verringerung von Einzelschäden.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Durchbruch-Filter basierend auf dem Transaktionsvolumen, um falsche Durchbrüche zu vermeiden.
  2. Positionsgröße an die Volatilität angepasst.
  3. Aktualisieren Sie Ihre Stop-Loss-Methode und verschieben Sie Ihre Stop-Loss, um mehr Gewinne zu erzielen.

Zusammenfassen

Die Strategie integriert die Methoden der Trendbeurteilung und der Rücknahme von Geschäften und hat einen einzigartigen Vorteil bei der Erfassung von Umkehrungen. Durch die Anpassung der Parameter und die Erweiterung der Funktionen können die Stabilität und die Profitabilität der Strategie weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Keltner bounce from border. No repaint. (by Zelibobla)", shorttitle="Keltner border bounce", overlay=true)

price = close

// build Keltner
keltnerLength = input(defval=200, minval=1, title="Keltner EMA Period Length")
keltnerATRLength = input(defval=200, minval=1, title="Keltner ATR Period Length (the same as EMA length in classic Keltner Channels)")
keltnerDeviation = input(defval=8, minval=1, maxval=15, title="Keltner band width (in ATRs)")
closeOnEMATouch = input(type=bool, defval=false, title="Close trade on EMA touch? (less drawdown, but less profit and higher commissions impact)")
enterOnBorderTouchFromInside = input(type=bool, defval=false, title="Enter on border touch from inside? (by default from outside, which is less risky but less profitable)")
SL = input(defval=50, minval=0, maxval=10000, title="Stop loss in ticks (leave zero to skip)")
EMA = sma(price, keltnerLength)
ATR = atr(keltnerATRLength)
top = EMA + ATR * keltnerDeviation
bottom = EMA - ATR * keltnerDeviation

buyEntry = crossover(price, bottom)
sellEntry = crossunder(price, top)
plot(EMA, color=aqua,title="EMA")
p1 = plot(top, color=silver,title="Keltner top")
p2 = plot(bottom, color=silver,title="Keltner bottom")
fill(p1, p2)

tradeSize = input(defval=1, minval=1, title="Trade size")

if ( enterOnBorderTouchFromInside and crossunder(price, bottom) )
    strategy.entry("BUY", strategy.long, qty=tradeSize, comment="BUY")
else
    if( crossover(price, bottom) )
        strategy.entry("BUY", strategy.long, qty=tradeSize, comment="BUY")

if( crossover(price,EMA) and closeOnEMATouch )
    strategy.close("BUY")

if( 0 != SL )
    strategy.exit("EXIT BUY", "BUY", qty=tradeSize, loss=SL)
    strategy.exit("EXIT SELL", "SELL", qty=tradeSize, loss=SL)
   
if( enterOnBorderTouchFromInside and crossover(price, bottom) )
    strategy.entry("SELL", strategy.long, qty=tradeSize, comment="SELL")
else
    if ( crossunder(price, top) )
        strategy.entry("SELL", strategy.short, qty=tradeSize, comment="SELL")
    
    
if( crossunder(price, EMA) and closeOnEMATouch )
    strategy.close("SELL")