A função ta.macd do Pine Script v5 calcula o MACD inteiro de uma vez — linha MACD, linha de sinal e histograma — sem você precisar montar três médias móveis na mão. O problema é que a maioria dos tutoriais mostra só metade: plota a linha e esquece de explicar o que cada um dos três retornos significa, e é justamente aí que nascem os sinais errados. Aqui você tem a sintaxe correta, o que cada valor devolve e um indicador pronto para colar no TradingView, com cruzamentos e histograma colorido. Trading é atividade de risco; use isto como ferramenta de estudo, não como promessa de lucro.

Indicador é só metade do caminho — executar na emoção quebra a banca. Veja como transformar os sinais do MACD em execução automática e teste sempre em conta demo.

Ver automação em Python →

A sintaxe da função

No Pine Script v5, a assinatura é esta:

[macdLine, signalLine, histLine] = ta.macd(source, fastLen, slowLen, signalLen)

Ela recebe quatro argumentos e devolve três valores de uma vez (uma tupla):

source — a série de preços usada no cálculo (quase sempre close).
fastLen — período da média rápida (padrão clássico: 12).
slowLen — período da média lenta (padrão: 26).
signalLen — período da média de sinal aplicada sobre o MACD (padrão: 9).
macdLine — a diferença entre a EMA rápida e a lenta.
signalLine — a EMA do próprio MACD (gatilho dos cruzamentos).
histLine — o histograma: macdLine - signalLine.

O detalhe que confunde todo mundo: a ta.macd devolve os três valores numa ordem fixa. Se você inverter signalLine e histLine na hora de atribuir a tupla, o cruzamento sai trocado e você opera ao contrário sem perceber. Respeite a ordem: MACD, sinal, histograma.

Detectando os cruzamentos (sinais)

O sinal clássico do MACD não é o valor em si, e sim o cruzamento entre a linha MACD e a linha de sinal. Use ta.crossover e ta.crossunder:

// MACD cruzou a linha de sinal para CIMA = viés de alta buySignal = ta.crossover(macdLine, signalLine) // MACD cruzou a linha de sinal para BAIXO = viés de baixa sellSignal = ta.crossunder(macdLine, signalLine)

Muitos traders adicionam um filtro: só consideram a compra quando o cruzamento acontece abaixo da linha zero (mais espaço para a tendência) e a venda quando acontece acima. Isso reduz sinais em mercado lateral.

Indicador completo (pronto para colar)

Cole este código no Pine Editor do TradingView (v5). Ele plota as duas linhas, o histograma colorido e marca os cruzamentos:

//@version=5 indicator(“MACD Pronto – IA Trader Pro”, overlay=false) fastLen = input.int(12, “EMA rapida”) slowLen = input.int(26, “EMA lenta”) signalLen = input.int(9, “Linha de sinal”) [macdLine, signalLine, histLine] = ta.macd(close, fastLen, slowLen, signalLen) // histograma colorido conforme momento histColor = histLine >= 0 ? (histLine > histLine[1] ? color.green : color.new(color.green, 50)) : (histLine < histLine[1] ? color.red : color.new(color.red, 50)) plot(histLine, "Histograma", style=plot.style_columns, color=histColor) plot(macdLine, "MACD", color=color.blue) plot(signalLine, "Sinal", color=color.orange) hline(0, "Zero", color=color.gray) // sinais nos cruzamentos buySignal = ta.crossover(macdLine, signalLine) sellSignal = ta.crossunder(macdLine, signalLine) plotshape(buySignal, title="Compra", style=shape.labelup, location=location.bottom, color=color.green, text="BUY", textcolor=color.white, size=size.tiny) plotshape(sellSignal, title="Venda", style=shape.labeldown, location=location.top, color=color.red, text="SELL", textcolor=color.white, size=size.tiny) // alertas para webhook/automacao alertcondition(buySignal, "MACD Compra", "MACD cruzou o sinal para cima") alertcondition(sellSignal, "MACD Venda", "MACD cruzou o sinal para baixo")
Ajuste de parâmetros: o trio 12/26/9 é o padrão histórico, mas não é sagrado. Em timeframes muito curtos ele gera ruído; aumente os períodos para suavizar. Sempre faça backtest antes de confiar em qualquer combinação.

Erros comuns

Trocar a ordem da tupla: a sequência é MACD, sinal, histograma. Inverter quebra os sinais silenciosamente.
Operar todo cruzamento: em mercado lateral o MACD cruza dezenas de vezes. Combine com um filtro de tendência (ex.: uma média de 200).
Confundir histograma com sinal: o histograma mede a distância entre as linhas; o gatilho clássico é o cruzamento, não o pico do histograma.
Esperar previsão: o MACD é um indicador atrasado, derivado de médias. Ele descreve o que já aconteceu, não prevê topos e fundos.

FAQ

ta.macd existe no Pine v4?
A função embutida que devolve as três séries é do v5. No v4 era comum calcular o MACD na mão com ta.ema. Migre para o v5.

Posso usar outra fonte em vez de close?
Sim. Você pode passar hlc3, open ou qualquer série como source, mas o padrão consagrado é close.

Dá para automatizar os sinais?
Sim: o alertcondition cria alertas que disparam webhooks. A partir daí, um script externo em Python pode executar a ordem — sempre testado em conta demo primeiro.

MACD funciona em opções binárias?
Ele é só um indicador de momento. Em expirações muito curtas o ruído domina e os sinais perdem confiabilidade. Trate como um filtro de contexto, nunca como gatilho isolado.

Aviso: opções binárias e trading em geral são atividades de altíssimo risco e a maioria dos traders de varejo perde dinheiro. Este conteúdo é educacional e técnico, não constitui recomendação de investimento, oferta ou aconselhamento financeiro. Indicadores não preveem o futuro e resultados passados não garantem resultados futuros. Teste sempre em conta demo antes de arriscar capital real e nunca invista mais do que você pode perder.