Estratégia de cruzamento de média móvel adaptativa de vários prazos

Autora:ChaoZhang, Data: 2023-10-09 14:56:37
Tags:

Resumo

Esta estratégia utiliza o princípio do cruzamento da média móvel adaptativa em vários prazos para rastrear tendências.

Princípio

A estratégia é baseada principalmente na combinação do sistema de cruzamento de média móvel dupla e do indicador MACD. O sistema de cruzamento de média móvel dupla consiste em EMA rápida e EMA lenta, que calculam as médias móveis de curto e longo prazo, respectivamente. Um sinal de compra é gerado quando a linha rápida cruza acima da linha lenta, indicando que a tendência do mercado mudou de queda para alta, e a posição longa pode ser construída. Um sinal de venda é gerado quando a linha rápida cruza abaixo da linha lenta, indicando que a tendência do mercado mudou de alta para queda, em que a posição pode ser fechada. O indicador MACD consiste em linha MAC DIF e linha MAC DEA, que são a diferença entre a EMA de curto prazo e a EMA de longo prazo, e a média móvel da diferença, respectivamente. A linha HIST, ou seja, a barra DIF e DEA, representa a diferença de momento.

A estratégia combina o julgamento de tendência da média móvel dupla e o sinal de mudança de momento do MACD. Ao capturar lucros de tendências de médio a longo prazo, ele pode efetivamente filtrar falhas. Especificamente, quando a linha rápida cruza acima da linha lenta, se o histograma do MACD virar verde ao mesmo tempo, um sinal longo mais confiável é gerado. Pelo contrário, quando a linha rápida cruza abaixo da linha lenta, se o histograma do MACD virar vermelho simultaneamente, um sinal curto mais forte é gerado.

Além disso, a estratégia também incorpora funcionalidade de parâmetros adaptativos. Durante a otimização de parâmetros, os períodos de parâmetros de linha rápida, linha lenta e MACD são ajustados automaticamente com base no desempenho em diferentes períodos de tempo, para garantir que a estratégia possa alcançar um desempenho relativamente melhor em diferentes condições de mercado.

Vantagens

  1. Combina o sistema de média móvel dupla e o indicador MACD para a tomada de decisões, evitando ser enganado por falsos sinais de ruído.

  2. Aplica a funcionalidade de parâmetros adaptativos para que a estratégia possa ajustar dinamicamente os parâmetros para se adaptar às alterações do mercado e otimizar automaticamente as decisões de negociação.

  3. Capta relativamente bem as tendências de médio a longo prazo, filtra falsas rupturas de mercados de gama e obtém lucros adicionais de mercados de tendência.

  4. Adopta análises em diferentes prazos para identificar a direção da tendência de maior grau.

  5. Lógica simples e clara, estrutura de código otimizada, fácil de entender e modificar para atender a diferentes necessidades.

Riscos

  1. O sistema de média móvel dupla tem o risco de ser desviado, não é adequado para o mercado de intervalo, deve ser utilizado para estoques e períodos de tempo com tendência óbvia.

  2. O MACD tem um efeito de atraso, não é adequado para rastrear tendências em rápida mudança, deve ser combinado com outros indicadores.

  3. A otimização dos parâmetros requer um período de backtesting suficientemente longo e uma avaliação rigorosa dos riscos para evitar a sobreajuste.

  4. Preste atenção aos riscos sistémicos decorrentes de acontecimentos súbitos ao manter uma posição longa e, se necessário, interrompa as perdas a tempo.

  5. Risco de otimização excessiva para a funcionalidade de parâmetros adaptativos, exigindo uma verificação suficiente para evitar ajustes de parâmetros demasiado frequentes.

Orientações para melhorias

  1. Teste diferentes combinações de média móvel rápida e lenta para encontrar parâmetros que filtrem o ruído e cumpram a tendência.

  2. Tente diferentes conjuntos de parâmetros MACD para encontrar a combinação que reflete o ponto de mudança de tendência mais cedo.

  3. Adicionar indicador de tendência como filtro, pausar a negociação quando a tendência não é clara, para evitar a piada.

  4. Introduzir um mecanismo de stop loss, como mover o stop loss ou as ordens pendentes, para controlar a perda de uma única negociação.

  5. Tente algoritmos de aprendizagem de máquina para treinar regras de parâmetros adaptativos com mais dados, melhorando a estabilidade.

  6. Tente a arbitragem entre produtos para formar um portfólio de produtos correlacionados, diversificando os riscos sistémicos do mercado.

Conclusão

Esta estratégia combina crossover de média móvel dupla e indicador de momento MACD, alcançando a integração orgânica de tendência seguindo e controle de ritmo. A introdução de parâmetros adaptativos torna a estratégia mais robusta para se adaptar suavemente às mudanças do mercado. Em comparação com as estratégias de indicador único, esta estratégia forma efeitos de tomada de decisão mais fortes, capazes de capturar lucros comerciais relativamente amplos de tendências de médio a longo prazo. Os próximos passos podem incluir otimização de parâmetros, controle de risco, etc. para melhorar ainda mais a estratégia.


/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// To enable alerts: Change 'Strategy' to read 'Study' below  and you also need to comment out lines 43 and 47 - Strategy code

// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3  )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")

source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//

isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]


// ======= MACD STRATEGY CODE ========== //

// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]

MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance


plot(macd,  title="MACD", color=blue, linewidth=3)
plot(signal,  title="SIGNAL", color=orange, linewidth=3)

// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//

plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)

// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD

//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)


// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //

strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long

strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())

// === CREATE ALERT CONDITIONS === // 

alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()

alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')


Mais.