Die Bollinger Band Breakout- und Volatilitätsfilterstrategie ist eine Handelsstrategie, die auf den Bollinger Band-Indikatoren basiert. Sie nutzt Bollinger, um die Lage und Volatilität der Preise im Verhältnis zum Moving Average zu beurteilen, um Positionen zu eröffnen und abzuschließen. Eine Besonderheit der Strategie besteht darin, dass sie einen Volatilitätsfilter verwendet, um den Einstieg in den Handel zu vermeiden, indem sie einen Anstieg oder Abstieg der K-Linien erfasst.
Der Kern der Strategie ist die Berechnung der Bollinger Bands. Die Bollinger Bands bestehen aus drei Linien: der Mittelstrahl ist ein einfacher Moving Average, der oberen und unteren Bahn werden auf der Grundlage des Mittelstrahls addiert und abgezogen. Die Größe des Standarddifferenz wird durch die Parametermult kontrolliert.
Die Strategie eröffnet eine Position basierend auf der Position des Schlusskurses in Bezug auf die Bollinger Bands. Wenn die Handelsrichtung als überschritten eingestellt ist (tradeDirection> = 0) und der Schlusskurs einen gewissen Prozentsatz unterhalb der Bahn (lower_breakout_pct), wird eine Überposition eröffnet. Wenn die Handelsrichtung als leer eingestellt ist (tradeDirection< = 0) und der Schlusskurs einen gewissen Prozentsatz über der Bahn (upper_breakout_pct) hat, wird eine leere Position eröffnet.
Auf der anderen Seite, wenn zwei aufeinanderfolgende K-Linien-Wachs- und Abwärtstrends die erwartete Volatilitäts-Trenche überschreiten (Volatility), wird davon ausgegangen, dass die aktuelle Marktfluktuation groß ist, und die Strategie wird keine neue Position eröffnen. Dieser Volatilitätsfilter vermeidet bis zu einem gewissen Grad ein stark volatiles Marktumfeld.
Wenn der Schlusskurs einer mehrköpfigen Position in der Nähe der oberen Bahn ((upper-area*long_win_pct), oder der Schlusskurs der leeren Position berührt die Unterbahn in der Nähe der*short_win_pct), wird die Strategie die entsprechende Position mit einem Gewinn ausgeglichen. Außerdem wird die Strategie die Position ausgeglichen, wenn der Flügeverlust der Position die vorgegebene maximale Auszahlungsquote ((max_drawdown_percent) überschreitet.
Die Bollinger Bands sind ein etablierter und weit verbreiteter technischer Indikator, der Informationen über Moving Averages und Preisschwankungen kombiniert. Die Bollinger Bands können zur Entwicklung von Handelsstrategien verwendet werden, um Änderungen in Trends und Schwankungen zu erfassen.
Die Strategie beinhaltet die Logik von Open-Over und Open-Off und ermöglicht die flexible Erfassung von Chancen in einem offenen, bidirektionalen Markt. Die Einstellung der Bollinger Band Breakout-Punkte macht die Eintrittspunkte der Strategie bestätigender.
Der Volatilitätsfilter verhindert die Eröffnung von Positionen in stark volatilen Märkten und reduziert die Risiken von häufigen Transaktionen und Leverage zu einem gewissen Grad.
Die Strategie verwendet Stop-Loss-Mechanismen, um die Position aktiv zu kontrollieren und die Position zu platzieren, wenn der Preis zu einem kritischen Punkt zurückkehrt. Dies ist geeignet, um die Gewinne zu schützen und den Rückzug zu kontrollieren.
Die Bollinger Bands sind im Wesentlichen ein Rückstandsindikator, der auf die Reaktion des Marktes zurückliegt. In den entscheidenden Momenten einer Trendwende oder Trendänderung kann die Strategie den besten Einstiegsmoment verpassen.
Die Parameter-Einstellungen der Strategie sind nicht immer für verschiedene Marktbedingungen geeignet. Zum Beispiel kann die Threshold-Einstellung des Volatilitätsfilters in trendigen und bewegten Verhältnissen unterschieden werden. Die festgelegten Parameter können dazu führen, dass die Strategie in bestimmten Verhältnissen keine Positionen eröffnet oder zu häufig eröffnet.
Trotz der Stop-Loss-Maßnahmen kann es sein, dass die Strategie nicht den vorgegebenen Preis erzielt, wenn sich eine Marktlücke ergeben hat, was zu größeren Verlusten führt.
Die Strategie setzt keine beweglichen Stopps oder Tracking-Stopps nach dem Börsengang ein, was zu einer teilweisen Gewinnwiedergabe führen kann.
Es kann in Betracht gezogen werden, mehr technische Indikatoren oder Marktsituationsbeurteilungen einzuführen, wie z. B. ATR, Trendindikatoren, Volatilitätsindikatoren usw. Als Filterbedingungen für die Strategie, um die Qualität und den Zeitpunkt der Eröffnung der Position zu verbessern.
Für die Fluktuationsrate Filter, können Sie versuchen, die Verwendung von dynamischen Werte, die nach verschiedenen Sorten oder verschiedenen Zeitspannen angepasst werden, um die Filterwirkung zu verbessern.
In Bezug auf die Stop-Loss-Stop-Methode kann ein Mechanismus für die Einführung von beweglichen Stop-Loss- oder Tracking-Stops eingeführt werden, damit die Strategie die Positionen bei Fortführung des Trends hält, anstatt zu früh zu platzieren. Es kann auch in Betracht gezogen werden, eine andere Stop-Loss-Ratio einzurichten, um die Risiko-Gewinn-Ratio zu optimieren.
Positionsverwaltung kann weiter optimiert werden, indem die Positionsöffnungsquote und die Rücknahme entsprechend der Dynamik von Indikatoren wie Trendstärke, Volatilität und Risikograd angepasst und kontrolliert werden. Darüber hinaus können die Mittel durch Aktivierung und Verringerung der Positionen besser genutzt werden.
Die Bollinger Band Breakout und Volatilitätsfilter Strategie nutzt die Bollinger Band-Karte der Preisposition und der Volatilität, um eine zwei-Wege-Handelsstrategie zu erstellen. Die Besonderheit dieser Strategie besteht darin, dass der Volatilitätsfilter den Handel in stark schwankenden Märkten vermeidet und gleichzeitig einfache Stop-Loss-Bedingungen setzt.
/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("[Oppen Chow] Super BBS 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value =100, initial_capital=500, commission_type=strategy.commission.percent, commission_value=0.08, pyramiding=2 )
// Input parameters
length = 20
mult = 2
max_drawdown_percent = input(5.5, "Maximum Acceptable Drawdown") / 100
upper_breakout_pct = input(50, "Short Entry Breakout Percentage") / 100
lower_breakout_pct = input(25, "Long Entry Breakout Percentage") / 100
tradeDirection = input(1, title="Trade Direction")
Volatility = input(0.5, title="Volatility") / 100
long_win_pct = input(-0.15, title = "Long Settlement Rate Near Boll Upper Limit")
short_win_pct = input(0.4, title = "Short Settlement Rate Near Boll Lower Limit")
// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
area = upper - lower
// Calculate the rate of change for two consecutive candlesticks
var float change1 = na
var float change2 = na
change1 := change2
change2 := ((close - open) / open)
// Check for two or more consecutive candlesticks with a change rate greater than 0.5%
var bool highVolatility = false
highVolatility := change2 > Volatility
// Trading logic
var float highestPriceSinceOpen = na
var float lowestPriceSinceOpen = na
var int profitableDrawbackCount = 1
// Entry logic - In the absence of high volatility
if not highVolatility and strategy.position_size == 0
if (tradeDirection >= 0) and (close < lower - area * lower_breakout_pct)
strategy.entry("Long", strategy.long)
highestPriceSinceOpen := close
profitableDrawbackCount := 0
if (tradeDirection <= 0) and (close > upper + area * upper_breakout_pct)
strategy.entry("Short", strategy.short)
lowestPriceSinceOpen := close
profitableDrawbackCount := 0
if strategy.position_size > 0 and close > upper - area * long_win_pct
strategy.close("Long", comment = "Take Profit")
if strategy.position_size < 0 and close < lower + area * short_win_pct
strategy.close("Short", comment = "Take Profit")
// Stop loss logic - Based on drawdown percentage
if strategy.position_size > 0
if (strategy.position_avg_price - close)/strategy.position_avg_price >= max_drawdown_percent
strategy.close("Long", comment = "Drawdown Stop Loss")
else if strategy.position_size < 0
if (close - strategy.position_avg_price)/strategy.position_avg_price >= max_drawdown_percent
strategy.close("Short", comment = "Drawdown Stop Loss")