Esta es una estrategia de negociación cuantitativa de múltiples indicadores que combina bandas de Bollinger, nube de Ichimoku y niveles de soporte / resistencia. La estrategia identifica oportunidades comerciales potenciales mediante el análisis de la volatilidad del mercado, la fuerza de la tendencia y los niveles clave de precios. Emplea condiciones de entrada precisas y métodos de gestión de riesgos para lograr un rendimiento comercial robusto.
La estrategia utiliza tres componentes principales de indicadores técnicos: Bandas de Bollinger para medir la volatilidad del mercado y las condiciones de sobrecompra / sobreventa; Nube de Ichimoku para evaluar la dirección y la fuerza de la tendencia; Niveles de soporte / resistencia para identificar los niveles clave de precios.
Las señales comerciales se generan en función de las siguientes condiciones: las señales largas se activan cuando el precio se rompe por encima de la banda superior de Bollinger, las posiciones por encima de la nube de Ichimoku y se rompe por encima del máximo anterior; las señales cortas se activan cuando el precio se rompe por debajo de la banda inferior de Bollinger, las posiciones por debajo de la nube de Ichimoku y se rompe por debajo del mínimo anterior.
Esta es una estrategia de negociación cuantitativa que utiliza ampliamente múltiples indicadores técnicos, capturando oportunidades comerciales a través de rupturas de tendencia y confirmaciones de múltiples señales. Las fortalezas de la estrategia se encuentran en la alta confiabilidad de la señal y una sólida gestión del riesgo, pero se debe prestar atención a las fallas de ruptura y los problemas de optimización de parámetros. A través de la optimización continua y la gestión del riesgo, la estrategia tiene el potencial de mantener un rendimiento estable en diversas condiciones 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))