Estratégia de acompanhamento de tendências MACD


Data de criação: 2023-11-15 17:08:15 última modificação: 2023-11-15 17:08:15
cópia: 0 Cliques: 743
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências MACD

Visão geral

Esta estratégia é chamada de estratégia de acompanhamento de tendências MACD, e é uma estratégia quantitativa que usa o indicador MACD para determinar a tendência de preços e negociar seguindo a tendência. A estratégia visa capturar tendências de médio e longo prazo e ajustar a posição em tempo hábil quando a tendência se inverte.

Princípio da estratégia

A estratégia usa o indicador MACD para determinar a tendência do preço. O indicador MACD é um indicador de ruptura, composto por uma linha rápida EMA ((12 dias) e uma linha lenta EMA ((26 dias), cujo diferencial de diferença constitui uma linha em forma de coluna MACD, cujo EMA de 9 dias constitui a linha de sinal do MACD. Quando a linha MACD atravessa a linha de sinal, a forca de ouro indica que o preço está em uma tendência ascendente; Quando a linha MACD atravessa a linha abaixo, a forca de morte indica que o preço está em uma tendência descendente.

A estratégia calcula a linha MACD e a linha de sinal, e então calcula o diferencial entre a linha MACD e a linha de sinal. Quando a delta passa por 0 produz um sinal de compra e quando a delta passa por 0 produz um sinal de venda, ajustando a posição de acordo com esses dois sinais. Para filtrar o ruído, a estratégia também introduziu uma linha de equilíbrio EMA, que só produz um verdadeiro sinal de negociação quando o preço quebra essa linha de equilíbrio.

A lógica da estratégia é a seguinte:

  1. Calcule a linha MACD, a linha de sinal e a diferença de delta
  2. Quando julgar que o delta está subindo ou descendo 0, confirme a reversão da tendência
  3. Calcular a linha média do EMA, como um filtro
  4. Quando o delta passa por 0 e o preço está acima da EMA, gera um sinal de compra
  5. Quando o delta passa por 0 e o preço está abaixo da EMA, gera um sinal de venda

Com esse design, a estratégia é capaz de negociar de acordo com as tendências de linha média e longa e ajustar a posição em tempo hábil quando a tendência muda, evitando ser enganado pelo ruído do mercado de curto prazo.

Vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. Usar o MACD para determinar os pontos de inflexão da tendência e determinar com precisão os momentos de compra e venda
  2. Filtros EMA para evitar o ruído do mercado de curto prazo
  3. Negocie apenas com tendências médias e longas para evitar ser aprisionado em mercados turbulentos
  4. A lógica de transação é simples e clara, o código é fácil de entender e modificar
  5. Frequência de negociação que pode ser ajustada por meio de parâmetros de estratégia de controle livre
  6. A taxa de utilização dos fundos é elevada, permitindo um bom acompanhamento das tendências de longo prazo.

Risco estratégico

A estratégia também apresenta alguns riscos que devem ser lembrados:

  1. O MACD é um indicador de tendência, que é propenso a sinais errados em situações de turbulência.
  2. Os filtros da EMA podem filtrar algumas oportunidades de negociação válidas
  3. Parâmetros mal definidos podem levar a uma frequência de negociação muito alta ou muito baixa
  4. Incapacidade de reagir a mudanças de mercado a curto prazo e insensível a eventos de emergência
  5. Há um certo atraso e pode ter perdido o melhor momento para uma mudança de tendência

Resposta:

  1. Parâmetros de otimização, ajuste dos parâmetros do filtro EMA para reduzir erros de julgamento
  2. Combinado com outros indicadores como auxiliares, para descobrir mais oportunidades de negociação
  3. Estabelecer um stop loss para controlar perdas individuais
  4. Reduzir adequadamente o tempo de detenção para garantir a flexibilidade da estratégia

Otimização de Estratégia

A estratégia também pode ser melhorada nos seguintes aspectos:

  1. Adicionar outros indicadores de julgamento, formar um portfólio de indicadores e aumentar a precisão
  2. Adição de um mecanismo de suspensão para um melhor controle de risco
  3. Combinação de indicadores de volume de transação para evitar brechas falsas
  4. Ajustar os parâmetros de adaptação ao mercado para aumentar a adaptabilidade da estratégia
  5. Optimizar a lógica específica de compra e venda, melhorando o tempo de entrada e saída
  6. Construir em etapas, acompanhar melhor a tendência e reduzir os riscos

Otimizando métodos como combinações de indicadores, stop loss, parâmetros de auto-adaptação, etc., pode-se aumentar significativamente a eficácia da estratégia.

Resumir

Em geral, a estratégia de acompanhamento de tendências do MACD determina tendências de longo prazo por meio de indicadores simples e eficazes do MACD, projetando uma lógica de negociação de acompanhamento de tendências mais clara. Ela tem a capacidade de capturar tendências e algumas medidas de controle de risco. Com mais otimização e melhorias, a estratégia pode se tornar um sistema de negociação quantitativa muito prático.

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

//@version=2
strategy(title = "Noro's MACD Strategy v1.0", shorttitle = "MACD str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
usefil = input(false, defval = false, title = "Use EMA filter")
lenfil = input(5, defval = 5, minval = 1, maxval = 50, title = "EMA filter period")

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

//Signals
ema = ema(close, lenfil)
trend = crossover(delta, 0) == true ? 1 : crossunder(delta, 0) == true ? -1 : trend[1]
up = trend == 1 and (low < ema or usefil == false) ? 1 : 0
dn = trend == -1 and (high > ema or usefil == false) ? 1 : 0

plot(ema, color = black, transp = 0)

if (up == 1)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if (dn == 1)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)