Estratégia de extração de tendências de filtragem passa-banda


Data de criação: 2024-01-03 15:22:49 última modificação: 2024-01-03 15:22:49
cópia: 0 Cliques: 641
1
focar em
1621
Seguidores

Estratégia de extração de tendências de filtragem passa-banda

Visão geral

A estratégia de extração de tendências de ondas de correlação é uma estratégia de acompanhamento de tendências de ações baseada em um filtro de correlação. A estratégia usa uma média móvel ponderada por índices e ondas de correlação para processar a sequência de preços, extrair o componente de tendência do preço e usar certos parâmetros como sinal de posição de paz.

Princípio da estratégia

A estratégia primeiro constrói uma média móvel ponderada por índices duplos, controlando a duração e o deslizamento da média móvel por meio do ajuste dos parâmetros Length e Delta. Em seguida, usa um conjunto de transformações matemáticas para extrair o componente de tendência da sequência de preços e armazená-lo na variável xBandpassFilter.

Quando o xMean atravessa o nível definido pelo parâmetro Trigger, faz o overhead, e faz o overhead no momento em que ele atravessa. A sensibilidade da construção de armazém e do armazém pode ser controlada ajustando o nível do Trigger.

Análise de vantagens

  1. O uso de médias móveis de peso duplo indexado efetivamente elimina parte do ruído da sequência de preços, tornando a estratégia mais estável.
  2. O filtro de condução extrai apenas os componentes da tendência da sequência de preços, evitando a indução equivocada por situações de choque, tornando a estratégia mais estável e confiável.
  3. Os parâmetros de estratégia são menores, o risco é mais fácil de ajustar e controlar.

Análise de Riscos

  1. A estratégia tem um atraso no tempo e pode perder a oportunidade de uma rápida reversão de preços.
  2. As médias móveis ponderadas por índices duplos e os filtros de banda larga têm um efeito de filtragem de baixa frequência, filtrando os sinais de alta frequência e reduzindo a sensibilidade da estratégia.
  3. Se os parâmetros forem mal definidos, o efeito de filtragem será muito forte, podendo perder oportunidades de tendências mais fortes.

Pode-se melhorar o atraso com a redução apropriada dos parâmetros de comprimento e ajustar a sensibilidade da estratégia de controle de nível de gatilho.

Direção de otimização

  1. Pode-se considerar a inclusão de uma estratégia de stop loss para controlar as perdas individuais.
  2. A estabilidade da estratégia pode ser melhorada por meio de um sistema de dupla equilíbrio a curto e longo prazo.
  3. Os sinais de reversão podem ser avaliados em combinação com outros indicadores, como volume de transações no mercado, para evitar ser preso em situações de turbulência.
  4. Os parâmetros de otimização podem ser usados em aprendizagem de máquina ou algoritmos genéticos para tornar a estratégia mais estável e confiável.

Resumir

A estratégia é, em geral, mais estável e tem melhor desempenho em mercados de forte tendência. Pode ser otimizada de várias maneiras para manter um lucro estável em mais ambientes de mercado. A estratégia merece mais pesquisa e aplicação.

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

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/12/2016
// The related article is copyrighted material from Stocks & Commodities Mar 2010
//
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Extracting The Trend Strategy Backtest")
Length = input(20, minval=1)
Delta = input(0.5)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
hline(Trigger, color=blue, linestyle=line)
xPrice = hl2
beta = cos(3.1415 * (360 / Length) / 180)
gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
alpha = gamma - sqrt(gamma * gamma - 1)
xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
xMean = sma(xBandpassFilter, 2 * Length)
pos = iff(xMean > Trigger, 1,
	   iff(xMean < Trigger, -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(xMean, color=red, title="ExTrend")