Estratégia de Reversão de RSI


Data de criação: 2023-10-08 14:16:57 última modificação: 2023-10-08 14:16:57
cópia: 1 Cliques: 645
1
focar em
1617
Seguidores

Visão geral

A estratégia de ruptura do RSI é uma estratégia que usa o indicador RSI para identificar situações de sobrevenda e sobrevenda e executar operações reversíveis quando o preço quebra a linha média. A estratégia combina tendências e indicadores de sobrevenda e sobrevenda e opera quando o preço de ações apresenta um sinal de reversão, com o objetivo de capturar oportunidades de reversão de curto prazo no preço das ações.

Princípio da estratégia

A estratégia baseia-se principalmente nos seguintes princípios:

  1. Usando o RSI ((2) para determinar se o preço da ação está sobrecomprado ou sobrevendido. O RSI menor que 25 é considerado sobrevendido; O RSI maior que 80 é considerado sobrecomprado.

  2. Use a EMA de 200 dias para determinar a direção da tendência de longo prazo do preço das ações. A passagem de uma EMA acima é considerada um sinal de otimismo e a passagem de uma EMA abaixo é considerada um sinal de baixa.

  3. Quando o RSI mostra um sinal de oversold e o preço passa por uma EMA, faça uma operação de bullish e faça mais. Este é o típico sinal de reversão, indicando que o preço da ação sai da área de oversold e começa a subir.

  4. Quando o RSI mostra um sinal de sobrevenda e o preço passa por uma EMA abaixo, execute uma operação de baixa e feche. Isso também é um sinal de reversão, indicando que o preço da ação sai da área de sobrevenda e começa a recuar para baixo.

  5. Com este modelo de reversão, esperamos que possamos entrar no campo e capturar oportunidades de reversão antes que uma nova tendência apareça no preço das ações.

Especificamente, a condição de entrada da estratégia é o RSI menor que 25 e o preço faz mais quando o preço se move para cima; o RSI maior que 80 e o preço se move para baixo. A condição de parada é a posição de parada mais alta de um dia de negociação sob o preço mais alto do dia.

Vantagens estratégicas

A estratégia de RSI reversão de ruptura combina a tendência e os fatores de reversão, com as seguintes vantagens:

  1. Capturar oportunidades de reversão: O RSI pode ser usado para avaliar a sobrevenda e a sobrevenda, capturando o momento em que o preço da ação se reverte, o que é fundamental para obter ganhos extras.

  2. A sequência é a seguinte: ao mesmo tempo, em combinação com a EMA, determinar a direção da grande tendência e evitar operações de contra-corrida. O sinal de reversão deve ser considerado somente quando a direção da grande tendência é coincidente.

  3. Controle de risco: O modo de operação inversa, o tempo de detenção de cada direção não é muito longo, pode controlar o risco.

  4. Flexibilidade de parâmetros: os ciclos RSI e EMA podem ser ajustados e otimizados de acordo com as condições do mercado, tornando a estratégia mais adaptável.

  5. Frequência de negociação moderada: a frequência de sinais de reversão é moderada, não há transações muito frequentes e não há inatividade por longos períodos.

  6. Simples e claro: as regras da estratégia são simples e claras, não são muito complexas. É fácil de operar no disco.

Riscos e soluções

A estratégia também apresenta os seguintes riscos:

  1. Risco de reversão de falha: após o surgimento de um sinal de reversão, o preço das ações pode voltar para a tendência original, reversão de falha, neste momento, a estratégia terá um prejuízo. O risco pode ser controlado por meio de um stop loss.

  2. Risco de tendências não visíveis: a EMA não pode orientar bem a direção geral quando o preço das ações não tem uma tendência clara, e a estratégia gera mais incerteza. Pode ser otimizada para não fazer operações de reversão quando o preço das ações não tem uma tendência óbvia.

  3. Risco de otimização de parâmetros: A escolha dos parâmetros RSI e do ciclo EMA tem um grande impacto na eficácia da estratégia. A otimização deve ser testada repetidamente com base nos dados históricos e os melhores parâmetros devem ser escolhidos.

  4. Risco de otimização excessiva: pode haver otimização excessiva na busca da combinação ideal de parâmetros, o que pode levar a uma sobre-conformidade. Os testes de estabilidade devem ser feitos para evitar que os resultados sejam bons durante o teste, mas falhem no disco.

  5. Risco de frequência de negociação: se o sinal de reversão ocorrer com muita frequência, isso pode levar a um número excessivo de negociações. Os parâmetros do ciclo RSI podem ser ajustados adequadamente para controlar a frequência de negociação.

Otimização de Estratégia

A estratégia também pode ser melhorada em:

  1. Avaliação da qualidade das ações: pode combinar os indicadores fundamentais das ações, selecionando apenas ações de melhor qualidade para operações estratégicas.

  2. Combinação com outros indicadores: outros indicadores, como MACD, KD, etc., podem ser introduzidos para validar o sinal de reversão e aumentar a confiabilidade da estratégia.

  3. Parâmetros de ajuste dinâmico: os parâmetros do RSI e o ciclo EMA podem ser ajustados dinamicamente de acordo com as mudanças no ambiente do mercado, aumentando a adaptabilidade da estratégia.

  4. Optimizar o timing de admissão: Otimizar ainda mais o momento específico de admissão, por exemplo, aguardando a confirmação do retorno para a admissão.

  5. Estratégia de stop-loss: estabeleça um nível de stop-loss razoável para evitar o retorno dos lucros.

  6. Considere os custos de transação: Avalie o impacto de pontos de transação e outros custos de transação na estratégia.

  7. Considere a volatilidade dos preços das ações: apenas ações com grandes flutuações como alvo estratégico, o que torna a estratégia mais confiável.

Resumir

A estratégia de RSI reversão de ruptura integra tendência e sinal de reversão, entrar em campo antes de ações de reversão, para capturar grandes oportunidades. A frequência de negociação da estratégia é moderada, pode controlar eficazmente o risco.

Código-fonte da estratégia
/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jocker.soad

//@version=4
// strategy("My Script", overlay=true, initial_capital=10000, default_qty_value=100)
min = input(title="Valor minimo de entrada", defval=25)
qtdAtivos = input(title="Quantidade de ações", defval=1)

// overBuyLine = hline(80)
// overSellLine = hline(min)

var comprado = false
var valorComprado = 0.0
var qtdDiasComprado = 0
var valorLucro = 0.0

valueRsi = rsi(close, 2)
valueSma = sma(close, 200)
valueEma = ema(close, 200)
lastHighPrice = high[2]

buyValidation = valueRsi <= min
sellValidation = close >= lastHighPrice



// plot(lastHighPrice, trackprice=true, offset=-99999, color=color.olive, linewidth=3, style=plot.style_area)
// plot(valueRsi)
// plot(valueSma)
// plot(valueEma)
// plotshape(sellValidation, style=shape.triangledown, color=color.blue)
// plotshape(comprado, style=shape.triangledown, color=color.blue)

startDate = input(title="Inicio Dia", type=input.integer, defval=1, minval=1, maxval=31)
startMonth = input(title="Inicio Mes", type=input.integer, defval=1, minval=1, maxval=12)
startYear = input(title="Inicio Ano", type=input.integer, defval=2018, minval=1800, maxval=2100)

endDate = input(title="Final Dia", type=input.integer, defval=1, minval=1, maxval=31)
endMonth = input(title="Final Mes", type=input.integer, defval=12, minval=1, maxval=12)
endYear = input(title="Final Ano", type=input.integer,  defval=2020, minval=1800, maxval=2100)

inDateRange = true

if inDateRange

    if close >= valueEma
    
        if comprado == false and buyValidation
            qtdDiasComprado := 0
            comprado := true
            valorComprado := close
            strategy.order("buy", true, qtdAtivos, when=buyValidation)
        
        if sellValidation and comprado == true
            comprado := false
            valorLucro := valorLucro + (close - valorComprado)
            valorComprado := 0
            strategy.order("sell", false, qtdAtivos, when=sellValidation)
        
        if comprado == true and sellValidation == false
            qtdDiasComprado := qtdDiasComprado + 1

// plot(valorLucro, color=color.lime)