Esta estratégia é um sistema de negociação adaptativo de reversão média baseado no indicador Bollinger Bands. Captura oportunidades de sobrecompra e sobrevenda monitorando cruzamento de preços com Bollinger Bands, negociando no princípio de reversão média. A estratégia incorpora dimensionamento dinâmico de posição e mecanismos de gestão de risco, adequados para vários mercados e prazos.
A lógica central baseia-se nos seguintes pontos: 1. Utiliza a média móvel de 20 períodos como faixa média, com 2 desvios padrão para as faixas superior e inferior. 2. Abre posições longas quando o preço ultrapassa a faixa inferior (sinal de sobrevenda). 3. Abre posições curtas quando o preço ultrapassa a faixa superior (sinal de sobrecompra). 4. Tome lucro quando o preço reverte para a faixa média. 5. Estabelece um stop loss de 1% e um take profit de 2%, alcançando uma relação risco-recompensa de 2: 1. 6. Emprega o dimensionamento da posição baseado em percentagem, investindo 1% do capital da conta por transação.
Risco de mercado de consolidação - Pode resultar em perdas devido a negociações frequentes em mercados variados. Solução: Adicione filtros de tendência, negocie apenas quando a tendência estiver clara.
Risco de falha de ruptura - O preço pode reverter rapidamente após a ruptura. Solução: adicionar sinais de confirmação, como volume ou outros indicadores técnicos.
Risco sistemático - Pode sofrer perdas maiores em condições de mercado extremas. Solução: Implementar limites máximos de retirada, parar automaticamente a negociação quando o limiar for atingido.
Esta estratégia capta o desvio de preço usando Bandas de Bollinger e negocia no princípio da reversão média. Seu gerenciamento de risco abrangente e regras de negociação claras fornecem boa praticidade. Através de otimizações sugeridas, a estabilidade e lucratividade da estratégia podem ser ainda melhoradas. É adequado para comerciantes quantitativos que buscam retornos constantes.
/*backtest start: 2025-01-09 00:00:00 end: 2025-01-16 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Bollinger Bands Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Inputs for Bollinger Bands bbLength = input.int(20, title="Bollinger Bands Length") bbStdDev = input.float(2.0, title="Bollinger Bands StdDev") // Inputs for Risk Management stopLossPerc = input.float(1.0, title="Stop Loss (%)", minval=0.1, step=0.1) takeProfitPerc = input.float(2.0, title="Take Profit (%)", minval=0.1, step=0.1) // Calculate Bollinger Bands basis = ta.sma(close, bbLength) bbStdev = ta.stdev(close, bbLength) upper = basis + bbStdDev * bbStdev lower = basis - bbStdDev * bbStdev // Plot Bollinger Bands plot(basis, color=color.blue, title="Middle Band") plot(upper, color=color.red, title="Upper Band") plot(lower, color=color.green, title="Lower Band") // Entry Conditions longCondition = ta.crossover(close, lower) shortCondition = ta.crossunder(close, upper) // Exit Conditions exitLongCondition = ta.crossunder(close, basis) exitShortCondition = ta.crossover(close, basis) // Stop Loss and Take Profit Levels longStopLoss = close * (1 - stopLossPerc / 100) longTakeProfit = close * (1 + takeProfitPerc / 100) shortStopLoss = close * (1 + stopLossPerc / 100) shortTakeProfit = close * (1 - takeProfitPerc / 100) // Execute Long Trades if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", from_entry="Long", stop=longStopLoss, limit=longTakeProfit) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit) // Close Positions on Exit Conditions if (exitLongCondition and strategy.position_size > 0) strategy.close("Long") if (exitShortCondition and strategy.position_size < 0) strategy.close("Short") // 🔊 SOUND ALERTS IN BROWSER 🔊 if (longCondition) alert("🔔 Long Entry Signal!", alert.freq_once_per_bar_close) if (shortCondition) alert("🔔 Short Entry Signal!", alert.freq_once_per_bar_close) if (exitLongCondition) alert("🔔 Closing Long Trade!", alert.freq_once_per_bar_close) if (exitShortCondition) alert("🔔 Closing Short Trade!", alert.freq_once_per_bar_close)