Esta é uma estratégia de negociação quantitativa de múltiplos indicadores que combina Bandas de Bollinger, Nuvem de Ichimoku e níveis de Suporte / Resistência. A estratégia identifica oportunidades de negociação potenciais analisando a volatilidade do mercado, a força da tendência e os níveis de preços principais. Emprega condições de entrada precisas e métodos de gerenciamento de risco para alcançar um desempenho comercial robusto.
A estratégia utiliza três principais componentes de indicadores técnicos: Bandas de Bollinger para medir a volatilidade do mercado e as condições de sobrecompra / sobrevenda; Ichimoku Cloud para avaliar a direção e a força da tendência; Níveis de suporte / resistência para identificar os principais níveis de preços.
Os sinais comerciais são gerados com base nas seguintes condições: sinais longos são acionados quando o preço quebra acima da banda superior de Bollinger, posições acima da Nuvem de Ichimoku e quebra acima da alta anterior; sinais curtos são acionados quando o preço quebra abaixo da banda inferior de Bollinger, posições abaixo da Nuvem de Ichimoku e quebra abaixo da baixa anterior.
Esta é uma estratégia de negociação quantitativa que utiliza de forma abrangente múltiplos indicadores técnicos, capturando oportunidades de negociação através de quebras de tendência e confirmações de sinais múltiplos. Os pontos fortes da estratégia estão na alta confiabilidade do sinal e na gestão de riscos robusta, mas deve ser dada atenção a falhas de quebras e questões de otimização de parâmetros. Através da otimização contínua e gestão de riscos, a estratégia tem o potencial de manter um desempenho estável em várias condições de mercado.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BB Ichimoku S/R Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters bb_length = input.int(20, "Bollinger Bands Length") bb_mult = input.float(2.0, "Bollinger Bands Multiplier") ichimoku_tenkan = input.int(9, "Ichimoku Tenkan-sen") ichimoku_kijun = input.int(26, "Ichimoku Kijun-sen") ichimoku_senkou = input.int(52, "Ichimoku Senkou Span B") sr_lookback = input.int(14, "S/R Lookback Period") profit_target = input.float(1.5, "Profit Target (%)", minval=0.1, step=0.1) stop_loss = input.float(1.0, "Stop Loss (%)", minval=0.1, step=0.1) // Bollinger Bands [bb_middle, bb_upper, bb_lower] = ta.bb(close, bb_length, bb_mult) // Ichimoku Cloud tenkan = ta.ema(hl2, ichimoku_tenkan) kijun = ta.ema(hl2, ichimoku_kijun) spanA = (tenkan + kijun) / 2 spanB = ta.ema(hl2, ichimoku_senkou) // Support and Resistance highest_high = ta.highest(high, sr_lookback) lowest_low = ta.lowest(low, sr_lookback) // Entry conditions long_condition = close > bb_upper and close > spanA and close > spanB and close > highest_high[1] short_condition = close < bb_lower and close < spanA and close < spanB and close < lowest_low[1] // Execute trades if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Set profit target and stop loss strategy.exit("TP/SL", "Long", profit=strategy.position_avg_price * (1 + profit_target / 100), loss=strategy.position_avg_price * (1 - stop_loss / 100)) strategy.exit("TP/SL", "Short", profit=strategy.position_avg_price * (1 - profit_target / 100), loss=strategy.position_avg_price * (1 + stop_loss / 100)) // Plot indicators plot(bb_middle, color=color.blue, title="BB Middle") plot(bb_upper, color=color.red, title="BB Upper") plot(bb_lower, color=color.red, title="BB Lower") plot(tenkan, color=color.orange, title="Tenkan-sen") plot(kijun, color=color.purple, title="Kijun-sen") spanA_plot = plot(spanA, color=color.green, title="Senkou Span A") spanB_plot = plot(spanB, color=color.red, title="Senkou Span B") plot(highest_high, color=color.green, title="Resistance") plot(lowest_low, color=color.red, title="Support") // Fill Ichimoku Cloud fill(spanA_plot, spanB_plot, color=spanA > spanB ? color.rgb(76, 175, 80, 90) : color.rgb(255, 82, 82, 90))