Estratégia de sobrecompra e sobrevenda dupla com base no indicador RSI


Data de criação: 2023-09-13 16:58:55 última modificação: 2023-09-13 16:58:55
cópia: 0 Cliques: 670
1
focar em
1617
Seguidores

Esta estratégia é conhecida como estratégia de dupla sobrevenda e sobrevenda baseada no indicador RSI. Esta estratégia usa o indicador RSI e o indicador RSI de Stoch simultaneamente para determinar a sobrevenda e a sobrevenda, para obter um sinal de negociação mais confiável.

O RSI reflete os níveis de sobrecompra e sobrevenda no preço. O RSI acima de 70 indica sobrecompra e o RSI abaixo de 30 indica sobrevenda. O RSI de Stoch vê se o RSI está em um estado de sobrecompra ou de sobrevenda.

A lógica de negociação desta estratégia:

Quando o indicador RSI atravessa a linha de sobrecompra definida pelo usuário, indica que o supercompra de entrada é considerado como um shorting;

Quando o indicador RSI cruza a linha de supera venda definida pelo usuário, indica que o início de supera venda está sendo considerado;

Ao mesmo tempo, o Stoch RSI também deve exibir sinais de sobrecompra ou sobrevenda para confirmar o correspondente sinal de entrada.

A combinação de condições duplas permite filtrar mais sinais de incerteza e evitar falsas brechas.

A vantagem desta estratégia é que a utilização de vários indicadores derivados do RSI, para determinar com mais precisão sobre-comprar áreas de venda excessiva. No entanto, é necessário ter em conta o risco de curva de ajuste causado por otimização excessiva.

Em geral, o uso de uma combinação de indicadores requer um equilíbrio cuidadoso. O uso racional pode aumentar a eficácia, mas também pode trazer o risco de otimização excessiva. O comerciante ainda precisa manter a flexibilidade de julgamento.

Código-fonte da estratégia
/*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)