Esta estrategia se llama estrategia de doble sobreventa basada en el indicador RSI. La estrategia utiliza el indicador RSI y el indicador RSI de Stoch para determinar sobreventa y sobreventa, lo que permite una señal de negociación más confiable.
El RSI refleja el nivel de sobrecompra y sobreventa de los precios. Si el RSI es superior a 70 indica sobrecompra, y si es inferior a 30 indica sobreventa. El RSI de Stoch observa si el RSI está en estado de sobrecompra o sobreventa.
La lógica de negociación de esta estrategia es:
Cuando el indicador RSI atraviesa la línea de sobreventa establecida por el usuario, indica sobreventa de entrada y consideración de corto plazo;
Cuando el indicador RSI cruza la línea de sobreventa establecida por el usuario, indica que se está sobrevendendo y se está considerando hacer más;
Al mismo tiempo, el RSI de Stoch debe mostrar una señal de sobreventa o sobreventa para confirmar la señal de entrada correspondiente.
Esta combinación de condiciones dobles permite filtrar más señales de incertidumbre y evitar falsas brechas.
La ventaja de esta estrategia es que utiliza varios indicadores derivados del RSI para determinar con mayor precisión las zonas de sobreventa y sobreventa. Sin embargo, debe tener en cuenta el riesgo de ajuste de la curva que conlleva la optimización excesiva. La estrategia de parada de pérdidas también es esencial.
En general, el uso de una combinación de indicadores requiere un equilibrio cuidadoso. El uso razonable puede aumentar la efectividad, pero también puede conllevar el riesgo de una optimización excesiva. El comerciante aún debe mantener la flexibilidad de juicio.
/*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)