Esta estrategia es un sistema de negociación cuantitativo basado en la teoría de la reversión media, que combina bandas de Bollinger, indicadores RSI y un mecanismo de stop-loss dinámico basado en ATR. La estrategia opera identificando desviaciones extremas de precios de la media, yendo largo cuando el precio toca la banda de Bollinger inferior y RSI está en territorio de sobreventa, y corto cuando el precio toca la banda de Bollinger superior y RSI está en territorio de sobrecompra, mientras que utiliza ATR para establecer dinámicamente los niveles de stop-loss y take-profit para una gestión efectiva del riesgo-recompensación.
La estrategia emplea bandas de Bollinger de 20 períodos como indicador principal de tendencia, con un multiplicador de desviación estándar de 2.0 para determinar los límites del movimiento de precios. Se incorpora un RSI de 14 períodos como indicador complementario, con lecturas por debajo de 30 consideradas sobrevendidas y por encima de 70 consideradas sobrecompradas. Las posiciones largas se inician cuando el precio se rompe por debajo de la banda inferior y el RSI está por debajo de 30, lo que indica condiciones potenciales de sobreventa, mientras que las posiciones cortas se toman cuando el precio se rompe por encima de la banda superior y el RSI está por encima de 70, lo que indica condiciones potenciales de sobreventa. La banda media sirve como el nivel de toma de ganancias, combinado con señales de reversión del RSI para la gestión de posiciones. Además, se implementa un mecanismo de objetivos de pérdida dinámica basado en ATR de 14 períodos, con paradas establecidas en 2x ATR y paradas en 3x ATR para un control preciso del riesgo.
La estrategia construye un sistema de negociación de reversión media integral a través de la aplicación combinada de bandas de Bollinger y RSI. La introducción de paradas dinámicas basadas en ATR controla eficazmente el riesgo, proporcionando características favorables de riesgo-recompensa.
/*backtest start: 2024-11-19 00:00:00 end: 2024-11-26 00:00:00 period: 15m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SOL/USDT Mean Reversion Strategy", overlay=true) // Input parameters length = input(20, "Bollinger Band Length") std_dev = input(2.0, "Standard Deviation") rsi_length = input(14, "RSI Length") rsi_oversold = input(30, "RSI Oversold") rsi_overbought = input(70, "RSI Overbought") // Calculate indicators [middle, upper, lower] = ta.bb(close, length, std_dev) rsi = ta.rsi(close, rsi_length) // Entry conditions long_entry = close < lower and rsi < rsi_oversold short_entry = close > upper and rsi > rsi_overbought // Exit conditions long_exit = close > middle or rsi > rsi_overbought short_exit = close < middle or rsi < rsi_oversold // Strategy execution if (long_entry) strategy.entry("Long", strategy.long) if (short_entry) strategy.entry("Short", strategy.short) if (long_exit) strategy.close("Long") if (short_exit) strategy.close("Short") // Stop loss and take profit atr = ta.atr(14) strategy.exit("Long SL/TP", "Long", stop=strategy.position_avg_price - 2*atr, limit=strategy.position_avg_price + 3*atr) strategy.exit("Short SL/TP", "Short", stop=strategy.position_avg_price + 2*atr, limit=strategy.position_avg_price - 3*atr) // Plot indicators plot(middle, color=color.yellow, title="BB Middle") plot(upper, color=color.red, title="BB Upper") plot(lower, color=color.green, title="BB Lower") // Plot entry and exit points plotshape(long_entry, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(short_entry, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) plotshape(long_exit, title="Long Exit", location=location.abovebar, color=color.orange, style=shape.circle, size=size.small) plotshape(short_exit, title="Short Exit", location=location.belowbar, color=color.orange, style=shape.circle, size=size.small)