La estrategia de doble oscilación cruzada del RSI es una estrategia de trading cuantitativa que utiliza tanto los cruces del indicador RSI como los promedios móviles para determinar entradas y salidas. Utiliza el indicador RSI para juzgar si el mercado está sobrecomprado o sobrevendido, combinado con el juicio de tendencia de los promedios móviles, para emitir señales comerciales cuando el RSI muestra condiciones extremas. Esto puede filtrar eficazmente las señales falsas y mejorar la estabilidad de la estrategia.
La estrategia se basa principalmente en el uso combinado del indicador RSI y los promedios móviles. En primer lugar, calcular el valor del RSI durante un cierto período y establecer líneas de sobrecompra / sobreventa. En segundo lugar, calcular promedios móviles rápidos y lentos. Cuando el RSI cruza por encima del promedio móvil lento, mientras que el valor del RSI está por debajo de la línea de sobreventa y la banda inferior, se genera una señal de compra; Cuando el RSI cruza por debajo del promedio móvil lento, mientras que el RSI está por encima de la línea de sobrecompra y la banda superior, se genera una señal de venta.
La mayor ventaja de esta estrategia es que utiliza tanto el indicador RSI para juzgar las condiciones de sobrecompra / sobreventa como los promedios móviles para determinar la dirección de la tendencia, lo que puede evitar efectivamente las fallas falsas.
Los principales riesgos de esta estrategia pueden incluir: alta frecuencia de negociación que conduce a una sobre negociación; configuración inadecuada de parámetros puede reducir la precisión de la señal.
Considere ajustar los parámetros del RSI o del período promedio móvil para adaptarse a diferentes ciclos; Combinar con otros indicadores para filtrar las señales; Establecer stop loss y take profit para controlar los riesgos; Optimizar el tamaño de la posición en cada operación.
En general, la estrategia de oscilación doble cruzada del RSI es una estrategia comercial relativamente estable y confiable a corto plazo. Con el ajuste adecuado de los parámetros y el control de riesgos, puede lograr un buen retorno de la inversión. La estrategia es fácil de entender e implementar, muy adecuada para los principiantes para aprender y aplicar el comercio cuantitativo.
/*backtest start: 2024-01-23 00:00:00 end: 2024-02-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI slowma Ismael", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Definir la longitud del RSI rsi_length = input(title='RSI Length', defval=14) //media Fast = input(title='Fast', defval=7) slow = input(title='Slow', defval=2) // Definir los niveles de sobrecompra y sobreventa del RSI rsi_overbought = input(title='RSI Overbought Level', defval=72) rsi_oversold = input(title='RSI Oversold Level', defval=29) // Definir la longitud y la desviación estándar de las Bandas de Bollinger bb_length = input(title="Bollinger Bands Length", defval=14) bb_stddev = input(title="Bollinger Bands StdDev", defval=2) // Calcular RSI rsi_value = ta.rsi(close, rsi_length) // Calcular Bandas de Bollinger bb_upper = ta.sma(rsi_value, bb_length) + bb_stddev* ta.stdev(rsi_value, bb_length) bb_lower = ta.sma(rsi_value, bb_length) - bb_stddev * ta.stdev(rsi_value, bb_length) //media movil adelantada fastMA = ta.sma(rsi_value, Fast) slowMA = ta.sma(rsi_value, slow) // Definir la señal de compra y venta buy_signal = (ta.crossover(rsi_value, slowMA) and rsi_value < bb_lower and rsi_value < rsi_oversold) or (rsi_value < bb_lower and rsi_value < rsi_oversold) sell_signal = (ta.crossunder(rsi_value, slowMA) and rsi_value > bb_upper and rsi_value > rsi_overbought) or (rsi_value > bb_upper and rsi_value > rsi_overbought) // Configurar las condiciones de entrada y salida del mercado if buy_signal strategy.entry("Buy", strategy.long) if sell_signal strategy.close("Buy") // Configurar el stop loss y el take profit stop_loss = input.float(title='Stop Loss (%)', step=0.01, defval=3) take_profit = input.float(title='Take Profit (%)', step=0.01, defval=8) strategy.exit("Exit Long", "Buy", stop=close - close * stop_loss / 100, limit=close + close * take_profit / 100) // Configurar la visualización del gráfico plot(slowMA, title='RSISMA', color=color.rgb(75, 243, 33), linewidth=1) plot(fastMA, title='RSIFMA', color=color.rgb(75, 243, 33), linewidth=1) plot(rsi_value, title='RSI', color=color.purple, linewidth=1) // Marcar las zonas de sobrecompra y sobreventa en el grafico del RSI hl= hline(rsi_overbought, title='Overbought', color=color.purple, linestyle=hline.style_dotted, linewidth=1) hll= hline(rsi_oversold, title='Oversold', color=color.purple, linestyle=hline.style_dotted, linewidth=1) fill(hl,hll, color= color.new(color.purple, 91)) bbfill = plot(bb_upper, title='Bollinger Bands up', color=color.blue, linewidth=1) bbfill1= plot(bb_lower, title='Bollinger Bands down', color=color.blue, linewidth=1) fill(bbfill,bbfill1, color= color.new(#2bb5ec, 91))