Estratégia de negociação do intervalo do RSI

Autora:ChaoZhang, Data: 2023-11-06 16:12:23
Tags:

img

Resumo

A estratégia de negociação do intervalo RSI faz lucro negociando contra a tendência quando o RSI atinge níveis de sobrecompra ou sobrevenda.

Estratégia lógica

A estratégia calcula o indicador RSI para determinar se o preço atingiu níveis de sobrecompra ou sobrevenda. Especificamente, o período RSI é definido em 2 barras. A linha de sobrecompra é 91 e a linha de sobrevenda é 11. Um sinal curto é gerado quando o RSI cruza acima do nível de sobrecompra. Um sinal longo é gerado quando o RSI cruza abaixo do nível de sobrevenda. O tamanho da posição é definido em 5% do risco máximo por negociação.

Para controlar os riscos, um mecanismo de stop loss é implementado. Se o preço se mover 0,5% contra a posição longa após a abertura longa, a posição será fechada. Da mesma forma para a posição curta. Isso evita perdas excessivas quando o preço tende fortemente em uma direção.

Em resumo, a lógica central consiste em monitorizar o RSI em caso de sobrecompra/supervenda, negociar contra a tendência com base em níveis de RSI configurados e gerir os riscos através de stop loss.

Análise das vantagens

  • O RSI é um indicador comprovado para identificar os níveis de sobrecompra/supervenda.

  • A negociação contra os extremos encaixa na suposição de oscilação de preços em vez de tendência unidirecional.

  • O valor da posição em risco deve ser calculado em função da posição em risco.

  • Estrutura de backtesting simples e clara, fácil de compreender e modificar.

  • Parâmetros flexíveis do RSI e nível de stop loss adaptáveis às mudanças do mercado.

Análise de riscos

  • O RSI é um indicador de tendência, perdas contínuas podem ocorrer durante a tendência persistente em vez de preço limitado ao intervalo.

  • Parâmetros de RSI inadequados podem gerar mais sinais, mas com menor taxa de vitória.

  • O stop loss pode ser desencadeado por pequenos movimentos ou causar grandes perdas se não for definido corretamente.

  • A estratégia funciona melhor no mercado de intervalo, pode ter um desempenho inferior em cenários de tendências fortes.

  • O tamanho excessivo da posição pode aumentar as perdas.

Orientações de otimização

  • Combine o RSI com outros indicadores como o MACD para melhorar a precisão do sinal.

  • Pesquise comportamentos estatísticos do RSI com diferentes parâmetros para encontrar configurações ideais.

  • Ensaiar mecanismos de dimensionamento de posição dinâmica em backtests.

  • Usar o ATR para definir níveis de stop loss adaptativos.

  • Aplicar aprendizagem de máquina para descobrir combinações ótimas de parâmetros.

  • Explorar a combinação de outras estratégias de reversão da média com o RSI para construir sistemas robustos.

Resumo

A estratégia de negociação de intervalo do RSI faz negociações de reversão simples com base nos níveis de sobrecompra / sobrevenda do RSI e gerencia o risco através de stop loss. Funciona para mercados oscilantes de intervalo, mas tem limitações em cenários de tendência fortes. Parâmetros de ajuste fino, melhoria das regras de stop loss, combinando com outros indicadores e estratégias podem melhorar sua estabilidade e adaptabilidade.


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

//@version=5
strategy("Simple RSI Strategy", overlay=true)

var rsiLength = input(2, title = "rsi Length")
var float rsiBuyLevel = input(11, title = "What rsi level triggers a long")
var float rsiShortLevel = input(91, title = "What rsi level triggers a short")
var float maxRisk =  input(.05, title="Maximum risk/ trade")
var chartEntryStop = input(.005, title="Max Movment in the opposite direction / trade")
var float longEntryPrice = na
var float shortEntryPrice = na 
rsiValue = ta.rsi(close, rsiLength)

var float maxRiskValue = (strategy.equity * maxRisk) / chartEntryStop
var float maxRsi = 0

//Conditions


// Strategy Execution
if( close <= longEntryPrice-(longEntryPrice*chartEntryStop ))
    strategy.close("Long")

if( close >= shortEntryPrice+(shortEntryPrice*chartEntryStop ))
    strategy.close("Short")

if (rsiValue <= rsiBuyLevel and maxRsi == rsiShortLevel)
    maxRsi := rsiBuyLevel 
    strategy.close("Short")
    strategy.entry("Long", strategy.long)
    longEntryPrice := close
    
   
else if (rsiValue >= rsiShortLevel and maxRsi == rsiBuyLevel)
    maxRsi := rsiShortLevel
    strategy.close("Long")
    strategy.entry("Short", strategy.short)
    shortEntryPrice := close

else if (rsiValue >= rsiShortLevel )
    maxRsi := rsiShortLevel
    strategy.close("Long")

else if (rsiValue <= rsiBuyLevel )
    maxRsi := rsiBuyLevel
    strategy.close("Short")

Mais.