
Cette stratégie utilise les indices de la ceinture de Brin pour déterminer si le prix est en phase d’intégration et utilise des jugements de rupture pour les entrées et les sorties. Dans l’ensemble, la stratégie exploite principalement les tendances violentes de l’intégration des prix pour tirer profit.
La stratégie commence par calculer une moyenne mobile simple des prix de clôture sur 20 jours comme moyenne de la bande de Brin et par calculer 2 fois l’écart-type comme largeur de la bande de Brin. Elle est jugée comme une hausse de la bande de Brin lorsque le prix est supérieur à la bande de Brin et une baisse de la bande de Brin lorsque le prix est inférieur à la bande de Brin.
Lorsque le prix est en train de descendre au-dessus de la courbe de Brin, il est considéré comme une période d’intégration. Lorsque le signal de rupture est détecté, il fait une entrée en bourse.
Le stop-loss est fixé à 2 fois l’indicateur ATR.
La stratégie repose principalement sur les propriétés d’intégration et de rupture de la ceinture de Brin, avec les avantages suivants:
Cette stratégie comporte aussi des risques:
La réponse:
Cette stratégie peut être optimisée dans les directions suivantes:
La stratégie est globalement simple et directe, et permet de réaliser des gains plus importants en captant l’agrégation d’énergie apportée par l’intégration des prix. Il y a plus d’espace d’optimisation, des ajustements peuvent être apportés en termes de règles d’entrée, de méthodes de stop-loss, etc., et des gains plus stables peuvent être obtenus en contrôlant les risques.
/*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")