Estratégia de negociação cruzada do MACD

Autora:ChaoZhang, Data: 2024-01-05 15:32:06
Tags:

img

Resumo

A estratégia de negociação de cruzamento do MACD é uma estratégia de tendência. Ele usa o cruzamento de linhas médias rápidas e lentas como sinais de compra e venda. Quando a linha média rápida cruza acima da linha média lenta, um sinal de compra é gerado. Quando a linha média rápida cruza abaixo da linha média lenta, um sinal de venda é gerado.

Princípio da estratégia

Esta estratégia é baseada no indicador MACD. O indicador MACD é a diferença entre duas linhas médias móveis com parâmetros diferentes, refletindo as mudanças no ímpeto dos preços. Especificamente, é a diferença entre a linha média móvel rápida (parâmetro padrão é linha de 12 dias) e a linha média móvel lenta (parâmetro padrão é linha de 26 dias), chamada barra MACD. Para eliminar oscilações, o indicador MACD também introduz uma linha DEA ou linha de sinal, geralmente a média móvel ponderada de 9 dias do MACD.

Quando a barra MACD atravessa a linha DEA de baixo para cima e entra na área positiva, ela indica que a linha média de curto prazo cruza acima da linha média de longo prazo, indicando que a tendência de preço vira para cima e um sinal de compra é gerado.

A estratégia usa o cruzamento da barra MACD e da linha DEA para determinar o momento da compra e venda.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Capacidade de acompanhar a tendência e captar as alterações de preços em tempo útil.
  2. Simples e fáceis de compreender e implementar.
  3. Parâmetros relativamente fixos sem ajustes frequentes.
  4. Aplicável a diferentes prazos.

Análise de riscos

Esta estratégia tem também alguns riscos:

  1. Pode gerar múltiplos falsos sinais ou flipsaws em mercados laterais.
  2. Tem algum atraso e pode perder o melhor momento das alterações de preços.
  3. Os parâmetros são facilmente super-otimizados e os resultados reais podem ser pobres.

Para reduzir os riscos, os parâmetros podem ser ajustados ou combinados com outros indicadores, como indicadores de volume e volatilidade.

Orientações de otimização

Esta estratégia pode ser otimizada nos seguintes aspectos:

  1. Optimização de parâmetros para encontrar os parâmetros ideais, evitando a otimização excessiva.

  2. Combinar com outros indicadores para formar estratégias de combinação mais poderosas.

  3. Definir pontos de stop loss e take profit adequados para controlar eficazmente os riscos.

  4. Optimização adaptativa para aplicar esta estratégia a diferentes mercados e prazos com base nas condições reais.

Conclusão

A estratégia de negociação de cruzamento do MACD capta mudanças de tendência a um baixo custo, seguindo as tendências de preços. É simples, prático e fácil de implementar, tornando-se uma estratégia de início adequada para iniciantes. Mas esta estratégia também tem algumas falhas. Ao otimizar e melhorar constantemente, o efeito real desta estratégia pode ser melhor. Vale a pena recomendar.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MACD Strategy by Forbes",default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)

fastLength = input(20)
slowlength = input(40)
MACDLength = input(4)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2011, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

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

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350

f1 = plot(MACD,color=red)
s1 = plot(aMACD,color=blue)
plotColor = if delta > 0
    delta > delta[1] ? lime : green
else 
    delta < delta[1] ? maroon : red

plot(delta, color=plotColor, style=columns)

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mais.