Strategie für einen Doppelkanal-Ausbruch

Schriftsteller:ChaoZhang, Datum: 2024-02-01 14:43:07
Tags:

img

Die Strategie ist nach der Verwendung von zwei Indikatoren, Bollinger Bands und Keltner Channels, benannt, um Handelssignale zu generieren.

Strategie Logik

Die Strategie kombiniert Bollinger-Bänder und Keltner-Kanäle. Bollinger-Bänder sind adaptive Kanäle, die an einer gleitenden Durchschnittslinie plus/minus Standardabweichungen gezeichnet werden. Keltner-Kanäle verwenden den wahren Bereich, um die Kanalbreite zu berechnen.

Die Handelslogik besteht darin, lang zu gehen, wenn der Schlusskurs unterhalb der unteren Bollinger Band und des unteren Keltner Channel fällt, um eine Umkehrung zu erwarten.

Stärken

Durch die Kombination von zwei Kanälen identifiziert die Strategie abnormale Kursschwankungen effektiv. Die Dual-Channel-Filter helfen, falsche Signale zu vermeiden. Die Stops und Take-Profits helfen auch bei der Risikokontrolle.

Im Vergleich zur Verwendung von Bollinger-Bändern oder Keltner-Kanälen filtert diese Strategie mehr Geräusche für qualitativ hochwertigere Signale aus.

Risikoanalyse

Ein wichtiges Risiko ist die Verzögerung der Kanalindikatoren. Die Preise könnten anfangen, sich umzukehren, bevor sie die Kanalgrenzen erreichen, die Signale auslösen. Dies kann zu verspäteten Einträgen führen oder in Pullbacks gefangen werden.

Zu enge Stopps und zu breite Gewinnnahmen sind weitere Risiken, die je nach Marktbedingungen angepasst werden müssen.

Möglichkeiten zur Verbesserung

Die Strategie kann durch das Hinzufügen von Hilfsfiltern wie Impuls-Oszillatoren optimiert werden.

Die Einbeziehung von adaptive Stops und Take-Profits ist ein weiterer Weg zur Verbesserung, der die Strategie besser an sich entwickelnde Märkte anpasst.

Schlussfolgerung

Diese Dual-Channel-Breakout-Strategie kombiniert die Stärken von Bollinger-Bändern und Keltner-Kanälen, um Umkehrmöglichkeiten effektiv zu identifizieren und gleichzeitig Risiken über Dual-Channel-Filter und Stop/Take-Profit-Einstellungen zu kontrollieren.


/*backtest
start: 2023-01-31 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Estratégia de Compra/Venda BB e KC", overlay=true)

// Parâmetros das Bandas de Bollinger
bollinger_length = input(20, title="Comprimento das Bandas de Bollinger", minval=1)
bollinger_deviation = input(2.0, title="Desvio Padrão das Bandas de Bollinger", minval=0.1)

// Parâmetros dos Canais de Keltner
keltner_length = input(20, title="Comprimento dos Canais de Keltner", minval=1)
atr_multiplier = input(1.5, title="Multiplicador ATR dos Canais de Keltner", minval=0.1)

// Take Profit e Stop Loss em termos financeiros
take_profit = input(10.0, title="Take Profit (em $)", step=1)
stop_loss = input(20.0, title="Stop Loss (em $)", step=1)

// Cálculos das Bandas de Bollinger
basis_bb = sma(close, bollinger_length)
dev_bb = sma(stdev(close, bollinger_length), bollinger_length)
upper_bb = basis_bb + dev_bb * bollinger_deviation
lower_bb = basis_bb - dev_bb * bollinger_deviation

// Cálculos dos Canais de Keltner
basis_kc = sma(close, keltner_length)
atr_kc = sma(atr(keltner_length), keltner_length)
upper_kc = basis_kc + atr_multiplier * atr_kc
lower_kc = basis_kc - atr_multiplier * atr_kc

// Condição de Compra
buy_condition = close < lower_bb and close < lower_kc

// Condição de Venda
sell_condition = close > upper_bb and close > upper_kc

// Estratégia de Compra/Venda com TP e SL
if (buy_condition)
    strategy.entry("Compra", strategy.long)
    strategy.exit("Take Profit/Stop Loss", from_entry="Compra", profit=take_profit, loss=stop_loss)
if (sell_condition)
    strategy.entry("Venda", strategy.short)
    strategy.exit("Take Profit/Stop Loss", from_entry="Venda", profit=take_profit, loss=stop_loss)

// Plot das Bandas de Bollinger e dos Canais de Keltner
plot(upper_bb, color=color.rgb(47, 33, 243), title="Banda Superior de Bollinger")
plot(lower_bb, color=color.rgb(89, 33, 243), title="Banda Inferior de Bollinger")
plot(upper_kc, color=color.rgb(200, 255, 0), title="Canal Superior de Keltner")
plot(lower_kc, color=color.rgb(225, 255, 0), title="Canal Inferior de Keltner")


Mehr