Iscriviti ora
Indicatori/probuilder · probacktest · proorder · proscreener

MACD

MACD in ProBuilder restituisce l'istogramma MACD, la differenza tra la linea MACD e la sua linea di segnale, con impostazioni standard 12/26/9. Sintassi ed esempi.

Sintassi

probuilder
MACD[S, L, Si](price)

Parametri

NomeTipoPredefinitoDescrizione
Sintero12Periodo della media mobile esponenziale corta.
Lintero26Periodo della media mobile esponenziale lunga. Deve essere maggiore di S.
Siintero9Periodo della media mobile esponenziale applicata al MACD per formare la linea di segnale.
pricefonte di prezzochiusuraLa serie di prezzi su cui viene eseguito il calcolo. Di solito close, accetta anche open, high, low, typicalprice, o una variabile personalizzata.

Formula

codice
MACD line = EMA[S](price) - EMA[L](price)
Signal    = EMA[Si](MACD line)
MACD[S, L, Si](price) = MACD line - Signal   // the histogram

Il risultato non è limitato ed è espresso nelle unità di prezzo dello strumento. Quando la linea MACD si trova sopra la sua linea di segnale il valore è positivo; quando si trova sotto, il valore è negativo.

Come funziona

Su ogni bar, ProBuilder calcola la linea MACD, la EMA breve di price meno l'EMA lunga, poi smussa quella linea con una Si-periodi EMA per formare la linea del segnale. La MACD istruzione restituisce la differenza tra i due, la serie che i programmi di grafica disegnano come istogramma. Un attraversamento dello zero segna quindi un incrocio della linea di segnale, non un incrocio delle EMA.

Le due serie componenti sono disponibili come istruzioni separate: MACDLine restituisce la linea grezza e MACDsignal restituisce la linea del segnale. MACDLine - MACDsignal riproduce il valore restituito da MACD.

Il MACD è stato progettato da Gerald Appel come indicatore di momentum trend-following. Combina due domande in una sola serie: su quale lato del trend si trova la media corta, e quanto rapidamente sta cambiando la differenza tra le medie.

Esempi

Esempio 1, MACD in salita mentre il prezzo ritraccia (Indicatore)

probuilder
// MACD with the standard 12, 26, 9 settings on closing prices
i1 = MACD[12,26,9](close)
FOR i = 20 DOWNTO 0 DO
    IF(close[i] < close[i+1] AND i1 > i1[1]) THEN
        result = 100
    ELSE
        result = 0
    ENDIF
NEXT
RETURN result

Conservato dalla pagina originale. La condizione abbina una chiusura in calo a un MACD in salita. Nota che ogni passaggio del ciclo sovrascrive result, quindi il valore restituito riflette solo l'ultima iterazione (i = 0), la bar corrente.

Esempio 2, Strategia di incrocio della linea di segnale (ProOrder)

probuilder
// Go long when the histogram turns positive, exit when it turns negative
DEFPARAM CumulateOrders = false
m = MACD[12,26,9](close)

IF NOT LongOnMarket AND m CROSSES OVER 0 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND m CROSSES UNDER 0 THEN
  SELL AT MARKET
ENDIF

Poiché MACD restituisce l'istogramma, un incrocio dello zero significa che la linea MACD ha incrociato la sua linea del segnale, il classico trigger di ingresso MACD espresso in una sola condizione.

Esempio 3, Momentum in miglioramento sotto lo zero (ProScreener)

probuilder
// Instruments where a negative histogram has risen two bars in a row
hist = MACD[12,26,9](close)
improving = hist < 0 AND hist > hist[1] AND hist[1] > hist[2]
SCREENER[improving](hist AS "MACD hist")

Restituisce gli strumenti ancora sotto la linea di segnale ma con una differenza in riduzione, una scansione di miglioramento del momentum che scatta prima dell'incrocio effettivo.

Interpretazione

SegnaleLettura
Istogramma sopra lo zeroLinea MACD sopra la sua linea di segnale, momentum al rialzo.
Istogramma sotto lo zeroLinea MACD sotto la sua linea di segnale, momentum al ribasso.
L'istogramma incrocia sopra lo zeroIncrocio rialzista della linea di segnale, una condizione di innesco comune.
Istogramma che si restringe verso lo zeroMomentum in esaurimento prima di un possibile incrocio.

Per gli incroci della linea dello zero della linea MACD stessa, la lettura dell'incrocio delle EMA, verifica MACDLine con zero invece.

Divergenze. Una divergenza rialzista si verifica quando il prezzo segna un minimo più basso mentre il MACD forma un minimo più alto. Una divergenza ribassista si verifica quando il prezzo segna un massimo più alto mentre il MACD forma un massimo più basso. Entrambe vengono lette come primi segnali di una possibile inversione, e il DivergenceMACD istruzione li rileva direttamente.

Errori e insidie comuni

  • Istogramma, non linea. MACD restituisce l'istogramma. Il codice portato da piattaforme dove MACD() restituisce, la linea non si attiverà correttamente. Usa MACDLine per la linea e MACDsignal per il segnale.
  • Tutti e tre i periodi sono obbligatori. MACD[12,26](close) genera un errore di sintassi. I periodi vanno tra parentesi quadre, la fonte di prezzo tra parentesi tonde: MACD[12,26,9](close).
  • Sovrascrittura nel ciclo. Nel pattern di origine dell'Esempio 1, il ciclo FOR assegna result a ogni iterazione, quindi le barre precedenti vengono scartate. Per contare le corrispondenze su 21 barre, accumula in un contatore invece di sovrascrivere.
  • Non confrontabile tra strumenti diversi. Il MACD non è limitato e scala con il prezzo. Una lettura di 2.5 su un indice e di 0.002 su una coppia forex non hanno alcun significato relativo. Gli screener che ordinano per MACD grezzo mescolano le scale.
  • Ritardo nei mercati lenti. Due EMA annidate rendono il MACD una misura in ritardo. Gli incroci arrivano molto dopo l'inversione con impostazioni più alte, e accorciare i periodi scambia il ritardo con i falsi segnali.
  • MACDLine, la linea MACD come serie autonoma.
  • MACDsignal, la linea di segnale, una EMA del MACD.
  • DivergenceMACD, rilevamento integrato delle divergenze.
  • ExponentialAverage, la EMA su cui è costruito il MACD.
  • PriceOscillator, variante in percentuale della stessa idea.
  • Momentum, variazione di prezzo grezza su N bar.
  • TRIX, tasso di variazione di una EMA a triplo livellamento.
  • Average, media mobile semplice per livellare l'output del MACD.