Tendência do RSI seguindo a estratégia

Autora:ChaoZhang, Data: 2023-11-07 16:33:43
Tags:

img

Resumo

Esta estratégia é projetada com base no indicador Relative Strength Index (RSI) para identificar situações de sobrecompra e sobrevenda e seguir a tendência.

Estratégia lógica

Esta estratégia usa o indicador RSI para identificar condições de sobrecompra e sobrevenda no mercado. O RSI é calculado com base nas mudanças de preço durante um determinado período de tempo. Um RSI abaixo de 30 é considerado sobrevendido, enquanto um RSI acima de 70 é considerado sobrecomprado.

Especificamente, esta estratégia define primeiro os parâmetros do RSI length=14, overbought=70, oversold=30. Ele então calcula o valor do RSI vrsi com base no preço de fechamento. Quando o vrsi cruza acima da linha de overbought ou abaixo da linha de oversold, ele desencadeia uma negociação longa ou curta, em conformidade. Após entrar no comércio, um stop loss de ticks etoroStopTicks é definido. As posições serão fechadas quando o stop loss for desencadeado dentro da janela de negociação.

Deste modo, a estratégia é capaz de seguir a tendência principal do mercado - ir longo em situações de sobrevenda e ir curto em situações de sobrecompra.

Vantagens

  • Utilize o RSI para identificar condições de mercado de sobrecompra/supervenda para capturar a tendência
  • Flexível janela de backtesting para testes em diferentes períodos de tempo
  • Estabelecimento razoável de stop loss para controlar as perdas de transações individuais

Riscos

  • A divergência do RSI pode gerar sinais falsos
  • A perda estática não consegue adaptar-se às flutuações do mercado
  • Difícil de identificar a inversão da tendência, pode levar a transacções reversas

Soluções:

  • Adicionar indicadores de filtro para evitar entradas erradas com base em sinal RSI falso
  • Stop loss dinâmico para acompanhar o movimento do mercado em tempo real
  • Adicionar ferramentas de avaliação de tendências para evitar negociações reversas

Melhoria

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros do RSI para melhor desempenho

Teste diferentes períodos de RSI e níveis de sobrecompra/supervenda para encontrar parâmetros ideais e reduzir os falsos sinais.

  1. Adicionar ferramentas de avaliação de tendências para evitar negociações contra tendências

Adicione MA, MACD para julgar a direção da tendência e evitar sinais errados em pontos de virada.

  1. Perda de parada dinâmica

Utilize o ATR para definir o stop loss adaptativo para melhor acompanhamento das flutuações do mercado.

  1. Melhorar as regras de entrada

Adicione outras condições como ruptura, aumento de volume ao sinal RSI para melhorar a precisão de entrada.

Conclusão

A estratégia capta a tendência identificando situações de sobrecompra e sobrevenda usando o RSI. Em comparação com as estratégias tradicionais de rastreamento stop, tem a vantagem de sincronizar o mercado com indicadores. No entanto, problemas como a divergência do RSI e a incapacidade de detectar a reversão da tendência precisam ser abordados.


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

//@version=3

strategy("RSI Etoro Strategy", overlay=true, max_bars_back=2000)
// To use:
// Capital = capital * leverage
// Slippage Ticks: 3, 5 ? (Mainly for spread)
// etoroStopTicks: Set it accordingly to the stock (to corresponds to etoro default of 50 % for exemple...)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 1995)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 1995)


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
etoroStopTicks = input( 120 )
// 120 because it is approximatively the number of ticks for default SL of 50% at x5 leverage for copper (no fee)...
price = close

vrsi = rsi(price, length)

if (not na(vrsi))
    if (crossover(vrsi, overSold))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE", when = window())
    if (crossunder(vrsi, overBought))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE", when = window())
strategy.exit("exit SE", "RsiSE", loss=etoroStopTicks, when = window())
strategy.exit("exit LE", "RsiLE", loss=etoroStopTicks, when = window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mais.