Bollinger Bands Breakout-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-02-21 11:35:14
Tags:

img

Übersicht

Diese Strategie basiert auf dem Bollinger Bands-Indikator. Sie geht lang, wenn der Preis durch das obere Band bricht, und kurz, wenn der Preis durch das untere Band bricht. Sie gehört zur Trendfolgestrategie.

Strategie Logik

  1. Berechnung des mittleren Bands, des oberen Bands und des unteren Bands der Bollinger-Bänder
  2. Wenn der Schlusskurs durch das obere Band bricht, gehen Sie lang
  3. Wenn der Schlusskurs durch das untere Band bricht, gehen Sie kurz
  4. Ausgangsregel: Schließen einer Long-Position, wenn der Preis durch das mittlere Band bricht, Schließen einer Short-Position, wenn der Preis durch das mittlere Band bricht

Diese Strategie verwendet Bollinger Bands, um den Schwankungsbereich und die Trendrichtung des Marktes zu bestimmen. Wenn der Preis durch die oberen oder unteren Bande der Bollinger Bands bricht, wird dies als Trendumkehrsignal für den Einstieg angesehen. Der Bereich um das mittlere Band wird als Stop-Loss-Position verwendet. Ausstiegspositionen, wenn der Preis durch das mittlere Band bricht.

Analyse der Vorteile

  1. Verwenden Sie den Indikator Bollinger Bands zur Bestimmung von Markttrend und Unterstützungs-/Widerstandsniveaus
  2. Hohe Wahrscheinlichkeit bei Ausbruch von Bollinger Bands
  3. Klare Ein- und Ausstiegsregeln

Risikoanalyse

  1. Risiko falscher Breakout-Signale von Bollinger Bands, die kurzfristige Kursschwankungen darstellen könnten
  2. Größerer Stop-Loss bei hohen Kursschwankungen

Lösungen:

  1. Kombination mit anderen Indikatoren zur Bestätigung des Trends
  2. Anpassung der Parameter zur Erweiterung des Bollinger Bands-Bereichs

Optimierungsrichtlinien

  1. Kombination mit Trendindikatoren, um unnötigen Umkehrhandel zu vermeiden
  2. Dynamische Anpassung der Bollinger Bands-Parameter zur Optimierung der Parametergröße

Zusammenfassung

Diese Strategie verwendet den Bollinger Bands-Indikator, um den Preistrend und die Unterstützungs-/Widerstandsniveaus zu bestimmen. Es tritt an den Bollinger Bands-Breakout-Punkten ein und setzt den Stop-Loss am mittleren Band. Die Strategielogik ist einfach und klar, einfach umzusetzen. Sie kann durch Anpassung von Parametern oder Kombination mit anderen Indikatoren optimiert werden und funktioniert gut in Trending-Märkten.


/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("FFFDBTC", overlay=true,initial_capital = 100,commission_type =strategy.commission.percent,commission_value= 0.15,default_qty_value = 100,default_qty_type = strategy.percent_of_equity)
// === INPUT BACKTEST RANGE ===
FromMonth = input.int(defval=1, title="From Month", minval=1, maxval=12)
FromDay = input.int(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input.int(defval=1972, title="From Year", minval=1972)
ToMonth = input.int(defval=1, title="To Month", minval=1, maxval=12)
ToDay = input.int(defval=1, title="To Day", minval=1, maxval=31)
ToYear = input.int(defval=9999, title="To Year", minval=2010)

// === FUNCTION EXAMPLE === 
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() => true
// Definindo tamanho da posição
position_size = strategy.equity
// Definir parâmetros das Bandas de Bollinger
length = input.int(51, "Comprimento")
mult = input.float(1.1, "Multiplicador")

// Calcular as Bandas de Bollinger
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
// Definir condições de entrada e saída
entrada_na_venda = low < lower
saida_da_venda = high > lower and strategy.position_size < 0
entrada_na_compra = high > upper
saida_da_compra = low < upper and strategy.position_size > 0
shortCondition = close[1] < lower[1] and close > lower and close < basis
longCondition = close[1] > upper[1] and close < upper and close > basis

// Entrar na posição longa se a condição longCondition for verdadeira
if ((entrada_na_compra) and window() )
    strategy.entry("Buy", strategy.long)
//saida da compra
if (saida_da_compra)
    strategy.close("Buy")
//entrada na venda
if ((entrada_na_venda) and window() )
    strategy.entry("Sell", strategy.short)
//saida da venda
if (saida_da_venda)
    strategy.close("Sell")
if ((longCondition) and window())
    strategy.entry("Long", strategy.long)

// Entrar na posição curta se a condição shortCondition for verdadeira
if ((shortCondition) and window())
    strategy.entry("Short", strategy.short)

// Definir a saída da posição

strategy.exit("Exit_Long", "Long", stop=ta.sma(close, length), when = close >= basis)
strategy.exit("Exit_Short", "Short", stop=ta.sma(close, length), when = close <= basis)

// Desenhar as Bandas de Bollinger no gráfico
plot(basis, "Média", color=#2962FF, linewidth=2)
plot(upper, "Upper", color=#BEBEBE, linewidth=2)
plot(lower, "Lower", color=#BEBEBE, linewidth=2)

Mehr