BB Keltner Squeeze-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-25 17:38:08
Tags:

Übersicht

Die BB Keltner Squeeze-Handelsstrategie identifiziert Trendumkehrungen, indem sie nach Komprimierungen zwischen Bollinger Bands und Keltner Channels sucht. Es ist eine kurzfristige Handelsstrategie.

Strategieprinzipien

Die Grundprinzipien dieser Strategie sind:

  1. Bollinger Bands messen die Preisvolatilität. Sie hat obere, mittlere und untere Bands, um zu erkennen, ob der Preis in einem volatilen Zustand ist.

  2. Keltner-Kanäle validieren Bollinger-Signale. Keltner-Kanäle messen auch die Preisvolatilität. Wenn der Preis sich den Bollinger-Bändern nähert, bedeutet ein Quetschen mit Keltner erhöhte Volatilität und mögliche Umkehrungen.

  3. Handelssignale werden basierend auf Komprimierungen erzeugt. Durchbrüche über dem oberen Bollinger-Band mit Keltner-Verengung unterhalb des Signallangs. Durchbrüche unterhalb des unteren Bollinger-Bands mit Keltner-Verengung über dem Signalshorts.

  4. Das mittlere Band zeigt die Trendrichtung. Die Preise über dem mittleren Band signalisieren einen Aufwärtstrend und unterhalb einen Abwärtstrend.

  5. Ein- und Ausgänge basieren auf der mittleren Bandrichtung.

Die Strategie ergänzt Bollinger-Bänder mit Keltner-Kanälen, um Umkehrpunkte zu identifizieren.

Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Die Kombination zweier Indikatoren verbessert die Signalzuverlässigkeit und verhindert Fehlbrüche von einem einzigen Indikator.

  2. Klarer Trend-Identifizierung mit mittlerem Band. Intuitiv verfolgt Echtzeit-Trend.

  3. Flexible Ein- und Ausstiegslogik, basierend auf der Übereinstimmung des mittleren Bandes, vermeidet den Handel gegen Trends.

  4. Passt zum kurzfristigen Handel, erfasst kurzfristige Ausbrüche und Komprimierungen für schnelle Gewinne.

  5. Intuitive Grafiken zeigen Komprimierungen, mittlere Band, MACD-Histogramm usw. Saubere grafische Darstellung.

  6. Einfache Logik und konfigurierbare Parameter machen die Einführung mühelos.

Risiken

Die wichtigsten zu berücksichtigenden Risiken sind:

  1. Die Verringerung der Verkäufe kann bei starken Trends zu einer Reihe von Verlustgeschäften führen.

  2. Erste Bollinger-Breakouts können kurzlebige Fälschungen sein.

  3. Das Risiko einer Optimierung der Parameter, eine unsachgemäße Abstimmung von Bands und Kanälen kann die Leistung beeinträchtigen, erfordert strenge Tests.

  4. Übermäßige Shorting bei längeren Aufwärtstrends.

  5. Kurzfristige Handelsrisiken können die Kosten durch Gebühren und Verschiebungen erhöhen.

  6. Risiko eines Ausfalls des Anzeigers: Die Signale können unter extremen Bedingungen ausfallen.

Risiken müssen aktiv verwaltet werden, indem Stop-Losses, Positionsgrößen, Parameter-Tuning und eine solide Notfallplanung durchgeführt werden.

Möglichkeiten zur Verbesserung

Einige Möglichkeiten zur Verbesserung der Strategie sind:

  1. Ergänzende Indikatoren werden eingesetzt, um die Signale zu verstärken und die Gewinnrate zu verbessern.

  2. Hinzufügen von Stop-Loss-Mechanismen wie Trailing-Stops oder ATR-Stops, um Verluste zu begrenzen.

  3. Optimierung der Parameter für Bands und Kanäle durch strenge Tests.

  4. Anpassung der Positionsgrößen anhand der Marktbedingungen und der Trendstärke.

  5. Anwendung von maschinellem Lernen für die Optimierung von Parametern, Signalverbesserung und Anpassung.

  6. Unterscheidung zwischen Bullen- und Bärenregimen. Verringerung von Gegentrend-Trades bei starker Richtungsverzerrung.

  7. Ergänzen Sie mit Lautstärken und Impulsindikatoren, um die Signalvielfalt zu erhöhen.

Durch kontinuierliche Verbesserungen kann die Strategie zu einem robusten und konsistenten kurzfristigen Handelssystem auf verschiedenen Märkten werden.

Schlussfolgerung

Die BB Keltner Squeeze-Strategie nutzt Preisumkehrungen durch Komprimierungen zwischen Bollinger Bands und Keltner Channels. Sie kombiniert zwei Indikatoren für hochwahrscheinliche Signale, nutzt das mittlere Band, um die Trendrichtung zu messen, und identifiziert bevorstehende Umkehrungen durch Squeezes. Die Strategie eignet sich für kurzfristige Trader, die häufige Chancen suchen.


/*backtest
start: 2023-09-17 00:00:00
end: 2023-09-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BB Keltner Squeeze Strategy", overlay=true, initial_capital=10000, currency='USD')
length = input(title="Length", type=input.integer, defval=20, minval=0)
src = input(close, title="Source")
bband(length, mult) =>
    sma(close, length) + mult * stdev(close, length)
keltner(length, mult) =>
    ema(close, length) + mult * ema(tr, length)


//BB
B2mult = input(2.0, minval=0.001, maxval=50, title="Band 1 StDev")
B2basis = sma(src, length)
B2dev = B2mult * stdev(src, length)
B2upper = B2basis + B2dev
B2lower = B2basis - B2dev
plot(B2basis, color=color.blue)
p1 = plot(B2upper, color=#00ffff, linewidth=2, title="Band 2SD upper")
p2 = plot(B2lower, color=#00ffff, linewidth=2, title="Band 2SD lower")

//Keltner
useTrueRange = input(true)
Kmult = input(1.5, title="Keltner Range")
Kma = ema(src, length)
Krange = useTrueRange ? tr : high - low
Krangema = ema(Krange, length)
Kupper = Kma + Krangema * Kmult
Klower = Kma - Krangema * Kmult
p5 = plot(Kupper, color=color.yellow, linewidth=2, style=plot.style_circles, title="Keltner upper")
p6 = plot(Klower, color=color.yellow, linewidth=2, style=plot.style_circles, title="Keltner lower")


e1 = (highest(high, length) + lowest(low, length)) / 2 + sma(close, length)
osc = linreg(close - e1 / 2, length, 0)
diff = bband(length, 2) - keltner(length, 1)
osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : 
   osc[0] >= 0 ? #009b9b : #ff9bff
mid_color = diff >= 0 ? color.green : color.red
fromYear = year > 2014
toYear = year < 2016


direction = 0
squeeze = Kupper > B2upper
midc = 0
midc := squeeze ? 0 : close > B2basis ? 1 : 2
midcolor = midc == 0 ? #666666 : midc == 1 ? #00ff00 : #ff0000
direction := midc[1]

plot(B2basis, color=midcolor, linewidth=4, title="BB Mid")
bgcolor(midc == 0 ? #333333 : #000000, transp=75)

if direction == 0
    if midc[1] == 0 and midc == 1
        strategy.entry("LONG", strategy.long)
        direction := 1
    else if midc[1] == 0 and midc == 2
        strategy.entry("SHORT", strategy.short)
        direction := 2
else if direction != midc
    strategy.close_all()
    direction := 0








Mehr