La estrategia de ruptura de rango del RSI es una estrategia típica de seguimiento de tendencias. Utiliza el índice de fuerza relativa (RSI) como el principal indicador técnico para buscar oportunidades de ruptura cuando el RSI está en niveles de sobrecompra o sobreventa, con el objetivo de seguir la tendencia.
La estrategia se basa principalmente en el indicador RSI para determinar los niveles de sobrecompra y sobreventa en el mercado. La fórmula de cálculo del RSI es: RSI = (Valor Medio Subido / (Valor Medio Subido + Valor Medio Bajo)) x 100. El Valor Medio Subido es el promedio móvil simple de amplitudes de cierre en los últimos N días. El Valor Medio Bajo es el promedio móvil simple de amplitudes de cierre en los últimos N días.
Cuando el RSI es superior a la línea de sobrecompra (default 80), indica que el mercado está en un estado de sobrecompra. Cuando el RSI es inferior a la zona de sobreventa (default 35), indica que el mercado está en un estado de sobreventa. La estrategia busca oportunidades cortas cuando el RSI rompe la línea de sobrecompra y oportunidades largas cuando el RSI rompe la zona de sobreventa.
Específicamente, la estrategia utiliza dos líneas SMA para determinar la tendencia del indicador RSI. Cuando la línea SMA más rápida rompe la línea SMA más lenta, mientras que el RSI rompe la zona de sobreventa, vaya largo. Cuando la línea SMA más rápida rompe la línea SMA más lenta, mientras que el RSI rompe la línea de sobrecompra, vaya corto. La estrategia también establece líneas de stop loss y take profit para controlar los riesgos.
La estrategia de ruptura de rango del RSI es una estrategia típica de seguimiento de tendencias en general. Determina las señales comerciales a través del indicador RSI, filtra las señales con líneas dobles de SMA y establece stop loss y take profit para controlar los riesgos.
/*backtest start: 2023-09-10 00:00:00 end: 2023-10-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //strategy("Strategy RSI | Fadior", shorttitle="Strategy RSI", pyramiding=10, calc_on_order_fills=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100, overlay=false) len = input(3, minval=1, title="RSI Length") threshLow = input(title="Treshold Low", defval=35) threshHigh = input(title="Treshold High", defval=80) rsiLength1 = input(title="RSI Smoothing 1", defval=3) rsiLength2 = input(title="RSI Smoothing 2", defval=5) SL = input(title="Stop loss %", type=float, defval=.026, step=.001) TP = input( defval=300) // 3 40 70 2 // 14 40 70 2 16 0.05 50 src = close up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(sma(rsi,rsiLength2), color=orange) plot(sma(rsi,rsiLength1), color=green) band1 = hline(threshHigh) band0 = hline(threshLow) fill(band1, band0, color=purple, transp=90) strategy = input(type=bool, title="Long only ?", defval=true) strategy.risk.allow_entry_in(strategy ? strategy.direction.long : strategy.direction.all) longCondition = sma(rsi,rsiLength1) < threshLow and sma(rsi,rsiLength2) > sma(rsi,rsiLength2)[1] if (longCondition) strategy.entry("Long", strategy.long) //, qty=10) strategy.exit("Close Long", "Long", stop=src-close*SL, profit=TP) shortCondition = sma(rsi,rsiLength1) > threshHigh and sma(rsi,rsiLength2) < sma(rsi,rsiLength2)[1] if (shortCondition) strategy.entry("Short", strategy.short) //, qty=10) strategy.exit("Close Short", "Short") //, stop=src-close*SL, profit=TP)