Estratégia de RSI de intervalo estocástico sobrevendido e sobrecomprado

Autora:ChaoZhang, Data: 2023-12-11 13:19:08
Tags:

img

Resumo

A estratégia de RSI Stochastic Overbought e Overbought Range ajusta dinamicamente os limiares de sobrecompra e sobrevenda do RSI para capturar oportunidades de mercado de forma mais flexível. Esta estratégia usa o índice de força relativa (RSI) como o principal indicador de negociação e define vários parâmetros aleatórios de sobrecompra e sobrevenda.

Estratégia lógica

A lógica central desta estratégia é usar o indicador RSI para determinar se o preço da ação está sobrecomprado ou sobrevendido. O RSI compara o valor médio dos preços de fechamento e de fechamento em um período para julgar a tendência atual dos preços. A Estratégia RSI Estocástica não usa parâmetros fixos de sobrecompra e sobrevenda. Em vez disso, define vários intervalos de limiar aleatórios e gera sinais de negociação quando a linha RSI cruza esses intervalos aleatórios.

Por exemplo, uma estratégia típica de RSI pode usar 30 como o limiar e ficar longa quando o RSI cai abaixo de 30 e fechar posição quando o RSI sobe acima de 70. No entanto, esta estratégia de RSI estocástica define vários valores aleatórios entre 20 e 30 como os intervalos de limiar. Isso permite estratégias de negociação mais flexíveis para abrir posições em mais pontos de oportunidade.

Especificamente, a lógica principal desta estratégia é a seguinte:

  1. Defina o comprimento do parâmetro RSI, por exemplo, RSI de 6 dias
  2. Definir intervalos aleatórios de sobrecompra e sobrevenda
  3. Ir longo quando o RSI cai abaixo do intervalo de sobrevenda aleatório
  4. Caso o RSI suba acima do intervalo aleatório de sobrecompra, fechar posição

Vantagens

Em comparação com as estratégias tradicionais de RSI, esta Estratégia de RSI Stochastic Oversold e Overbought Range tem as seguintes principais vantagens:

  1. A definição do limiar aleatório é mais flexível e pode abrir posições em mais pontos de oportunidade.

  2. A definição aleatória do intervalo pode refletir melhor a ciclicidade do mercado. Os intervalos de limiar razoáveis podem diferir entre os ciclos do mercado. A definição aleatória pode se adaptar a diferentes condições do mercado.

  3. A combinação de vários intervalos aleatórios forma um sistema de negociação relativamente completo. Um único sinal de negociação é propenso ao fracasso, enquanto a lógica de negociação múltipla formada por vários intervalos nesta estratégia pode tornar a estratégia mais estável e confiável.

  4. O próprio indicador RSI tem alta estabilidade. Como um indicador de tendência, o RSI pode determinar claramente as tendências de preços. Em comparação com o preço em si, os sinais RSI têm menor probabilidade de falsos positivos.

  5. A estratégia é simples de implementar e fácil de backtest. Ela envolve apenas o cálculo básico do RSI sem fórmulas complexas, tornando-a muito fácil de implementar e testar. Isso também torna a estratégia fácil de otimizar e melhorar.

Riscos

Embora a Estratégia do RSI Estocástico tenha algumas vantagens, também existem riscos importantes:

  1. Como qualquer outro indicador, o RSI não pode prever perfeitamente os movimentos do mercado. O RSI é calculado a partir de dados históricos e não tem poder preditivo definitivo sobre preços futuros.

  2. A estratégia deve ser concebida de modo a não se adaptar apenas aos movimentos históricos do mercado, mas não às condições futuras do mercado.

  3. A lógica de negociação múltipla pode emitir sinais conflitantes, por exemplo, um sinal de posição fechada após o sinal de entrada longa.

  4. A densidade e a direção das faixas precisam de ajustes e otimizações constantes.

  5. As estratégias de RSI são mais adequadas para a negociação de tendências de médio a longo prazo. No curto prazo, os sinais RSI podem atrasar no tempo. A frequência de negociação precisa ser controlada para reduzir os riscos de reversão.

A principal abordagem de gestão do risco consiste em adotar um rigoroso backtesting durante longos períodos de tempo e em várias condições de mercado para garantir a estabilidade e a rentabilidade.

Melhorias

Para esta Estratégia de RSI Estocástico, as principais direções de otimização incluem:

  1. Encontre o comprimento ideal do parâmetro RSI testando 5 dias, 10 dias, 20 dias, etc.

  2. Teste mais faixas aleatórias para encontrar a distribuição de faixas ideal, garantindo uma cobertura suficiente, evitando a densidade excessiva.

  3. Incorporar mecanismos de obtenção de lucros ou de suspensão de perdas para controlar os riscos do comércio único e garantir uma rentabilidade sustentável.

  4. Incorporar outros indicadores auxiliares para construir modelos multifatores mais abrangentes, por exemplo, adicionando médias móveis como filtros para melhorar a qualidade do sinal.

  5. Otimizar e reduzir a frequência de negociação para melhor adaptar a sua detenção a médio e longo prazo, evitando a negociação excessiva que possa comprometer a estabilidade.

  6. Otimizar os parâmetros separadamente para diferentes produtos para adaptar a estratégia a mais ambientes de mercado.

  7. Adotar métodos mais avançados de aprendizagem automática para otimizar dinamicamente os parâmetros, de modo a que os parâmetros-chave possam ser atualizados de acordo com as alterações do mercado em tempo real.

Essas medidas de otimização ajudam a reduzir os riscos de ajustamento da curva, a descobrir o Alpha inerente da estratégia e a alcançar um melhor desempenho comercial ao vivo.

Conclusão

A Estratégia de RSI de Intervalo de Supervenda e Supercompra Estocástica realiza uma lógica de negociação mais rica do que as estratégias tradicionais de RSI, definindo de forma flexível as faixas de compra e venda do indicador chave do RSI. Esta abordagem permite que os sinais do indicador capturem melhor a ciclicidade e as flutuações de curto prazo do mercado. Enquanto isso, a introdução de parâmetros de intervalo aleatório também fornece maior espaço para otimização de estratégia, permitindo a melhoria contínua do desempenho do comércio ao vivo.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("imrich", shorttitle="imrich", overlay=true)


RSIlength = input(6,title="RSI Period Length") 
RSIoverSold1 = 1
RSIoverSold2 = 2
RSIoverSold3 = 3
RSIoverSold4 = 4
RSIoverSold5 = 5
RSIoverSold6 = 6
RSIoverSold7 = 7
RSIoverSold8 = 8
RSIoverSold9 = 9
RSIoverSold10 = 10
RSIoverSold11 = 11
RSIoverSold12 = 12
RSIoverSold13 = 13
RSIoverSold14 = 14
RSIoverSold15 = 15
RSIoverSold16 = 16
RSIoverSold17 = 17
RSIoverSold18 = 18
RSIoverSold19 = 19
RSIoverSold20 = 20
RSIoverSold21 = 21
RSIoverSold22 = 22
RSIoverSold23 = 23
RSIoverSold24 = 24
RSIoverSold25 = 25
RSIoverSold26 = 26
RSIoverSold27 = 27
RSIoverSold28 = 28
RSIoverSold29 = 29
RSIoverSold30 = 30
RSIoverSold31 = 31
RSIoverSold32 = 32

RSIoverBought1 = 70
RSIoverBought2 = 72
RSIoverBought3 = 73
RSIoverBought4 = 74
RSIoverBought5 = 75
RSIoverBought6 = 76
RSIoverBought7 = 77
RSIoverBought8 = 78
RSIoverBought9 = 79
RSIoverBought10 = 80
RSIoverBought11 = 81
RSIoverBought12 = 82
RSIoverBought13 = 83
RSIoverBought14 = 84
RSIoverBought15 = 85
RSIoverBought16 = 86
RSIoverBought17 = 87
RSIoverBought18 = 88
RSIoverBought19 = 89
RSIoverBought20 = 90
RSIoverBought21 = 91
RSIoverBought22 = 92
RSIoverBought23 = 93
RSIoverBought24 = 94
RSIoverBought25 = 95
RSIoverBought26 = 96
RSIoverBought27 = 97
RSIoverBought28 = 98
RSIoverBought29 = 99
RSIoverBought0 = 100

price = close
vrsi = rsi(price, RSIlength)





long = (crossover(vrsi, RSIoverSold5)  or crossover(vrsi, RSIoverSold10) or crossover(vrsi, RSIoverSold15) or crossover(vrsi, RSIoverSold20) or crossover(vrsi, RSIoverSold25) or crossover(vrsi, RSIoverSold30) or crossover(vrsi, RSIoverSold7) or crossover(vrsi, RSIoverSold8) or crossover(vrsi, RSIoverSold9))
close_long = (crossunder(vrsi, RSIoverBought1) or crossunder(vrsi, RSIoverBought5) or crossunder(vrsi, RSIoverBought10) or crossunder(vrsi, RSIoverBought15) or crossunder(vrsi, RSIoverBought20) or crossunder(vrsi, RSIoverBought25) or crossunder(vrsi, RSIoverBought29))

if (not na(vrsi))

    if long
        strategy.entry("RSI_BB", strategy.long, comment="RSI_BB")
    else
        strategy.cancel(id="RSI_BB")
        
    if close_long
        strategy.close("RSI_BB")



Mais.