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

Autora:ChaoZhang, Data: 2023-11-14 16:49:02
Tags:

img

Resumo

A estratégia de negociação de reversão do RSI é uma estratégia quantitativa de negociação que identifica condições de sobrecompra e sobrevenda usando o indicador Relative Strength Index (RSI) e entra em negociações longas ou curtas em pontos de reversão.

Estratégia lógica

A estratégia baseia-se na seguinte lógica central:

  1. O RSI pode refletir se o mercado atual está sobrecomprado ou sobrevendido.

  2. Quando o RSI entra na zona de sobrecompra (geralmente considerado como RSI acima de 70), ele indica um forte impulso de alta. Haverá mais traders mantendo posições de alta por muito tempo e o espaço para continuar em alta é limitado. O preço pode reverter para baixo para corrigir a condição de sobrecompra.

  3. Quando o RSI entra na zona de sobrevenda (geralmente abaixo de 30), ele indica um forte ímpeto de baixa. Haverá mais traders em posições de baixa e o espaço para continuar a baixa é limitado. O preço pode reverter para cima para corrigir a condição de sobrevenda.

  4. Portanto, podemos definir o limiar de sobrecompra do RSI em 90 e o limiar de sobrevenda em 10.

Especificamente, a lógica estratégica é:

  1. Calcular o valor do indicador RSI, utilizando o preço de fechamento como fonte do RSI, com uma duração de 2 períodos.

  2. Quando o RSI cruza acima de 90, indica entrar na zona de sobrecompra, vá curto.

  3. Definir um stop loss para cada negociação.

  4. Se o RSI continuar em níveis mais extremos de sobrecompra / sobrevenda, ajuste o trailing stop para dar mais espaço.

  5. Considere tirar lucro quando o RSI voltar para a zona neutra em torno de 50.

  6. Se não houver reversão após 3 bares, feche a negociação para evitar perdas ilimitadas.

Vantagens

A estratégia de reversão do RSI tem as seguintes vantagens:

  1. Usando o RSI para identificar condições de sobrecompra/supervenda pode efetivamente capturar pontos de reversão do mercado.

  2. As estratégias de reversão têm a vantagem sistemática de continuar a seguir as tendências.

  3. O mecanismo de stop loss controla efetivamente a perda em negociações individuais.

  4. O trailing stop pode ajustar de forma flexível a distância de parada com base no movimento contínuo do preço, equilibrando entre manter a parada desencadeada e capturar mais diferença de preço.

  5. A saída forçada após barras fixas garante que os negócios sem reversão oportuna não levem a perdas ilimitadas.

  6. Os parâmetros ajustáveis do RSI podem adaptar a estratégia a diferentes mercados.

Riscos

A estratégia apresenta igualmente os seguintes riscos:

  1. Como uma estratégia de indicador técnico, o desempenho de reversão do RSI pode ter viés de ajuste da curva.

  2. Embora o RSI possa identificar condições de sobrecompra/supervenda, ele não pode prever o momento exato da reversão.

  3. Os níveis de sobrecompra/supervenda do RSI podem não estar razoavelmente definidos.

  4. Probabilidade de o preço fazer outra reversão antes de alcançar o take profit.

  5. A distância de stop loss fixada excessivamente apertada ou demasiado larga pode tornar as paradas ineficazes.

  6. As comissões de negociação também podem afetar a rentabilidade da estratégia.

Melhorias

A estratégia pode ser reforçada das seguintes formas:

  1. Testar diferentes parâmetros do RSI para encontrar combinações ideais, tais como comprimento do RSI, níveis de limiar de sobrecompra/supervenda.

  2. Adicionar mais filtros para evitar falsos sinais de reversão, como combinar com o MACD etc. para aumentar a probabilidade.

  3. Otimizar a estratégia de stop loss, por exemplo, paradas baseadas em ATR, distâncias ajustadas à volatilidade.

  4. Otimizar a estratégia de lucro, como mudar de lucro, trazendo mais diferença de preço.

  5. Adicionar modelos de aprendizado de máquina para ajudar a julgar reversões e melhorar a taxa de sucesso.

  6. Teste estratégia em diferentes mercados e instrumentos para encontrar os melhores parâmetros para negociação real.

  7. Combine com o volume de negociação, apenas considere sinais de reversão quando o volume aumenta.

Conclusão

Em conclusão, a estratégia de reversão do RSI aproveita a força do RSI para identificar condições de mercado e negociações sobrecompradas e sobrevendidas em pontos de reversão, proporcionando retornos sistemáticos decentes. Mas também tem riscos que precisam ser abordados através de parâmetros do RSI e otimização de stop/take profit e filtragem com outros indicadores. Se executado corretamente, a reversão do RSI pode formar um componente eficaz em um sistema de negociação quantitativo.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Copyright (c) 2021-present, RicMos
//study("RSI2 Sell Strategy, overlay=true)

//------------------------------------------USER VARIABLE DEFINITIONS --------------------------------------
var float lots = 0.1
//var float fixed_commission = 0.6 // forex pairs commission  value USD per position size two sides
var float fixed_commission = 10 // BTC commission value USD per position size two sides
//var float money = 10000 //forex pairs position size
var float money = 0.3333 //BTC position size



strategy(title="RSI2 Sell Strategy", commission_type=strategy.commission.cash_per_order, calc_on_every_tick =true, commission_value = fixed_commission/2, overlay=true, default_qty_value= lots*100000, initial_capital=1000, currency = "USD", calc_on_order_fills = false)
len = input(2, minval=1, title="RSI Length")
src = input(close, "RSI Source", type = input.source)
upRsi = rma(max(change(src), 0), len)
downRsi = rma(-min(change(src), 0), len)
rsi = downRsi == 0 ? 100 : upRsi == 0 ? 0 : 100 - (100 / (1 + upRsi / downRsi))
var color buyColor = color.blue
var color sellColor = color.red


plotshape(rsi <= 10 ? low : na, title="Arrow Up", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=buyColor)
plotshape(rsi >= 90 ? high : na, title="Arrow Down", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=sellColor)


// long = rsi <= 10 
// var float longsl = 0
// var int long_ts_points = 0

// if long
//     longsl:= low
//     long_ts_points := 200
    
// if rsi >= 70
//     long_ts_points := 100
// else if rsi >= 80
//     long_ts_points := 80


// plot (longsl)
// var int barsPassed = 0
// barsPassed := barssince(long)
// if long
//     strategy.entry("long", long = strategy.long, qty = 10000, stop = high)
// strategy.exit("slLo", from_entry="long", stop = longsl-0.0002, trail_points = long_ts_points )
// //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
// strategy.cancel_all(barsPassed > 3  and not long)


short = rsi >= 90 
var float shortsl = 0
var int short_ts_points = 0
//var bool stClose = 0

if short
    shortsl:= high
    short_ts_points := 200
    
if rsi <= 30
    short_ts_points := 100
    //stClose :=1
else if rsi <= 20
    short_ts_points := 80 
//else
    //stClose := 0

plot (shortsl)
var int barsPassedSh = 0
barsPassedSh := barssince(short)
if short
    strategy.entry("short", long = strategy.short, qty = money, stop = low)
strategy.exit("slSh", from_entry="short", stop = shortsl, trail_points = short_ts_points, trail_offset =20 )
//strategy.close("short", comment="rsi<30", when = stClose)


//strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
strategy.cancel_all(barsPassedSh > 3  and not short)










Mais.