Diese Strategie entwirft eine Pullback-Handelsstrategie, die auf dem Keltner-Kanal-Indikator basiert. Sie beurteilt den Zeitpunkt potenzieller Preisumkehrungen, indem sie den Preis mit den oberen und unteren Schienen des Keltner-Kanals vergleicht und geeignete Long- und Short-Positionen annimmt.
Diese Strategie verwendet den Keltner Channel-Indikator, um Preistrends zu beurteilen. Der Keltner Channel besteht aus einem gleitenden Durchschnitt und einem durchschnittlichen wahren Bereich (ATR). Der obere Schiene entspricht dem gleitenden Durchschnitt plus N mal ATR; der untere Schiene entspricht dem gleitenden Durchschnitt minus N mal ATR. Wenn der Preis durch die untere Schiene des Kanals von unten nach oben bricht, wird davon ausgegangen, dass die bullische Kraft erhöht wird und Long-Positionen aufgenommen werden können; wenn der Preis durch die obere Schiene von oben nach unten bricht, wird davon ausgegangen, dass die bärische Kraft erhöht wird und Short-Positionen aufgenommen werden können.
Darüber hinaus ist die Grundlage für die Strategie, um Pullback-Möglichkeiten zu beurteilen, dass der Preis die Kanalgrenze wieder berührt oder durchbricht. Zum Beispiel, nachdem der Preis steigt, um die untere Schiene zu durchbrechen, wenn er wieder fällt, um die untere Schiene zu berühren, ohne die obere Schiene zu berühren, ist es eine Gelegenheit, einen langen Pullback zu nehmen. Die Strategie wird zu diesem Zeitpunkt lange Positionen eröffnen.
Es handelt sich um eine Handelsstrategie, die die Pullback-Eigenschaften der Preise nutzt.
Die wichtigsten Risiken dieser Strategie sind:
Gegenmaßnahmen:
Die Strategie kann in folgenden Aspekten optimiert werden:
Diese Strategie integriert Trendbeurteilung und Pullback-Handelsmethoden und hat einzigartige Vorteile bei der Erfassung von Umkehrtrends.
/*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")