Estratégia de negociação bacana com base no indicador RSI


Data de criação: 2024-01-25 12:23:39 última modificação: 2024-01-25 12:23:39
cópia: 1 Cliques: 640
1
focar em
1617
Seguidores

Estratégia de negociação bacana com base no indicador RSI

Visão geral

Esta estratégia baseia-se em um indicador relativamente forte e fraco (RSI) e projetou uma estratégia de investimento quantitativa para a negociação do índice Nifty. A estratégia usa o indicador RSI para identificar oportunidades de sobrevenda e sobrevenda, alcançar preços baixos e baixos e buscar lucros excedentes.

Princípio da estratégia

A estratégia define o RSI de dois períodos como um sinal de negociação. Quando o RSI ultrapassa 20, faça mais; Quando o RSI ultrapassa 70, leve. Assim, é possível capturar oportunidades de correção de curto prazo do índice.

Os princípios são: quando o RSI é inferior a 20, pertence a um estado de supervenda, indicando que o ativo está subvalorizado, indicando um retorno iminente; quando o RSI é superior a 20, faça mais; quando o RSI é superior a 70, pertence a um estado de supercompra, indicando que o ativo é supervalorizado, indicando um retorno iminente; quando o RSI é inferior a 70, equilibre a posição.

Análise de vantagens

Trata-se de uma estratégia quantitativa que utiliza indicadores para identificar oportunidades de short-term overbought e oversold. Comparada com estratégias de arbitragem estatística e de aprendizado de máquina complexas, a estratégia apresenta vantagens como:

  1. Princípios simples, claros, fáceis de entender e verificar
  2. Menos parâmetros de indicadores, fácil otimização e ajuste
  3. Buscar lucros extras de curto prazo, de acordo com o conceito de transações transversais
  4. Períodos de negociação personalizáveis para atender a diferentes expectativas

Análise de Riscos

A estratégia tem os seguintes riscos:

  1. Não conseguem lidar com as tendências de longo prazo e são capazes de perder o cenário geral.
  2. Excesso de dependência da otimização de parâmetros pode ser um risco de sobre-ajuste
  3. Mecanismos sem perdas que não controlam os prejuízos de forma eficaz
  4. Frequência de transações, que afeta o tempo de manutenção e gera mais taxas de transação

Para controlar os riscos acima mencionados, pode-se otimizar a partir dos seguintes aspectos:

  1. Indicadores de longo prazo, combinados com tendências
  2. Análise Walk Forward para evitar a sobre-adaptação
  3. Configure o ponto de parada e o tempo de parada
  4. Ajustar adequadamente os parâmetros de negociação para controlar a frequência de negociação

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar os parâmetros do RSI para encontrar a combinação ideal de parâmetros
  2. Aumentar o mecanismo de suspensão de perdas e controlar a retirada máxima
  3. Indicadores de tendências de longo prazo combinados com a média móvel
  4. Adição de módulo de gerenciamento de posições para otimizar a distribuição de posições
  5. Adição de quantificação de copyright e ajuste automático de parâmetros

Resumir

Esta estratégia é baseada no indicador RSI para criar uma estratégia de negociação de curto prazo, usando o sinal de compra e venda de RSI para comprar e vender, buscando lucro excessivo. O princípio da estratégia é simples e fácil de implementar, mas há um certo grau de frequência de negociação, impossibilidade de identificar tendências de longo prazo.

Código-fonte da estratégia
/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI Strategy", overlay=true,pyramiding = 1000)
rsi_period = 2
rsi_lower = 20
rsi_upper = 70

rsi_value = rsi(close, rsi_period)
buy_signal = crossover(rsi_value, rsi_lower)
sell_signal = crossunder(rsi_value, rsi_upper)
current_date1 =  input(defval=timestamp("01 Nov 2009 00:00 +0000"), title="stary Time", group="Time Settings")

current_date =  input(defval=timestamp("01 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings")
investment_amount = 100000.0
start_time = input(defval=timestamp("01 Dec 2018 00:00 +0000"), title="Start Time", group="Time Settings") 
end_time = input(defval=timestamp("30 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings")

in_time = time >= start_time and time <= end_time
// Variable to track accumulation.
var accumulation = 0.0
out_time = time >= end_time 

if (buy_signal )
    strategy.entry("long",strategy.long,qty= 1) 
    accumulation += 1
if (out_time)
    strategy.close(id="long")

plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown)

plot(rsi_value, title="RSI", color=color.blue)
hline(rsi_lower, title="Lower Level", color=color.red)



plot(strategy.opentrades, style=plot.style_columns, 
     color=#2300a1, title="Profit first entry")
plot(strategy.openprofit, style=plot.style_line, 
     color=#147a00, title="Profit first entry")
// plot(strategy.position_avg_price, style=plot.style_columns, 
//      color=#ca0303, title="Profit first entry")
// log.info(strategy.position_size * strategy.position_avg_price)