Estrategia doble de sobrecompra y sobreventa basada en el indicador RSI

El autor:¿ Qué pasa?, Fecha: 2023-09-13 16:58:55
Las etiquetas:

Esta estrategia se llama Estrategia doble de sobrecompra / sobreventa basada en el indicador RSI. Utiliza tanto el indicador RSI como el indicador Stoch RSI para determinar las condiciones de sobrecompra y sobreventa para señales comerciales más confiables.

El indicador RSI refleja los niveles de sobrecompra / sobreventa en los precios. RSI por encima de 70 sugiere estado de sobrecompra, mientras que por debajo de 30 es sobreventa. El indicador RSI de Stoch muestra si el propio RSI ha entrado en zonas de sobrecompra o sobreventa.

La lógica de negociación es:

Cuando el RSI cruza por encima de la línea de sobrecompra definida por el usuario, indica condiciones de sobrecompra para considerar operaciones cortas.

Cuando el RSI cae por debajo de la línea de sobreventa definida por el usuario, señala las condiciones de sobreventa para considerar las operaciones largas.

Mientras tanto, el Stoch RSI también necesita mostrar señales de sobrecompra o sobreventa para confirmar las señales de entrada correspondientes.

Esta doble condición se combina para filtrar señales más ambiguas y evitar fallas.

La ventaja de esta estrategia es la utilización de varios indicadores derivados del RSI para un juicio de rango sobrecomprado / sobrevendido más preciso.

En resumen, las combinaciones de indicadores necesitan un equilibrio cuidadoso. El uso razonable puede mejorar los resultados, pero también puede traer riesgos de sobreoptimización.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("test1","t1",overlay=true, default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=200, currency=currency.USD)
//user input
k_param = input(title = "k length", type = input.integer, defval = 14)
d_param = input(title = "d length", type = input.integer, defval = 3)
rsi_param = input(title = "RSI", type = input.integer, defval = 5)
upper = input(title = "over brought", type = input.integer, defval = 80)
lower = input(title = "over sold", type = input.integer, defval = 20)

//calculation
rsi = rsi(close,rsi_param)
stochastic = 100*(rsi - lowest(rsi,k_param))/(highest(rsi,k_param)-lowest(rsi,k_param))
SMA = sma(stochastic,d_param)

//DRAW
plot(upper,color = color.blue,linewidth = 2, title ="超买")
plot(lower,color = color.blue,linewidth = 2, title ="超卖")
plot(rsi,color = rsi>upper ?color.red:rsi<lower? color.green:color.black, linewidth=2,title ="ris超买超卖")
plot(stochastic,color = color.purple,title="震荡指数")
plot(SMA, color = color.orange,title="移动平均")

//trading
shortposition = crossover(rsi,upper)
longposition = crossunder(rsi,lower)
strategy.entry("卖",false,when =(shortposition))
strategy.entry("买",true,when = (longposition))
strategy.exit("止盈",profit = close*0.013/syminfo.mintick)

Más.