Tendência do MACD Seguindo a Estratégia

Autora:ChaoZhang, Data: 2023-12-11 14:57:00
Tags:

img

Resumo

A estratégia MACD Trend Following é uma estratégia quantitativa de negociação baseada no indicador MACD. Esta estratégia identifica sinais de cruz de ouro e cruz de morte do MACD para determinar tendências de mercado e rastrear tendências de preços.

Estratégia lógica

A lógica central da estratégia MACD Trend Following é:

  1. Calcular a linha MACD e a linha de sinal.
  2. Quando a linha MACD cruzar acima de 0 de baixo para cima, registe o ponto mais alto e aguarde o sinal da cruz da morte.
  3. Quando a linha MACD cruzar abaixo de 0 de cima para baixo, registe o ponto mais baixo e aguarde o sinal de cruz dourada.
  4. Quando a cruz dourada acontece, registe o preço de fechamento atual como ponto de entrada longa, defina ponto de stop loss, abra posição longa.
  5. Quando a cruz de morte acontece, registe o preço de fechamento atual como ponto de entrada curto, defina ponto de stop loss, abra posição curta.
  6. Quando se mantém uma posição longa, se a taxa de lucro atingir a meta pré-estabelecida ou se o drawdown atingir o ponto de stop loss, fechar a posição para obter lucro.
  7. Quando se mantém uma posição curta, se o rácio de lucro atingir a meta pré-estabelecida ou se o drawdown atingir o ponto de stop loss, fechar a posição para obter lucro.

Através deste mecanismo de acompanhamento de tendências, a estratégia pode capturar oportunamente as tendências do mercado e obter lucros.

Análise das vantagens

A estratégia MACD Trend Following tem as seguintes vantagens:

  1. A fonte dos sinais de estratégia é singular e clara, gerada diretamente pelo indicador MACD, evitando interferências dos sinais.
  2. Utilize as características da cruz de ouro e da cruz da morte do indicador MACD para determinar as direções da tendência do mercado, com julgamentos precisos.
  3. Rastreamento oportuno de tendências, com forte capacidade de rastreamento de lucros.
  4. Controlo de risco adequado, com mecanismo de stop loss.

Análise de riscos

A estratégia MACD Trend Following também apresenta os seguintes riscos:

  1. O indicador MACD tende a gerar sinais falsos, o que pode conduzir a perdas em operações de curto prazo.
  2. A configuração incorreta do ponto de stop loss pode aumentar a perda única.
  3. Difícil equilibrar entre o rácio de acompanhamento do lucro e o ponto de parada da perda, com risco de acompanhamento excessivo que conduza a perdas.

Para enfrentar os riscos acima referidos, podem ser adoptadas as seguintes medidas de otimização:

  1. Combinar com outros indicadores para filtrar sinais falsos.
  2. Ajuste dinâmico dos pontos de stop loss.
  3. Otimizar os parâmetros da taxa de rastreamento de lucro e pontos de stop loss.

Orientações de otimização

A estratégia de seguimento da tendência do MACD pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros do indicador MACD para reduzir a taxa de sinal falso.

  2. Adicionar outros indicadores como volume de negociação para filtrar sinais.

  3. Configure um mecanismo de stop loss dinâmico e os pontos de stop loss podem ser ajustados dinamicamente com base na volatilidade.

  4. Otimizar a lógica de determinação do sinal para a abertura de posições.

  5. Incorporar modelos de aprendizagem de máquina para filtrar sinais. Os modelos podem ser treinados para julgar a confiabilidade dos sinais.

Conclusão

Em geral, o MACD Trend Following Strategy é uma estratégia quantitativa relativamente madura. Utiliza o indicador MACD para determinar as direções da tendência do mercado e controla os riscos com o mecanismo de stop loss, que pode rastrear efetivamente as tendências de preços.


/*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

Mais.