Esta estratégia foi concebida com base no indicador Bollinger Bands para fazer curto quando o preço ultrapassa a faixa superior e longo quando o preço ultrapassa a faixa inferior, realizando a negociação de rastreamento inteligente.
A estratégia usa a linha do meio, banda superior e banda inferior das Bandas de Bollinger como indicadores de base. A linha do meio é a média móvel dos preços de fechamento ao longo de n dias. A banda superior é a linha do meio deslocada para cima por dois desvios padrão, enquanto a banda inferior é deslocada para baixo por dois desvios padrão. Quando o preço quebra a banda inferior para cima, vá longo. Quando o preço quebra a banda superior para baixo, vá curto. Isso permite o rastreamento inteligente do preço com base na volatilidade do mercado.
Especificamente, a estratégia julga principalmente duas métricas:
ta.crossover ((fonte, inferior): preço de fechamento ultrapassa a faixa inferior, vai longo
ta.crossunder ((fonte, superior): preço de fechamento abaixo da faixa superior, curto
Quando a condição de saída for acionada, use a função strategy.cancel() para nivelar a posição existente.
As principais vantagens desta estratégia são:
Há também alguns riscos com esta estratégia:
Soluções correspondentes:
A estratégia pode ser melhorada através de:
Esta estratégia é projetada com base no indicador Bollinger Bands, usando quebras de preços de bandas superiores e inferiores para rastrear automaticamente os preços. A lógica é simples e sensível à volatilidade do mercado. Outras otimizações podem ser feitas por meio de ajuste de parâmetros e mecanismos de stop loss.
/*backtest start: 2023-12-17 00:00:00 end: 2024-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy with alerts (incl. pending orders) via TradingConnector to Forex", overlay=true) source = close length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev buyEntry = ta.crossover(source, lower) sellEntry = ta.crossunder(source, upper) if (ta.crossover(source, lower)) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") alert(message='long price='+str.tostring(lower), freq=alert.freq_once_per_bar_close) else strategy.cancel(id="BBandLE") alert(message='cancel long', freq=alert.freq_once_per_bar_close) if (ta.crossunder(source, upper)) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") alert(message='short price='+str.tostring(upper), freq=alert.freq_once_per_bar_close) else strategy.cancel(id="BBandSE") alert(message='cancel short', freq=alert.freq_once_per_bar_close) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr) //Lines of code added to the original built-in script: 14, 17, 20 and 23 only. //They trigger alerts ready to be executed on real markets through TradingConnector //available for Forex, indices, crypto, stocks - anything your broker offers for trading via MetaTrader4/5