Estratégia de acompanhamento de tendências MACD


Data de criação: 2023-12-11 14:57:00 última modificação: 2023-12-11 14:57:00
cópia: 0 Cliques: 649
1
focar em
1621
Seguidores

Estratégia de acompanhamento de tendências MACD

Visão geral

A estratégia de acompanhamento de tendências do MACD é uma estratégia de negociação quantitativa baseada no indicador MACD. A estratégia de acompanhamento de tendências de preços de ações é usada para julgar as tendências do mercado, identificando os sinais de forquilha e forquilha do indicador MACD.

Princípio da estratégia

A lógica central da estratégia de acompanhamento de tendências do MACD é:

  1. Calcule a linha MACD e a linha de sinal.
  2. Quando a linha MACD sobe de baixo para cima e atinge o zero, registre o ponto mais alto e aguarde o sinal de morte.
  3. Quando a linha MACD cai de cima para baixo abaixo de zero, registre o ponto mais baixo no momento e aguarde o sinal do Gold Fork.
  4. Quando ocorre o Gold Fork, o preço de fechamento atual é registrado como um ponto de entrada, um ponto de parada e um ponto de abertura.
  5. Quando ocorre um dead fork, registre o preço de fechamento atual como ponto de entrada para o shorting, configure o ponto de parada e abra a posição para o shorting.
  6. Quando a posição é mantida em um período de tempo, a posição é liquidada se a taxa de retorno atingir o objetivo predefinido ou a retração atingir o ponto de parada.
  7. Quando uma posição de curto prazo é mantida, a posição é liquidada se a taxa de retorno atingir o objetivo predeterminado ou a retração atingir o ponto de parada.

Com este mecanismo de acompanhamento de tendências, a estratégia consegue capturar a inversão de tendências do mercado em tempo hábil e gerar lucro.

Análise de vantagens

A estratégia de acompanhamento de tendências do MACD tem as seguintes vantagens:

  1. A única fonte clara de sinais estratégicos é gerada diretamente pelo indicador MACD, evitando interferência de sinais.
  2. O indicador MACD é usado para determinar a direção da tendência do mercado.
  3. A partir de agora, a empresa vai ser capaz de acompanhar as mudanças de tendência em tempo hábil e de obter lucros.
  4. O risco está controlado e há um mecanismo de parada de perdas.

Análise de Riscos

A estratégia de acompanhamento de tendências do MACD também apresenta os seguintes riscos:

  1. Os indicadores MACD são propensos a produzir falsos sinais, o que pode levar a perdas de operação de linha ultra curta.
  2. O ponto de parada não foi configurado corretamente e pode aumentar a perda individual.
  3. O risco de um excesso de rastreamento pode levar a perdas é difícil de equilibrar entre a taxa de lucro e o ponto de parada.

Para os riscos acima mencionados, podem ser tomadas as seguintes medidas de otimização:

  1. Em combinação com outros indicadores, filtra os falsos sinais.
  2. Ajuste dinâmico do ponto de parada.
  3. Parâmetros para otimizar o rastreamento da taxa de ganho e ponto de parada.

Direção de otimização

A estratégia de acompanhamento de tendências do MACD pode ser otimizada em:

  1. Otimizar os parâmetros do indicador MACD e reduzir a taxa de falso sinal. O MACD pode ser testado com diferentes parâmetros de ciclo.

  2. Para aumentar o volume de transações, outros indicadores são filtrados. Pode-se definir o mínimo de transações.

  3. Configuração de um mecanismo de rastreamento de perda dinâmica. O ponto de parada pode ser ajustado em tempo real de acordo com a taxa de flutuação.

  4. Optimizar a lógica de determinação do sinal para abrir a posição. Pode definir condições de ação mais rigorosas.

  5. Combinação de um modelo de aprendizado de máquina para filtrar o sinal. Pode treinar o modelo para julgar a confiabilidade do sinal.

Resumir

A estratégia de acompanhamento de tendências do MACD é, em geral, uma estratégia quantitativa mais madura. A estratégia usa o indicador MACD para determinar a direção da tendência do mercado, com o risco de controle do mecanismo de parada, para acompanhar efetivamente a tendência do preço das ações.

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

//@version=5
strategy("MACD Cross Strategy", overlay=true)

// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na

var float highestLongProfit = 0
var float highestShortProfit = 0

var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false

var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment

if macdLine > 0
    lowestMACD := 0
    highestMACD := math.max(highestMACD, macdLine)
    haveOpenedShort := false
else
    highestMACD := 0
    lowestMACD := math.min(lowestMACD, macdLine)
    haveOpenedLong := false

// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
    entryLongPrice := close
    haveOpenedLong := true

if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
    entryShortPrice := close
    haveOpenedShort := true

// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
    profit = close - entryLongPrice
    log.info("profit:{0}", profit)
    if profit > 0
        highestLongProfit := math.max(highestLongProfit, profit)
        if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
            strategy.close("Long")
            highestLongProfit := 0

if strategy.position_size < 0
    profit = entryShortPrice - close
    if profit > 0
        highestShortProfit := math.max(highestShortProfit, profit)
        log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
        if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
            strategy.close("Short")
            highestShortProfit := 0