Estratégia de negociação quantitativa baseada no índice de análise de tendências

Autora:ChaoZhang, Data: 2023-12-12 10:40:52
Tags:

img

Resumo

A ideia central desta estratégia é usar a inclinação da média móvel para julgar a tendência do mercado e construir um índice de análise de tendências (TAI) como sinal de negociação. Quando o preço está em tendência, a inclinação da média móvel aumenta. Quando o preço está em uma zona sem tendência, a inclinação da média móvel diminui. O aumento do índice de análise de tendências indica o início de uma tendência, enquanto a diminuição significa o fim da tendência.

Estratégia lógica

A estratégia primeiro calcula a média móvel simples (MA de X dias) do preço. Em seguida, calcula o valor mais alto e mais baixo desta média móvel nos últimos dias Y para obter a faixa de flutuação. Finalmente, comparando essa faixa de dias Y com o preço, ela se converte em um indicador padronizado entre 0-1, ou seja, o índice de análise de tendências. Tomando posição longa quando o índice está acima de um limiar e posição curta quando abaixo de outro limiar.

Análise das vantagens

As vantagens desta estratégia são as seguintes:

  1. Detecção eficaz das tendências de médio e longo prazo através da avaliação da inclinação da MA
  2. Construção de um índice padronizado para um sinal comercial mais claro
  3. Parâmetros de MA e de avaliação da tendência personalizáveis para diferentes ambientes de mercado
  4. Opções de negociação reversa para acompanhamento ou cobertura de outras estratégias

Análise de riscos

Há também alguns riscos:

  1. Tendência a sinais errados durante o mercado limitado por intervalo
  2. Falta de pontos de inversão da tendência se os parâmetros MA forem definidos de forma inadequada
  3. Falta de tendências fracas se os parâmetros de normalização não forem adequadamente definidos
  4. Aumento das perdas no reverso da negociação

Soluções:

  1. Sinais de filtro com outros indicadores
  2. Optimize os parâmetros para encontrar a melhor combinação
  3. Ajustar o limiar dos parâmetros de normalização
  4. Utilize com cuidado o reverse trading

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Combinar outros indicadores como BOLL para tornar os sinais mais confiáveis
  2. Adicionar stop loss para controlar perda única
  3. Otimizar os dias de MA para se adequar às características em diferentes prazos
  4. Parâmetros de limiar óptimo do comboio
  5. Adicionar o modelo ML para a probabilidade de tendência para auxiliar a negociação

Conclusão

Em resumo, esta é uma estratégia de tendência de médio a longo prazo baseada na inclinação da média móvel. Ela pode efetivamente capturar tendências, mas também tem alguns riscos de sinal falso. Combinando com outros indicadores, adicionando stop loss, otimização de parâmetros, etc., a estratégia pode ser mais robusta.


//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/12/2017
// In essence, it is simply the standard deviation of the last x bars of a 
// y-bar moving average. Thus, the TAI is a simple trend indicator when prices 
// trend with authority, the slope of the moving average increases, and when 
// prices meander in a trendless range, the slope of the moving average decreases.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Trend Analysis Index", shorttitle="TAI")
AvgLen = input(28, minval=1)
TAILen = input(5, minval=1)
TopBand = input(0.11, step=0.01)
LowBand = input(0.02, step=0.01)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xPrice = close
xSMA = sma(xPrice, AvgLen)
xHH = highest(xSMA, TAILen)
xLL = lowest(xSMA, TAILen)
nRes = (xHH - xLL) * 100 / xPrice
pos = iff(nRes > TopBand, 1,
       iff(nRes < LowBand, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="TAI")


Mais.