
A estratégia usa o indicador de Brin para determinar se o preço está em um período de integração, e usa breakout para determinar entradas e saídas. No geral, a estratégia utiliza principalmente o cenário agitado da integração de preços para lucrar.
A estratégia primeiro calcula uma média móvel simples de preços de fechamento de 20 dias como o meio da faixa de Bryn e calcula 2 vezes a diferença padrão como a largura da faixa de Bryn. Quando o preço é acima da faixa de cima, é julgado como um uptrend, e quando o preço é abaixo da faixa de baixo, é julgado como um downtrend.
Quando o preço está acima da trajetória do cinturão de Bryn, é considerado um período de integração. Quando um sinal de ruptura é detectado, é feito um ingresso mais longo. Quando o preço é novamente abaixo da trajetória, é feito um equilíbrio.
O Stop Loss é definido como o dobro do ATR.
A estratégia baseia-se principalmente nas propriedades de integração e ruptura da faixa de brinquedos, com as seguintes vantagens:
A estratégia também apresenta alguns riscos:
Resposta:
A estratégia pode ser otimizada em várias direções:
A estratégia geral é mais simples e direta, alcançando maiores lucros por meio da captura de energia agregada trazida pela integração de preços. Há maior espaço para otimização, pode ser ajustada em termos de regras de entrada, modo de parada de perdas, etc., para obter um lucro mais estável sob a premissa de controlar o risco.
/*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")