
A estratégia é um sistema de negociação de ruptura que combina bandas de Bollinger, indicadores relativamente fortes (RSI) e linhas de K suaves (Heikin Ashi). Usando a combinação de vários indicadores técnicos, filtra o ruído do mercado de forma eficaz e captura oportunidades de negociação de ruptura de alta probabilidade. A estratégia usa o seguimento de tendências e o conceito de negociação de dinâmica, entrando em campo após a confirmação de ruptura, revertendo a linha de K suave e superando o RSI como sinal de saída.
A lógica central da estratégia baseia-se na sinergia de três indicadores técnicos:
As condições de entrada devem ser cumpridas ao mesmo tempo:
A opção de sair é uma das seguintes:
Sugestões de controle de risco:
A estratégia, através da combinação de aplicações de bandas de Brin, RSI e linhas de K suave, constrói um sistema de negociação de acompanhamento de tendências relativamente completo. A lógica da estratégia é clara, os padrões de execução são claros e têm uma boa praticidade. A estabilidade e a confiabilidade da estratégia são esperadas para melhorar ainda mais, através da otimização dos parâmetros de configuração e do aumento dos indicadores auxiliares.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 6h
basePeriod: 6h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Bollinger Bands + RSI + Heikin Ashi Breakout", overlay=true)
// Input Settings
bbLength = input.int(20, title="Bollinger Bands Length")
bbMultiplier = input.float(2, title="Bollinger Bands Multiplier")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.float(70, title="RSI Overbought Level")
// Bollinger Bands
basis = ta.sma(close, bbLength)
dev = bbMultiplier * ta.stdev(close, bbLength)
upperBB = basis + dev
lowerBB = basis - dev
// Heikin Ashi Candle Calculations
var float heikinOpen = na // Declare `heikinOpen` with an undefined initial value
var float heikinClose = na // Declare `heikinClose` with an undefined initial value
// Update Heikin Ashi values
heikinClose := (open + high + low + close) / 4
heikinOpen := na(heikinOpen[1]) ? (open + close) / 2 : (heikinOpen[1] + heikinClose[1]) / 2
heikinHigh = math.max(high, math.max(heikinOpen, heikinClose))
heikinLow = math.min(low, math.min(heikinOpen, heikinClose))
// RSI
rsi = ta.rsi(close, rsiLength)
// Entry Conditions
heikinGreen = heikinClose > heikinOpen
longCondition = heikinGreen and close > upperBB and rsi > 50
// Exit Conditions
heikinRed = heikinClose < heikinOpen
longExitCondition = heikinRed or rsi >= rsiOverbought
// Strategy Execution
if (longCondition)
strategy.entry("Long", strategy.long)
if (longExitCondition)
strategy.close("Long", comment="Exit Long")
// Plotting Bollinger Bands
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")
plot(basis, color=color.orange, title="Middle Bollinger Band")
// Heikin Ashi Visualization
plotcandle(heikinOpen, heikinHigh, heikinLow, heikinClose, color=(heikinGreen ? color.green : color.red), title="Heikin Ashi Candles")
// Debugging Signals
plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, title="Long Entry Signal")
plotshape(longExitCondition, style=shape.labeldown, location=location.abovebar, color=color.red, title="Long Exit Signal")