
A estratégia usa o MACD para gerar sinais de negociação em vários períodos de tempo, permitindo o acompanhamento de tendências. A ideia básica é confirmar a direção da tendência em períodos de tempo de alta periodicidade e, em seguida, procurar por momentos específicos de entrada em períodos de tempo de baixa periodicidade.
Princípios da estratégia: A estratégia usa a linha de diferença MACD do indicador e o cruzamento da linha de sinal para determinar a direção da tendência. Concretamente, ela calcula a linha de diferença MACD e a linha de sinal no período de tempo de alta periodicidade (default 60 minutos). A linha de diferença produz um sinal de compra quando atravessa a linha de sinal e um sinal de venda quando atravessa a linha de sinal, para confirmar a direção da tendência geral.
A estratégia então calcula o MACD no período de tempo de baixa periodicidade (o período atual) e entra na posição correspondente quando a desviação e a linha de sinal se cruzam. Assim, o período alto é usado para determinar a direção da tendência e o período baixo é usado para encontrar pontos de entrada específicos.
A estratégia também usa a mudança de cor do gráfico em colunas para auxiliar na determinação de tendências, com colunas verdes em ascensão e colunas vermelhas em queda.
Análise de vantagens:
O design de quadros multi-horário, com ciclos altos para determinar a direção da tendência, e ciclos baixos para encontrar pontos de entrada, é bem sistemático.
O indicador MACD é usado para determinar a hora de compra e venda, os parâmetros do indicador são otimizados e o sinal é mais confiável.
A coluna de cores ajuda a avaliar o estado atual da tendência, formando uma verificação múltipla e aumentando a precisão da decisão.
O sistema de rastreamento automático de tendências funciona sem necessidade de muita intervenção humana, reduzindo os erros de julgamento emocional.
Análise de Riscos:
Como um indicador de tendências de longo prazo, o MACD pode produzir sinais errôneos no curto prazo, resultando em perdas desnecessárias.
As estratégias de quadros de tempo múltiplos são mais difíceis de otimizar e testar devido à necessidade de considerar vários ciclos ao mesmo tempo.
A estratégia não tem um stop loss, o que pode levar a grandes perdas.
Otimização:
Optimizar os parâmetros do MACD para encontrar a melhor combinação de parâmetros.
Aumentar os mecanismos de prevenção de perdas e limitar o máximo de perdas.
Avaliação da necessidade de adicionar outros indicadores para filtragem de sinal e melhorar a qualidade do sinal.
Teste diferentes combinações de quadros de tempo para encontrar a melhor correspondência de quadros de tempo.
Resumo: A estratégia foi projetada de forma sistemática e combinando os múltiplos benefícios dos indicadores MACD para acompanhar efetivamente as tendências de longo prazo. No entanto, devido ao fato de que não foi estabelecido um stop loss, é difícil evitar o risco de expansão de perdas a curto prazo, essa é a direção que precisa de mais otimização.
/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@author : SudeepBisht
//@version=2
strategy(title="SB_CM_MacD_Ult_MTF", shorttitle="SB_CM_Ult_MacD_MTF")
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 ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : 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=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
// hline(0, '0 Line', linestyle=solid, 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, comment="BBandLE")
if (crossunder(macd_chk, checker))
strategy.entry("BBandSE", strategy.short, comment="BBandSE")