Estratégia de curto prazo de regressão linear e média móvel dupla


Data de criação: 2024-01-26 12:33:14 última modificação: 2024-01-26 12:33:14
cópia: 0 Cliques: 689
1
focar em
1617
Seguidores

Estratégia de curto prazo de regressão linear e média móvel dupla

Visão geral

Esta estratégia permite a operação de acompanhamento de linha curta através da combinação do indicador de regressão linear com a média móvel binária. A estratégia baseia-se em abrir uma posição quando o preço entra em alta e baixa e fechar uma posição quando o preço entra em baixa.

Princípio da estratégia

Esta estratégia julga a ruptura de preços principalmente por meio do indicador de regressão linear. O indicador de regressão linear é um trajeto ascendente e descendente calculado com base nos preços mais altos e mais baixos de um determinado período, usando a regressão linear. Quando o preço atravessa o trajeto superior ou inferior, consideramos um sinal de negociação.

Além disso, a estratégia também introduz uma média móvel binária para julgar a tendência intermédia. A média móvel binária pode responder mais rapidamente às mudanças de preço. Quando o preço se desloca da trajetória superior, se a média móvel binária já estiver acima do preço, indicando que está em uma tendência descendente, então estabelecemos uma posição aberta. Quando o preço reabsorve a trajetória superior ou quebra a média móvel binária, nós eliminamos a posição.

A estratégia inclui, em particular, os seguintes pontos:

  1. Computação de regressão linear em e fora de trajectória
  2. Cálculo de médias móveis binárias
  3. Estabelecer uma posição de fechamento quando o preço atravessa a linha de cima para baixo e a média móvel binária está acima do preço
  4. Quando o preço retorna a um patamar superior ou acima da média móvel de dois dígitos, a posição de fechamento é liquidada

Análise de vantagens

A estratégia tem as seguintes vantagens em relação a indicadores tradicionais, como a média móvel:

  1. Indicadores de regressão linear podem capturar mudanças de preço mais rapidamente e são mais eficazes como sinais de construção de estoque
  2. As médias móveis binárias são mais sensíveis às tendências e evitam falsas rupturas
  3. A combinação de indicadores duplos e condições pode filtrar alguns ruídos e tornar as negociações mais estáveis

Análise de Riscos

A estratégia também apresenta alguns riscos que devem ser lembrados:

  1. Os indicadores de regressão linear são sensíveis a parâmetros, e diferentes ciclos podem produzir resultados diferentes
  2. As médias móveis binárias podem desviar-se, com erros de avaliação
  3. Estratégias de ruptura podem aumentar o risco de deslizamento
  4. A tendência é para que as posições sejam fechadas frequentemente em situações de crise.

Para os riscos acima, podemos resolver por meio de métodos como otimização de parâmetros, parada rigorosa e flexibilização apropriada da amplitude de ruptura.

Direção de otimização

A estratégia também pode ser melhorada em alguns aspectos:

  1. Otimização do ciclo de regressão linear e do ciclo de médias móveis binárias para encontrar a melhor combinação de parâmetros
  2. Adicionar a amplitude da oscilação dos preços para evitar que os pequenos saltos de preço causem sinais errados
  3. Condições auxiliares, como aumento do volume de transações, para garantir a eficácia da ruptura
  4. Configurar o nível de parada para minimizar a perda individual
  5. Parâmetros de ajuste para variedades específicas

Resumir

Esta estratégia combina a utilização de um indicador de regressão linear e uma média móvel binária, com vantagens tanto na teoria quanto na prática. A estabilidade e a eficácia da estratégia podem ser melhoradas com a otimização contínua do ajuste. A estratégia é adequada para operações de linha curta e pode trazer um bom alfa para os comerciantes de quantificação.

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

//@version=4
strategy('LR&SSL_Short', overlay=true)
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(9999,1,1,0,0)
_testPeriod() => true

len = input(title="Period", defval=89)
smaHigh = linreg(high, len, 0)
smaLow = linreg(low, len, -1)
Hlv = 0.0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)



length = input(200, title="DEMA") 
d1 = ema(close, length)                                               
d2 = 2 * d1 - ema(d1, length)                                         
trendColour = d2 > d1 ? #AAFFAA : #FFAAAA 
dema=sma(d2,length) 

turnGreen = d2 > d1 and d2[1] <= d1[1]  
turnRed   = d2 <= d1 and d2[1] > d1[1]  

up =turnGreen 
down=turnRed 
  
plotshape(down, title="down", style=shape.triangledown,location=location.abovebar, color=color.red, transp=0, size=size.small) 
plotshape(up,  title="up", style=shape.triangleup,location=location.belowbar, color=color.green, transp=0, size=size.small) 
plot(dema, color = trendColour,linewidth=3 ,transp = 0)
bgcolor(close > dema ? color.green : color.red)

strategy.entry("short", strategy.short, when= crossunder(sslUp, sslDown) and dema > close and _testPeriod())
strategy.close("short", when = crossover(sslUp, sslDown) or crossover(close, dema))