
A estratégia de distribuição de cruzamento do MACD forma o MACD calculando o diferencial entre a média móvel rápida e a média móvel lenta, e calcula a média móvel do MACD para formar a linha de distribuição, gerando um sinal de negociação quando o MACD atravessa a linha de distribuição acima ou abaixo. A estratégia combina a ideia de equilíbrio entre as duas linhas para capturar os pontos de inflexão da tendência de médio prazo do preço das ações e é uma estratégia típica de rastreamento de stop loss.
A estratégia primeiro calcula a média móvel rápida (fastMA) e a média móvel lenta (slowMA). A média móvel rápida tem um parâmetro de 12 dias e a média móvel lenta tem um parâmetro de 26 dias. Em seguida, calcula a diferença entre as duas médias móveis, formando o MACD.
A vantagem da estratégia está em capturar o ponto de viragem da tendência do preço da ação no meio do tempo. A combinação de linha média rápida e lenta filtra o ruído das flutuações de preços de curto prazo e consegue capturar a tendência do preço no meio do tempo.
A estratégia de distribuição de cruzamento do MACD combina a idéia de dupla equilíbrio, usando uma combinação de médias móveis rápidas e médias móveis lentas para filtrar o ruído de curto prazo e capturar apenas os pontos de mudança de tendência de longo prazo no preço das ações. Em comparação com um único indicador de preço, pode produzir menos falsos sinais.
O MACD em si é mais sensível e pode refletir a tendência de mudança de preço. A adição da linha de distribuição pode filtrar mais falsos sinais de curto prazo. Só se a tendência intermédia mudar claramente e o MACD romper a linha de distribuição para cima e para baixo, o sinal será gerado.
Durante a ascensão sustentada, o MACD permanece acima da linha de distribuição a maior parte do tempo, podendo capturar oportunidades de múltiplos pontos. Da mesma forma, durante a descensão contínua, o MACD também pode manter o formato de múltiplos pontos, dando sinais de pontos em tempo hábil.
Como os sinais de ponto de compra e venda da estratégia dependem exclusivamente da interseção das médias móveis, se houver uma grande oscilação no mercado, haverá mais falsos sinais, resultando em frequentes paradas de perda. A estratégia não é ideal para obter lucros reais.
A ruptura da linha de distribuição do preço da ação não garante que a tendência de médio prazo mude. Um único indicador técnico como sinal de ponto de compra tem uma certa cegueira, e a escolha do momento pode ser imprecisa.
Em mercados momentâneos, pode-se perder mais oportunidades de negociação apenas com o cruzamento dos indicadores de dupla linha de equilíbrio como um limite fixo. Em situações de força mais complexas, a estratégia também pode produzir um atraso evidente.
Aumentar os indicadores de filtragem de liquidez e volatilidade, reduzir a frequência de abertura de posições e evitar transações inválidas, como aumentar o volume de transações, ajustar dinamicamente os parâmetros da média móvel, etc.
Em combinação com vários outros indicadores técnicos, formando um portfólio de indicadores, melhorar a qualidade do sinal. Indicadores de curto prazo, em combinação com indicadores de médio e longo prazo, pode julgar mais amplamente a estrutura do mercado.
Aumentar os algoritmos de aprendizagem de máquina, treinar os parâmetros e os limites de atenção mais adequados ao ambiente de mercado atual, reduzir a intervenção humana.
A combinação de índices de pânico como o VIX para prever a tendência e a volatilidade do mercado no período anterior, com parâmetros de ajuste dinâmico, permite aproveitar melhor as oportunidades do MACD.
A estratégia de cruzamento de distribuição do MACD utiliza o princípio de cruzamento de duas equações para gerar sinais de negociação. A mudança de tendência de preço a médio prazo das ações é claramente caracterizada por um gráfico de diferencial de média lenta. A inclusão da linha de distribuição também filtra efetivamente alguns sinais de ruído.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@author : SudeepBisht
//@version=2
strategy(title="MACD with Signal", shorttitle="MACD_with_Signal")
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")
res = useCurrentRes ? timeframe.period : resCustom
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal
outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)
histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0
//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal
plot_color = hist_colorChange ? histA_IsUp ? green : histA_IsDown ? lime : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? green : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime
circleYPosition = outSignal
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=3)
plot(smd and outSignal ? outSignal : na, title="Signal", color=blue, style=line ,linewidth=1)
plot(sh and outHist ? outHist : na, title="", color=plot_color, style=columns, linewidth=4)
//plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
hline(0, '0 Line', linewidth=2, color=white)
macd_chk=smd and outMacD ? outMacD : na
checker=smd and outSignal ? outSignal : na
if (crossover(macd_chk,checker))
strategy.entry("BBandLE", strategy.long)
if (crossunder(macd_chk, checker))
strategy.entry("BBandSE", strategy.short)