Estratégia de Média Móvel Adaptativa


Data de criação: 2023-12-07 11:08:18 última modificação: 2023-12-07 11:08:18
cópia: 2 Cliques: 753
1
focar em
1619
Seguidores

Estratégia de Média Móvel Adaptativa

Visão geral

A estratégia de média móvel adaptativa Mala (Mala Adaptive Moving Average Strategy) é uma estratégia de negociação quantitativa baseada no indicador de média móvel adaptativa MESA de John Ehlers. A estratégia usa ondas positivas para tomar decisões de negociação, comprando no ponto baixo e vendendo no ponto alto, permitindo que as ondas positivas se adaptem a diferentes variedades e condições de mercado por meio de parâmetros de ajuste de deslizamento.

Princípio da estratégia

Uma estratégia de média móvel adaptável usa um gerador de ondas positivas para gerar um sinal de negociação. As ondas positivas são determinadas pela sombra projetada sobre o eixo retângulo por um vetor em rotação (o que é chamado de fator). Quando o vetor gira 360 graus, completa um ciclo. Quando o vetor passa por um ângulo, gera um sinal de compra e, quando passa por outro ângulo, gera um sinal de venda.

Especificamente, a estratégia primeiro faz um tratamento de suavização e destrendenciamento do preço, e depois calcula duas frações de ondas positivas: a fração de isofase I e a fração de interseção positiva Q. Essas duas frações são superpostas e onduladas por deslocamento de fase horizontal, obtendo informações finais sobre Re e Im. Re e Im refletem a frequência das ondas positivas e podem ser derivadas por periodicidade.

Análise de vantagens

A estratégia de média móvel adaptativa tem as seguintes vantagens:

  1. O uso de ondas de sincronismo e fases como sinais de negociação torna a estratégia mais robusta e isenta de ondas de tempo.

  2. O ciclo e os parâmetros podem ser ajustados dinamicamente para se adaptar às mudanças do mercado, com uma forte capacidade de adaptação.

  3. As curvas MAMA e FAMA dependem apenas das características do preço em si, sem atraso, para capturar a transição da tendência em tempo hábil.

  4. A sensibilidade da estratégia pode ser ajustada por meio de configurações de parâmetros, para atender a diferentes estilos de negociação.

  5. A lógica da estratégia é clara e simples, fácil de entender e modificar, adequada para pesquisa e ensino.

Análise de Riscos

A estratégia de média móvel adaptada também apresenta os seguintes riscos:

  1. Dependendo do ciclo e da fase da curva de sincronismo, um sinal de erro é gerado quando o preço é anormalmente distorcido.

  2. A definição de um limite de rigidez no julgamento de um ciclo pode tornar a mudança de um ciclo pouco suave.

  3. O efeito de célula de posição e de ciclo faz com que a curva oscile perto dos pontos-chave, podendo perder as melhores entradas e saídas.

  4. A capacidade de adaptação dos parâmetros e das curvas diminui quando a volatilidade do mercado aumenta.

  5. Como indicador técnico, a estratégia é propensa a falsos avanços e sinais errados em pontos tecnológicos importantes.

Esses riscos podem ser mitigados por meio de métodos como definir parâmetros mais suaves, filtrar em combinação com outros indicadores e ajustar o tamanho da posse.

Direção de otimização

Uma estratégia de média móvel adaptativa pode ser otimizada de várias maneiras:

  1. Melhorias na forma de calcular os ciclos e parâmetros para tornar as mudanças mais suaves e naturais. Por exemplo, pode-se introduzir métodos estatísticos para uma melhor modelagem dos preços.

  2. A combinação de indicadores como taxa de flutuação, volume de transação para filtrar o sinal, aumenta a precisão. Também pode ser combinado com a reliabilidade do sinal para entender o básico.

  3. Optimizar a configuração de parâmetros e controle de pontos de deslizamento, reduzir os custos de transação e melhorar a estabilidade do sistema.

  4. A introdução de métodos como aprendizado de máquina e algoritmos genéticos para otimizar dinamicamente os parâmetros, fazendo com que os parâmetros do sistema evoluam e se atualizem constantemente.

  5. Configurar diferentes entradas e saídas, combinando tendências e sistemas de inversão, criando portfólios e aumentando a rentabilidade contínua.

Resumir

A estratégia de média móvel adaptável usa a análise de ondas de onda para gerar sinais de negociação, permitindo que o sistema se adapte automaticamente às mudanças do ambiente de mercado por meio de parâmetros de ajuste dinâmico. Tem maior robustez e ampla aplicabilidade. Em comparação com outras estratégias de média móvel adaptável, tem maior praticidade e estabilidade.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dongyun

//@version=4
strategy("自适应移动平均的MESA系统", overlay=true)

fastlimit = input(0.5,'')
slowlimit = input(0.05,'')

smooth = 0.0
detrender = 0.0
I1 = 0.0
Q1 = 0.0
JI = 0.0
JQ = 0.0
I2 = 0.0
Q2 = 0.0
Re = 0.0
Im = 0.0
period = 0.0
smoothperiod = 0.0
phase = 0.0
deltaphase = 0.0
alpha = 0.0
MAMA = 0.0
FAMA = 0.0
price = 0.0

price := (high + low)/2
PI = 2 * asin(1)

if (bar_index > 5)
	smooth := (4*price + 3*price[1] + 2*price[2] + price[3])/10
	detrender := (.0962*smooth + .5769*nz(smooth[2]) - .5769*nz(smooth[4]) - .0962*nz(smooth[6]))*(.075*nz(period[1]) + .54)

	// compute InPhase and Quadrature components
	Q1 := (.0962*detrender + .5769*nz(detrender[2]) - .5769*nz(detrender[4]) - .0962*nz(detrender[6]))*(.075*nz(period[1]) + .54)

	I1 := nz(detrender[3])

	// advance the pulse of i1 and q1 by 90 degrees
	JI := (.0962*I1 + .5769*nz(I1[2]) - .5769*nz(I1[4]) - .0962*nz(I1[6]))*(.075*nz(period[1]) + .54)
	JQ := (.0962*Q1 + .5769*nz(Q1[2]) - .5769*nz(Q1[4]) - .0962*nz(Q1[6]))*(.075*nz(period[1]) + .54)

	//phase addition for 3-bar averaging 
	I2 := I1 - JQ
	Q2 := Q1 + JI

	//smooth the i and q components before applying
	I2 := .2*I2 + .8*nz(I2[1])
	Q2 := .2*Q2 + .8*nz(Q2[1])

	// hymodyne discriminator
	Re := I2*I2[1] + Q2*nz(Q2[1])
	Im := I2*Q2[1] + Q2*nz(I2[1])
	Re := .2*Re + .8*nz(Re[1])
	Im := .2*Im + .8*nz(Im[1])

	if (Im != 0 and Re != 0)
		period := 2 * PI/atan(Im/Re)

	if (period > 1.5 * nz(period[1]))
		period := 1.5*nz(period[1])

	if (period < .67*nz(period[1]))
		period := .67*nz(period[1])

	if (period < 6)
		period := 6

	if (period > 50)
		period := 50

	period := .2*period + .8*nz(period[1])
	smoothperiod := .33*period + .67*nz(smoothperiod[1])

	if (I1 != 0)
		phase := (180/PI) * atan(Q1/I1)

	deltaphase := nz(phase[1]) - phase

	if (deltaphase < 1)
		deltaphase := 1

	alpha := fastlimit/deltaphase
	if(alpha < slowlimit)
		alpha := slowlimit

	MAMA := alpha*price + (1 - alpha)*nz(MAMA[1])
	FAMA := .5*alpha*MAMA + (1 - .5*alpha)*nz(FAMA[1])

	if (FAMA < MAMA)
		strategy.entry("Long", strategy.long)
	else
		if (FAMA > MAMA)
			strategy.entry("Short", strategy.short)