
Die Strategie nutzt die Brin-Band-Indikatoren, um zu bestimmen, ob der Preis in der Integrationsphase ist, und nutzt die Durchbruch-Beschlüsse für Ein- und Ausgänge. Insgesamt profitiert die Strategie hauptsächlich von den heftigen Ereignissen, die durch die Preiskonsolidierung entstehen.
Die Strategie berechnet zunächst den einfachen Moving Average des 20-Tage-Kontaktpreises als Mittelstraße des Brin-Bands und berechnet das 2-fache der Standardabweichung als Bandbreite des Brin-Bands. Wenn der Preis über der oberen Straße liegt, wird er als Aufbruch beurteilt, und wenn der Preis unter der unteren Straße liegt, wird er als Unterbruch beurteilt.
Wenn der Preis in der Mitte des Brin-Bandes liegt, wird er als Integrationsphase beurteilt. Wenn ein Durchbruchsignal erkannt wird, wird ein Mehrkopf-Eintritt durchgeführt.
Der Stop-Loss ist auf das Doppelte des ATR-Wertes festgelegt.
Die Strategie basiert auf den Integrations- und Durchbruchseigenschaften des Brin-Bands mit folgenden Vorteilen:
Die Strategie birgt auch einige Risiken:
Gegenmaßnahmen:
Die Strategie kann in folgenden Richtungen optimiert werden:
Die Strategie ist im Allgemeinen einfacher und direkter, und durch die Erfassung der Energie, die durch die Preisintegration gebracht wird, werden größere Gewinne erzielt. Der Optimierungsraum ist größer, und es können Anpassungen in Bezug auf die Einstiegsregeln, die Stop-Loss-Methode usw. vorgenommen werden, um stabilere Gewinne zu erzielen, wenn das Risiko kontrolliert wird.
/*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"}]
*/
//@version=5
strategy("Consolidation Breakout Strategy", shorttitle="CBS", overlay=true)
// Parameters
length = input(20, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
risk = input.float(1, title="Risk per Trade (%)") / 100
// Calculate Bollinger Bands
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
// Entry Conditions
consolidating = ta.crossover(close, upper) and ta.crossunder(close, lower)
// Exit Conditions
breakout = ta.crossover(close, upper) or ta.crossunder(close, lower)
// Risk Management
atrVal = ta.atr(14)
stopLoss = atrVal * input.float(2, title="Stop Loss Multiplier", minval=0.1, maxval=5)
// Entry and Exit Conditions
longEntry = breakout and close > upper
shortEntry = breakout and close < lower
if (longEntry)
strategy.entry("Long", strategy.long)
if (shortEntry)
strategy.entry("Short", strategy.short)
if (longEntry and close < basis - stopLoss)
strategy.close("Long Exit")
if (shortEntry and close > basis + stopLoss)
strategy.close("Short Exit")
// Plot Entry and Exit Points
plotshape(consolidating, style=shape.triangleup, location=location.belowbar, color=color.rgb(30, 255, 0), title="Entry Signal")
plotshape(breakout, style=shape.triangledown, location=location.abovebar, color=color.rgb(255, 0, 0), title="Exit Signal")