Estratégia de negociação quantitativa baseada em regressão linear RSI


Data de criação: 2024-01-24 11:35:19 última modificação: 2024-01-24 11:35:19
cópia: 0 Cliques: 770
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa baseada em regressão linear RSI

Visão geral

A estratégia é baseada no design do indicador RSI de regressão linear. A estratégia gera sinais de compra e venda através do cálculo do cruzamento da regressão linear RSI e EMA. A estratégia oferece simultaneamente duas opções de lógica de compra, que podem ser selecionadas conforme necessário.

Princípio da estratégia

A estratégia primeiro calcula um retorno linear de 200 ciclos de duração, em seguida, com base nos resultados do retorno linear, calcula o RSI de 21 ciclos. Em seguida, calcula o EMA de 50 ciclos. Quando o RSI atravessa o EMA, gera um sinal de compra. Quando o RSI atravessa o EMA, gera um sinal de venda.

A estratégia oferece duas lógicas de compra:

  1. Comprar quando o RSI usa a EMA
  2. Comprar quando o RSI está acima da EMA e acima da linha de compra

A lógica de compra pode ser escolhida de acordo com a situação do mercado.

Análise de vantagens

A estratégia combina os benefícios da regressão linear do RSI e do EMA para efetivamente eliminar parte do ruído dos preços e produzir um sinal de negociação mais confiável.

O RSI de retorno linear é mais indicador de tendência, enquanto a EMA ajuda a encontrar pontos de reversão. A combinação de ambos pode ser usada para encontrar oportunidades de reversão na tendência, formando uma estratégia de reversão média.

A estratégia oferece duas opções de lógica de compra, que podem ser ajustadas com mais flexibilidade de acordo com a fase do mercado. Por exemplo, a primeira lógica pode ser escolhida quando a tendência é evidente, a segunda pode ser escolhida em caso de turbulência.

Análise de Riscos

A estratégia depende principalmente da relação entre o RSI e a EMA, e se a relação entre os dois mudar, isso pode levar a um erro no sinal de negociação. Este é o principal ponto de risco.

Além disso, o RSI e a EMA, como indicadores em si mesmos, também possuem um certo atraso, o que pode levar a um certo atraso nas compras e vendas, impedindo a captura perfeita dos pontos de inflexão. Isso também traz um certo nível de risco real.

Para reduzir o risco, pode-se ajustar adequadamente os parâmetros de comprimento do RSI e do EMA, otimizando a combinação entre os dois. Esta unidade de forex também deve ser moderadamente controlada, evitando perdas individuais excessivas.

Direção de otimização

A estratégia pode ser otimizada em várias direções:

  1. Optimizar os parâmetros de comprimento de regressão linear RSI e EMA para encontrar a melhor combinação de parâmetros
  2. Adicionar filtros de outros indicadores, como MACD, Brinks, etc., para melhorar a qualidade do sinal
  3. Combinação de indicadores de volatilidade e gestão de posições ajustadas
  4. Parâmetros de otimização automática usando métodos de aprendizagem de máquina

Resumir

Esta estratégia baseia-se em uma regressão linear RSI e EMA, criando uma estratégia de reversão média para encontrar oportunidades de reversão dentro do intervalo de liquidação através de um cruzamento de RSI e EMA. A estratégia oferece simultaneamente duas opções de lógica de compra disponíveis, que podem ser flexíveis para responder a diferentes situações de mercado.

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

//@version=4
strategy("Linear RSI")

startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() => true

//inputs
length = input(defval=200, minval=1, title="LR length")
length2 = input(defval=21, minval=1, title="RSI length")
ema_fast = input(defval=50, minval=1, title="EMA")
lag = 0

overBought = input(50)
overSold = input(50)


//rsi
src = close
Lr = linreg(src, length, lag)
rsi = rsi(Lr, length2)
ema = ema(rsi, ema_fast)

plot(rsi, color = rsi > overBought ? color.green : rsi < overSold ? color.red : color.silver)
plot(overBought, color=color.purple)
plot(overSold, color=color.purple)
plot(ema, color=color.blue)

first_type = input(true, title="Use first logic?")
second_type =  input(false, title="Use second logic?")

long_condition = (first_type ? crossover(rsi, ema) and _testPeriod() : false) or (second_type ? rsi > ema and rsi > overBought and _testPeriod() : false)
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition = crossunder(rsi, ema)
strategy.close('BUY', when=short_condition)