Dynamische Bollinger-Breakout-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-26 14:52:59
Tags:

img

Übersicht

Diese Strategie ist eine Breakout-Handelsstrategie, die auf dem Bollinger Bands-Indikator basiert. Sie berechnet die oberen und unteren Schienen der Bollinger Bands und kombiniert sie mit dynamisch einstellbaren Kauf- und Verkaufsschwellen, um den Handel mit BTCUSDT auf Binance zu automatisieren.

Strategie Logik

Der Kernindikator dieser Strategie sind Bollinger Bands. Bollinger Bands bestehen aus einem N-Tage gleitenden Durchschnitt und oberen und unteren Bands, die an einem Standardabweichungsniveau darüber und darunter dargestellt sind. Die Bollinger Bands in dieser Strategie haben eine Länge von 20 Tagen und einen Standardabweichungsmultiplikator von 2. Wenn der Preis die untere Schiene der Bollinger Bands annähert oder berührt, gilt er als überverkauft und die Strategie wird eine Long-Position eröffnen. Wenn der Preis die obere Schiene annähert oder berührt, gilt er als überkauft und die Strategie wird Long-Positionen schließen.

Neben dem Bollinger Bands-Indikator führt diese Strategie auch zwei anpassbare Parameter ein: Kaufschwelle und Verkaufschwelle. Die Kaufschwelle liegt standardmäßig 58 Punkte unter dem unteren Band und dient als Einstiegsbedingung für die Eröffnung von Long-Positionen. Die Verkaufschwelle liegt standardmäßig 470 Punkte über dem unteren Band und dient als Ausstiegsbedingung für die Schließung von Positionen. Diese Schwellen können dynamisch anhand der tatsächlichen Marktbedingungen und der Rücktestergebnisse angepasst werden, um die Strategie flexibler zu gestalten.

Wenn die Kaufbedingung erfüllt ist, eröffnet die Strategie eine Long-Position mit 10% des Kontokapitals. Wenn nach dem Öffnen der Long-Position der Preis steigt, um die Stop-Loss-Level (-125%) zu erreichen, werden die Positionen durch Stop-Loss-Orders geschlossen. Wenn der Preis steigt, um die Verkaufsschwelle auszulösen, wird die Strategie alle Positionen schließen, um Gewinne zu erzielen.

Analyse der Vorteile

Zu den Hauptvorteilen dieser Strategie gehören:

  1. Die Verwendung von Bollinger Bands kann Chancen nutzen, wenn die Preise abnormal von den Bands abweichen und von Umkehrungen profitieren
  2. Durch die Einführung verstellbarer Kauf- und Verkaufsschwellen werden Ein- und Ausstiegspunkte optimiert
  3. Die Einnahme von Teilpositionsgrößen kontrolliert das Risiko
  4. Die Einstellung der Stop-Loss-Bedingung verhindert weitere Verluste
  5. Backtesting mit 5-minütigen Intervallen kann kurzfristige Handelschancen rechtzeitig erfassen

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Bollinger Bands selbst ist nicht zu 100% zuverlässig, die Preise können für eine lange Zeit niedriger schwanken, bevor sie wieder fallen.
  2. Fehlende Schwellenwerte können dazu führen, dass die besten Ein- oder Ausstiegspunkte fehlen
  3. Eine zu lockere Einstellung des Stoppverlusts kann dazu führen, dass der Verlust nicht rechtzeitig gestoppt wird oder dass der Stoppverlust zu empfindlich wird.
  4. Eine falsche Auswahl der Backtest-Periode kann gelegentliche Gewinne als stabiles Einkommen ausmachen

Gegenmaßnahmen:

  1. Kombinieren Sie mehr Indikatoren, um Marktbedingungen zu beurteilen und vermeiden Sie falsche Signale von Bollinger Bands
  2. Testen und Optimieren von Schwellenparametern, um eine optimale Kombination zu finden
  3. Test und Optimierung von Stop-Loss-Bedingungen zur Ermittlung eines Gleichgewichts
  4. Ein längeres Backtest-Zeitraum zur Prüfung der Stabilität der Strategie

Optimierungsrichtlinien

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Versuchen Sie, andere Indikatoren wie KD, RSI zu kombinieren, um strengere Einstiegsregeln festzulegen, vermeiden Sie zu früh oder zu spät einzutreten
  2. Verschiedene Kombinationen von Bollinger-Band-Parametern zur Optimierung der Bandlänge und des Standardabweichungsmultiplikators testen
  3. Optimierung der Kauf- und Verkaufsschwellen zur Verbesserung der Gewinnrate
  4. Versuchen Sie, eine dynamische ATR-basierte Stop-Loss-Ratio zu verwenden, um der Marktvolatilität gerecht zu werden.
  5. Optimierung der Positionsgröße, z. B. angemessene Pyramidenordnung von Positionen im Gewinn, um das Risiko eines einzigen Verlusts zu kontrollieren

Zusammenfassung

Zusammenfassend ist dies eine allgemein einfache und praktische Breakout-Strategie. Sie verwendet Bollinger-Bänder, um Umkehrmöglichkeiten zu identifizieren und dynamische Schwellenwerte für Ein- und Ausstieg festzulegen. In der Zwischenzeit werden angemessene Positionsgrößen und Stop-Loss-Bedingungen verwendet, um Risiken zu kontrollieren. Nach Optimierung mehrerer Schlüsselparameter kann diese Strategie relativ stabile Renditen erzielen. Sie eignet sich für den algorithmischen Handel und kann auch als Hilfsmittel für die Auswahl von Aktien oder die Messung der Marktstimmung dienen. Im Allgemeinen hat diese Strategie eine starke Praktikabilität und Erweiterbarkeit.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SuperDS_BTC

//@version=5
strategy("布林通道策略多5min", overlay=true) 

// 布林通道计算
length = input(20, title="布林通道周期")
mult = input(2.0, title="标准差倍数")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

// 计算买入数量:每次检查仓位的大小 
// 每次买入使用总资金的10%
position_size = strategy.equity * 10 / close 

// 定義可調整的閾值
buy_threshold = input(58, title="買入閾值")
exit_threshold = input(470, title="賣出閾值")

// 买入条件:当现价低于布林通道的下限减去 buy_threshold
buy_condition = close < lower - buy_threshold

// 卖出条件和结清仓位条件
exit_condition = close > lower + exit_threshold

// 买入逻辑
if buy_condition
    strategy.entry("BuyLong", strategy.long, qty=position_size, comment="LongBTC")

// 卖出逻辑
if exit_condition
    strategy.close("BuyLong")

// 止损逻辑
stop_loss_percent = -1.25 //止损百分比为-125%
if strategy.position_size > 0
    position_profit_percent = (strategy.position_avg_price - close) / strategy.position_avg_price * 100
    if position_profit_percent <= stop_loss_percent
        strategy.close("BuyLong")

Mehr