La estrategia de ruptura del RSI es una estrategia típica de seguimiento de la tendencia. Utiliza el índice de fuerza relativa (RSI) como indicador técnico principal para establecer posiciones de búsqueda de oportunidades de ruptura en el rango cuando el RSI está sobrecomprado o sobrevendido, con el propósito de seguir la tendencia.
La estrategia se basa principalmente en el indicador RSI para determinar el estado de sobreventa y sobreventa del mercado. La fórmula de cálculo del indicador RSI es: RSI = ((promedio de subida / promedio de subida + promedio de bajada) × 100). Donde, el promedio de subida es el promedio móvil simple de la subida de la liquidación en los últimos N días, y el promedio de bajada es el promedio móvil simple de la caída de la liquidación en los últimos N días.
Cuando el RSI es mayor que la línea de sobrecompra establecida (default 80), el mercado está sobrecomprado; cuando el RSI es menor que la línea de sobreventa establecida (default 35), el mercado está sobrevendido. La estrategia busca oportunidades de shorting cuando el RSI rompe la línea de sobrecompra hacia abajo; cuando el RSI rompe la zona de sobreventa hacia arriba, busca oportunidades de hacer más.
En concreto, la estrategia determina la tendencia del indicador RSI a través de dos líneas medias de SMA. Cuando la línea rápida rompe la línea lenta de abajo hacia arriba y el RSI rompe el rango de sobreventa, haga más; cuando la línea rápida rompe la línea lenta de arriba hacia abajo y el RSI rompe la línea de sobreventa, haga un descuento. La estrategia también establece una línea de stop loss y una línea de stop loss para controlar el riesgo.
La estrategia de ruptura de rango RSI es una estrategia típica de seguimiento de tendencias en general. Se determina el punto de venta y venta a través del indicador RSI, se filtran las señales de las medias dobles SMA y se establece un stop loss para controlar el riesgo. Sin embargo, el indicador RSI tiene problemas de atraso, además, la configuración inadecuada de los parámetros también puede afectar el rendimiento de la estrategia.
/*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)