Uma estratégia de inversão de filtro passa-banda


Data de criação: 2024-01-24 15:28:26 última modificação: 2024-01-24 15:28:26
cópia: 0 Cliques: 696
1
focar em
1617
Seguidores

Uma estratégia de inversão de filtro passa-banda

Visão geral

A estratégia de inversão de filtro de correlação é uma estratégia de negociação de ações baseada no filtro de correlação. Ela simula um filtro de correlação, construindo uma função cos e sine, e gerando um sinal de compra e venda. A estratégia executa uma operação inversa, ou seja, compra ou venda, quando a saída do filtro é superior ou inferior a um determinado nível de disparo.

Princípio da estratégia

O núcleo da estratégia é a construção de um filtro de banda passante BP, que é composto por dois parâmetros: a frequência central e a largura de banda. A frequência central determina o ciclo principal pelo qual o filtro passa, e a largura de banda determina o intervalo de ciclos pelo qual passa.

Em particular, a estratégia inclui as seguintes variáveis:

  • Length: ciclo central do filtro
  • Delta: Parâmetros de largura de banda
  • Beta: coeficiente relacionado à frequência central
  • Gamma: coeficiente relacionado à largura de banda
  • Alpha: variável intermediária relacionada com Beta, Gamma

Com base nessas variáveis, a estratégia constrói um filtro de IIR (resposta de impulso infinita) de um nível:

BP = 0.5(1 - alpha)(xPrice - xPrice[2]) + beta*(1 + alpha)*nz(BP[1]) - alpha*nz(BP[2])

Quando a BP é maior ou menor que o TriggerLevel, a estratégia opera na direção oposta.

Análise de vantagens

As principais vantagens desta estratégia são:

  1. O uso de filtros de banda larga permite eliminar o ruído de alta e baixa frequência, extraindo apenas o sinal de ciclo de frequência média do Useful, aumentando a relação entre o sinal e o ruído.
  2. É relativamente simples e intuitivo, com apenas alguns ajustes de parâmetros para se adaptar a diferentes ciclos e ambientes de mercado.
  3. O uso de estratégias de reversão permite a captura oportuna de reversões de preços de curto prazo, o rápido fechamento de posições após o lucro e a redução do risco de manutenção de posições.

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. A configuração dos parâmetros do filtro de passagem precisa ser ajustada de acordo com os diferentes períodos e condições de mercado. Se a configuração for incorreta, será possível perder oportunidades de negociação ou gerar mais sinais errados.
  2. A estratégia de reversão é vulnerável à reversão ilusória e, se a reversão não for realizada, o preço continuará na direção original, causando perdas.
  3. A frequência de transações pode ser alta, e é necessário tomar cuidado para evitar a otimização excessiva e controlar os custos de transação.

Para reduzir esses riscos, considerem-se os seguintes métodos de otimização:

  1. Utiliza filtros adaptativos para ajustar automaticamente os parâmetros de acordo com as mudanças do mercado.
  2. A partir de agora, os investidores poderão investir em ações de alta volatilidade, combinadas com filtros de tendência, para evitar posições de retorno.
  3. Optimizar a combinação de parâmetros para parametrizar a estratégia e adaptá-la a mais situações de mercado.

Direção de otimização

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

  1. Ciclo e parâmetros de auto-adaptação: De acordo com o cenário de preços de diferentes ciclos e a mais recente janela de tempo, ajuste em tempo real os parâmetros como Length, Delta, para que o filtro se adapte dinamicamente às mudanças do ambiente de mercado.

  2. Combinando a tendência de julgamento: com base em um filtro de passagem, adicionar MACD, MA e outros indicadores técnicos para julgar a direção da tendência, evitando a abertura de posições contrárias.

  3. Combinação de múltiplos prazos: estratégia de implantação em vários prazos (por exemplo, 5 minutos, 15 minutos, 30 minutos, etc.), verificação de sinais entre diferentes prazos, aumento da precisão do sinal.

  4. Mecanismo de parada: definir uma posição de parada razoável, parar ativamente a posição de liquidação após a perda atingir o ponto de parada, controlar efetivamente o tamanho da perda individual.

Otimizando os pontos acima, pode-se aumentar significativamente a estabilidade, adaptabilidade e lucratividade das estratégias.

Resumir

A estratégia de reversão de ondas de correlação é construída com um filtro de correlação, extraindo os sinais de frequência média úteis e, ao produzir o nível de ação do filtro, fazendo uma operação de reversão para capturar a oportunidade de reversão de curto prazo do preço. A estratégia é relativamente simples e pode ser adaptada a vários ambientes de mercado por meio de otimização de parâmetros. As principais direções de otimização incluem a adaptação do filtro, o julgamento de tendências, a combinação de quadros de tempo múltiplos e o mecanismo de parada de perdas.

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

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/11/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...
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Bandpass Filter Reversed Strategy")
Length = input(20, minval=1)
Delta = input(0.5)
TriggerLevel = input(0)
xPrice = hl2
hline(TriggerLevel, color=blue, linestyle=line)
beta = cos(3.14 * (360 / Length) / 180)
gamma = 1 / cos(3.14 * (720 * Delta / Length) / 180)
alpha = gamma - sqrt(gamma * gamma - 1)
BP = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2])
pos = iff(BP > TriggerLevel, -1,
	   iff(BP <= TriggerLevel, 1, nz(pos[1], 0))) 
if (pos == 1) 
    strategy.entry("Long", strategy.long)
if (pos == -1)
    strategy.entry("Short", strategy.short)	    
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(BP, color=red, title="Bandpass Filter Strategy")