Estratégia de negociação de ETF de rastreamento da tendência de inversão do RSI

Autora:ChaoZhang, Data: 2024-01-22 17:15:18
Tags:

img

Resumo

Esta estratégia é uma estratégia de negociação de ETF de rastreamento de tendência de reversão baseada no Índice de Força Relativa (RSI). Julga as condições de sobrecompra e sobrevenda de curto prazo através do indicador RSI para fazer entradas e saídas de reversão. Enquanto isso, usa a média móvel de 200 dias para determinar a direção geral da tendência.

Princípio da estratégia

A lógica central desta estratégia é baseada no princípio de reversão do indicador RSI. O indicador RSI calcula a amplitude média de aumentos e quedas ao longo de um período de tempo para julgar se a variedade de negociação está em um estado de sobrecompra ou sobrevenda. Um RSI acima de 70 representa condições de sobrecompra, enquanto um RSI abaixo de 30 representa condições de sobrevenda. Neste ponto, uma tendência de reversão pode ocorrer.

Esta estratégia utiliza este princípio, definindo o gatilho de compra quando o RSI de hoje está abaixo do parâmetro ajustávelTodaysMinRSI, e o RSI há 3 dias está abaixo do parâmetro ajustávelDay3RSIMaxIsso indica que o preço pode estar em uma região de sobrevenda a curto prazo e que é provável um rebote. Também requer uma tendência de queda do RSI nos últimos 3 dias, ou seja, um declínio contínuo do RSI antes de comprar para evitar falhas.

O mecanismo de saída da estratégia é quando o indicador RSI excede novamente o valor limiar do parâmetro ajustávelExit RSI, considera-se que o rebote terminou e as posições devem ser fechadas nesse momento.

A estratégia também introduz a média móvel de 200 dias para julgar a direção geral da tendência.

Análise das vantagens

  • Utilize o indicador RSI para determinar zonas de sobrecompra e sobrevenda onde é provável um rebote.
  • Incorpore linha de 200 dias para determinar a direção da tendência principal, o que ajuda a evitar a negociação de contra-tendência.
  • O princípio de negociação de reversão do RSI é clássico e confiável com alta taxa de sucesso.
  • Os parâmetros ajustáveis proporcionam flexibilidade que pode ser otimizada para diferentes variedades.

Riscos e soluções

  • O indicador RSI tem a possibilidade de falhas, incapaz de evitar completamente a perda de negócios.
  • O período de detenção pode ser encurtado com o stop loss oportuno.
  • As configurações de parâmetros inadequadas podem levar a uma agressividade excessiva ou a uma conservadoridade excessiva, perdendo oportunidades comerciais.

Orientações de otimização

  • Incorporar outros indicadores como KDJ, Bollinger Bands etc. para formar combinações de indicadores, melhorando a precisão do sinal.
  • Adicionar estratégias de stop loss móveis para tornar o nível de stop loss dinâmico, reduzindo as perdas.
  • Adicionar módulos de dimensionamento de posições ou gestão de fundos para controlar a exposição ao risco por transação.
  • Otimizar parâmetros e backtest para diferentes variedades para chegar a conjuntos de parâmetros adequados a cada variedade.

Resumo

Esta estratégia utiliza os pontos de entrada e saída clássicos do RSI julgando zonas de sobrecompra e sobrevenda para negociações de reversão.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 3m
basePeriod: 1m
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/
// @version = 5
// Author = TradeAutomation


strategy(title="R3 ETF Strategy", shorttitle="R3 ETF Strategy", overlay=true)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2012 05:00 +0000'), title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00 +0000'), title='End Time')
InDateRange = true

// Calculations and Inputs //
RSILen = input.int(2, "RSI Length")
RSI = ta.rsi(close, RSILen)
TodaysMinRSI = input.int(10, "Today's Min RSI for Entry", tooltip = "The RSI must be below this number today to qualify for trade entry")
Day3RSIMax = input.int(60, "Max RSI 3 Days Ago for Entry", tooltip = "The RSI must be below this number 3 days ago to qualify for trade entry")
EMA = ta.ema(close, 200)

// Strategy Rules //
Rule1 = close>ta.ema(close, 200)
Rule2 = RSI[3]<Day3RSIMax and RSI<TodaysMinRSI
Rule3 = RSI<RSI[1] and RSI[1]<RSI[2] and RSI[2]<RSI[3] 
Exit = ta.crossover(RSI, input.int(70, "Exit RSI", tooltip = "The strategy will sell when the RSI crosses over this number"))

// Plot //
plot(EMA, "200 Day EMA")

// Entry & Exit Functions //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = Rule1 and Rule2 and Rule3)
//    strategy.close("Long", when = ta.crossunder(close, ATRTrailingStop))
    strategy.close("Long", when = Exit)
if (not InDateRange)
    strategy.close_all()
    

Mais.