Estratégia de acompanhamento de tendências MACD


Data de criação: 2024-03-29 15:14:18 última modificação: 2024-03-29 15:14:18
cópia: 0 Cliques: 588
1
focar em
1617
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 nos indicadores MACD. A principal idéia da estratégia é usar os sinais de forquilha e forquilha do indicador MACD para determinar a direção da tendência e, no momento apropriado, estabelecer posições de overhead ou de overhead.

Princípio da estratégia

O principal princípio da estratégia de acompanhamento de tendências do MACD é usar o indicador MACD para capturar a formação e a reversão de tendências. O indicador MACD é composto por dois equilíbrios (equilíbrio rápido e equilíbrio lento) e combina linhas de sinais para gerar sinais de negociação. Quando o MACD atravessa a linha de sinais e atravessa o eixo 0, indica a formação de uma tendência ascendente, abrindo uma posição de múltiplas cabeças.

Vantagens estratégicas

  1. A estratégia de acompanhamento de tendências do MACD é capaz de capturar oportunidades de tendências de forma eficaz, construindo posições no início da formação de tendências, aproveitando ao máximo a dinâmica da tendência.

  2. A estratégia usa o MACD Gold Fork Dead Fork e o eixo 0 como condições de filtragem para melhor filtrar os falsos sinais em mercados de turbulência.

  3. A estratégia usa os altos e baixos mais recentes como um limite de perda para controlar a margem de risco de uma única transação.

  4. A lógica da estratégia é clara, fácil de entender e implementar, e é adequada para os iniciantes.

Risco estratégico

  1. O indicador MACD é essencialmente um indicador de atraso, e pode haver uma grande retração no início da reversão de tendência.

  2. A estratégia pode levar a transações frequentes em mercados em turbulência, resultando em custos de transação mais altos.

  3. A configuração do ponto de parada depende dos pontos altos e baixos mais recentes e, em alguns casos, pode ocorrer uma parada prematura ou tardia.

  4. A estratégia não considera a gestão de posições e a gestão de fundos, que precisam ser otimizadas em função das situações concretas.

Direção de otimização da estratégia

  1. A introdução de outros indicadores técnicos ou padrões de comportamento de preços como condições de filtragem pode ser considerada para aumentar a confiabilidade e a precisão do sinal.

  2. Optimizar a configuração do ponto de parada, como o uso de ATR ou percentual de parada, para melhor controlar o risco.

  3. Introdução de mecanismos de gerenciamento de posições e de gerenciamento de fundos, ajustando dinamicamente o tamanho das posições de acordo com a volatilidade do mercado e a equidade da conta.

  4. Para diferentes mercados e padrões de negociação, os parâmetros são otimizados e ajustados para encontrar a combinação de parâmetros mais adequada.

Resumir

A estratégia de acompanhamento de tendências do MACD é uma estratégia de negociação quantitativa simples e eficaz para capturar oportunidades de tendências, utilizando as características do indicador MACD. A lógica da estratégia é clara, fácil de entender e implementar, e é adequada para os iniciantes.

Código-fonte da estratégia
/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD trendfollow", shorttitle="MACD TF", overlay=true)
// switch = input(true, title="Enable MACD Bar Color")
// X001TK MACD trendfollow Strategy
//
// 
// This strategy combines the non standart approach in MACD strategy to buy once to buy when the MACD value goes above Signal line and a zero line, to sell on the opposite condition.
//
//
// This strategy goes long if the MACD (3,9,5) goes above its Signal and above zero
//
// You can set Stop loss on the recent lowest low when long position is opened and recent highest hugh in short
// 
//
// Exit rule is simple. We close the LONG position once MACD goes below Signal line and close SHORT on the opposite condition 
//
// 
// 
//
// Input
fastMAlen = input(3, minval=1, title="MACD fast moving average")
slowMAlen = input(9,minval=1, title="MACD slow moving average")
signalMACDlen = input(5,minval=1, title="MACD signal line moving average")
// switch = input(true, title="Enable MACD Bar Color")
length = input(1, minval=1)



// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2002, title = "From Year", minval = 2000)
ToMonth   = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2029, title = "To Year", minval = 2017)



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

// MACD Calculation
MACD = ema(close, fastMAlen) - ema(close, slowMAlen)
signalMACD = ema(MACD, signalMACDlen)
delta = MACD - signalMACD
fastMA = ema(close,fastMAlen)
slowMA = ema(close,slowMAlen)


// Colors
//bartrendcolor = MACD > signalMACD and MACD > 0? green : MACD < signalMACD and MACD < 0? red : MACD < signalMACD? gray :  gray 
//barcolor(switch?bartrendcolor:na)

barcolour=(MACD > signalMACD and MACD > 0)?#53B987:(MACD < signalMACD and MACD < 0)?#EB4D5C:na
barcolor(color=barcolour)


// === STRATEGY ===
// conditions

longCond =  MACD > signalMACD and MACD > 0 
XlongCond = MACD < signalMACD 
ShortCond = MACD < signalMACD and MACD < 0 
XShortCond = MACD > signalMACD 





strategy.entry("long", strategy.long, when=longCond==true and window()==true )
//strategy.exit(id="Close Long", stop=longStop)//, limit=longTake)
strategy.close("long", when=XlongCond==true and window()==true)
strategy.entry("short", strategy.short,  when=ShortCond==true and window()==true )
//strategy.exit(id="Close Short", stop=shortStop)//, limit=shortTake)
strategy.close("short", when=XShortCond==true and window()==true)

// === /STRATEGY ===