Estratégia de ruptura do intervalo do RSI

Autora:ChaoZhang, Data: 2023-10-11 15:54:11
Tags:

Resumo

A estratégia de ruptura do intervalo do RSI é uma estratégia típica de tendência, usando o índice de força relativa (RSI) como o principal indicador técnico para procurar oportunidades de ruptura quando o RSI está em níveis de sobrecompra ou sobrevenda, com o objetivo de seguir a tendência.

Estratégia lógica

A estratégia baseia-se principalmente no indicador RSI para determinar os níveis de sobrecompra e sobrevenda no mercado. A fórmula de cálculo do RSI é: RSI = (Média de Valor / (Média de Valor + Média de Valor)) x 100. O Valor Médio é a média móvel simples das amplitudes de close-up nos últimos N dias. O Valor Médio Down é a média móvel simples das amplitudes de close-down nos últimos N dias.

Quando o RSI é superior à linha de sobrecompra (default 80), indica que o mercado está em estado de sobrecompra. Quando o RSI é inferior à zona de sobrevenda (default 35), indica que o mercado está em estado de sobrevenda. A estratégia procura oportunidades curtas quando o RSI quebra a linha de sobrecompra e oportunidades longas quando o RSI quebra a zona de sobrevenda.

Especificamente, a estratégia usa duas linhas SMA para determinar a tendência do indicador RSI. Quando a linha SMA mais rápida quebra a linha SMA mais lenta, enquanto o RSI atravessa a zona de sobrevenda, vá longo. Quando a linha SMA mais rápida quebra a linha SMA mais lenta, enquanto o RSI quebra a linha de sobrecompra, vá curto. A estratégia também define stop loss e take profit lines para controlar riscos.

Vantagens

  • Utilize o indicador RSI para determinar os níveis de sobrecompra e sobrevenda, com certa capacidade de julgamento da tendência
  • Combinado com linhas de SMA duplas para evitar falsas rupturas causadas pela oscilação do RSI
  • Configurar stop loss e take profit para controlar perdas únicas
  • Entrada por arrombamento, sem abertura e fechamento frequentes

Riscos e soluções

  • Indicador RSI tem efeito de atraso, pode perder pontos de reversão da tendência
    • Ajustar adequadamente os parâmetros do RSI para otimizar a sensibilidade do indicador
  • Configurações de zona de sobrecompra e sobrevenda inadequadas, aumento da dificuldade de variação de lucro
    • Ajustar os parâmetros de acordo com os diferentes mercados para garantir uma configuração razoável
  • Ponto de stop-loss muito próximo, fácil de ser parado por flutuação durante a noite
    • Ampliar a distância de perda de parada adequadamente para evitar ficar preso
  • O setor de lucro é muito pequeno, incapaz de capturar completamente as corridas de tendência
    • Ajustar a linha de lucro de forma flexível com base na volatilidade do mercado

Orientações de otimização

  • Combinar com outros indicadores para determinar o calendário de entrada, como KDJ, MACD, etc., para evitar problemas de atraso do RSI
  • Adicionar o julgamento da tendência principal para evitar a negociação contra a tendência
  • Otimizar as estratégias de stop loss e take profit, como trailing stop, move take profit, etc.
  • Distinguir as definições dos parâmetros para diferentes produtos, determinar parâmetros razoáveis com base nas características do mercado
  • Adicionar estratégias de gestão de posições, ajustar posições através da adição de ordens

Resumo

A estratégia de ruptura de faixa do RSI é uma estratégia típica de tendência de seguimento geral. Determina os sinais de negociação através do indicador RSI, filtra os sinais com linhas duplas de SMA e define stop loss e take profit para controlar riscos.


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

//@version=4

//strategy("Strategy RSI | Fadior", shorttitle="Strategy RSI", pyramiding=10, calc_on_order_fills=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100, overlay=false)
 
len = input(3, minval=1, title="RSI Length") 
threshLow = input(title="Treshold Low", defval=35)
threshHigh = input(title="Treshold High", defval=80)
rsiLength1 = input(title="RSI Smoothing 1", defval=3)
rsiLength2 = input(title="RSI Smoothing 2", defval=5)
SL = input(title="Stop loss %", type=float, defval=.026, step=.001)
TP = input( defval=300)

// 3 40 70 2
// 14 40 70 2 16 0.05 50

src = close
  
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

plot(sma(rsi,rsiLength2), color=orange)
plot(sma(rsi,rsiLength1), color=green)

band1 = hline(threshHigh)
band0 = hline(threshLow)
fill(band1, band0, color=purple, transp=90)

strategy = input(type=bool, title="Long only ?", defval=true)
strategy.risk.allow_entry_in(strategy ? strategy.direction.long : strategy.direction.all)

longCondition = sma(rsi,rsiLength1) < threshLow and sma(rsi,rsiLength2) > sma(rsi,rsiLength2)[1] 

if (longCondition)
    strategy.entry("Long", strategy.long) //, qty=10)
    strategy.exit("Close Long", "Long", stop=src-close*SL, profit=TP)
    
shortCondition = sma(rsi,rsiLength1) > threshHigh and sma(rsi,rsiLength2) < sma(rsi,rsiLength2)[1]
if (shortCondition)
    strategy.entry("Short", strategy.short) //, qty=10)
    strategy.exit("Close Short", "Short") //, stop=src-close*SL, profit=TP)


Mais.