Estratégia de negociação quantitativa baseada em RSI


Data de criação: 2023-12-06 17:17:16 última modificação: 2023-12-06 17:17:16
cópia: 0 Cliques: 543
1
focar em
1619
Seguidores

Estratégia de negociação quantitativa baseada em RSI

Visão geral

Esta estratégia é conhecida como inversão de RSI de duas eixos temporais, e é uma estratégia de negociação quantitativa baseada no índice de força relativa (RSI). A estratégia usa dois períodos diferentes de RSI como sinais de compra e venda para alcançar baixos e altos e obter oportunidades de negociação trazidas pela inversão do preço das ações.

Princípio da estratégia

A estratégia usa o RSI de ciclo rápido (de 55 dias por defeito) e o RSI de ciclo lento (de 126 dias por defeito) para construir sinais de negociação. Quando o RSI de ciclo rápido atravessa o RSI de ciclo lento, gera um sinal de compra, e vice-versa, quando o RSI de ciclo rápido atravessa o RSI de ciclo lento, gera um sinal de venda. Comparando a força relativa da dinâmica de preços entre dois intervalos de tempo diferentes, é possível encontrar oportunidades de reversão de tendências de curto e longo prazo.

Após o sinal de entrada, a estratégia configura um ponto de parada de parada. O ponto de parada é 0,9 vezes o preço de entrada por defeito, e o ponto de parada é 3% do preço de entrada por defeito. Ao mesmo tempo, quando o sinal de reversão ocorre novamente, a posição atual é eliminada.

Vantagens estratégicas

  • Usar a comparação do RSI duplo para encontrar pontos de variação nas tendências de preços de curto e longo prazo e capturar oportunidades de reversão
  • O RSI duplo elimina o ruído das transações de brechas falsas
  • Configuração de um ponto de parada para limitar perdas individuais

Risco estratégico

  • Os sinais do RSI podem ser frequentemente invertidos durante a forte volatilidade dos preços das ações.
  • Ponto de parada muito pequeno, que pode levar a um pico de perdas após uma pequena vibração
  • Parâmetros do RSI duplo mal definidos podem ter perdido uma grande reversão

Otimização de Estratégia

  • Os parâmetros RSI podem testar mais combinações para encontrar o melhor parâmetro
  • Pode ser combinado com outros indicadores para filtrar falsos sinais de ruptura
  • Ajuste dinâmico do parâmetro de perda de travagem para uma maior flexibilidade da travagem

Resumir

Esta estratégia utiliza a inversão de dois eixos de tempo RSI para capturar oportunidades de reversão de preços de curto prazo, através da comparação de períodos mais rápidos e mais lentos. Esta é uma estratégia típica de negociação de reversão de preços usando uma comparação de indicadores em vários eixos de tempo. O espaço de otimização está no ajuste de parâmetros e na otimização das regras de controle de risco.

Código-fonte da estratégia
/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Relative Strength Index", shorttitle="RSI")
slen    = input(55, title="Short length")
llen    = input(126, title="Long length")
sup     = ema(max(change(close), 0), slen)
sdown   = ema(-min(change(close), 0), slen)
rsi1    = sdown == 0 ? 100 : sup == 0 ? 0 : 100 - (100 / (1 + sup / sdown))
lup     = ema(max(change(close), 0), llen)
ldown   = ema(-min(change(close), 0), llen)
rsi2    = ldown == 0 ? 100 : lup == 0 ? 0 : 100 - (100 / (1 + lup / ldown))
ob      = input(55, title="Overbought")
os      = input(45, title="Oversold")
tp      = input(.9, title="Take profit level %")*.01
sl      = input(3, title="Stoploss level %")*.01
mid     = avg(ob,os)
plot    (mid, color=#4f4f4f, transp=0)
hline   (ob, color=#4f4f4f)
hline   (os, color=#4f4f4f)
long    = crossover(rsi1,rsi2)
short   = crossunder(rsi1,rsi2)
vall    = valuewhen(long,close,0)
lexit1  = high>=(vall*tp)+vall
lexit2  = low<=vall-(vall*sl)
vals    = valuewhen(short,close,0)
sexit1  = low<=vals - (vals*tp)
sexit2  = high>=vals + (vals*sl)
bgcolor (color=long?lime:na,transp=50)
bgcolor (color=short?red:na, transp=50)
strategy.entry("Long", strategy.long, when=long)
strategy.close("Long", when=lexit1)
strategy.close("Long", when=lexit2)
strategy.close("Long", when=short)
strategy.entry("Short", strategy.short, when=short)
strategy.close("Short", when=sexit1)
strategy.close("Short", when=sexit2)
strategy.close("Short", when=long)
plot    (rsi1, color=orange, transp=0,linewidth=1, title="Short period RSI")
plot    (rsi2, color=aqua  , transp=0,linewidth=1, title="Long period RSI")