MACD
MACD i ProBuilder returnerer MACD-histogrammet, avstanden mellom MACD-linjen og signallinjen, med standardinnstillingene 12/26/9. Syntaks og eksempler.
Syntaks
MACD[S, L, Si](price)Parametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
S | heltall | 12 | Perioden til det korte eksponentielle glidende gjennomsnittet. |
L | heltall | 26 | Periode for det lange eksponentielle glidende gjennomsnittet. Må være større enn S. |
Si | heltall | 9 | Perioden til det eksponentielle glidende gjennomsnittet som anvendes på MACD for å danne signallinjen. |
price | priskilde | lukk | Prisserien beregningen kjører på. Vanligvis close, godtar også open, high, low, typicalprice, eller en egendefinert variabel. |
Formel
MACD line = EMA[S](price) - EMA[L](price)
Signal = EMA[Si](MACD line)
MACD[S, L, Si](price) = MACD line - Signal // the histogramResultatet er ubegrenset og uttrykt i instrumentets prisenheter. Når MACD-linjen ligger over signallinjen er verdien positiv; når den ligger under, er verdien negativ.
Slik fungerer det
På hver bar beregner ProBuilder MACD-linjen, den korte EMA-en av price minus den lange EMA-en, og utjevner deretter den linjen med en Si-periode EMA for å danne signallinjen. Den MACD instruksjonen returnerer differansen mellom de to, serien diagramprogrammer tegner som histogrammet. En kryssing gjennom null markerer derfor en kryssing av signallinjen, ikke en EMA-kryssing.
De to komponentseriene er tilgjengelige som separate instruksjoner: MACDLine returnerer den rå linjen og MACDsignal returnerer signallinjen. MACDLine - MACDsignal gjenskaper verdien som returneres av MACD.
MACD ble utformet av Gerald Appel som en trendfølgende momentum-indikator. Den kombinerer to spørsmål i én serie: hvilken side av trenden det korte gjennomsnittet er på, og hvor raskt avstanden mellom gjennomsnittene endrer seg.
Eksempler
Eksempel 1, Stigende MACD mens prisen korrigerer (Indikator)
// 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 resultBevart fra kildesiden. Betingelsen kombinerer en fallende lukkekurs med en stigende MACD. Merk at hver gjennomgang av løkken overskriver result, så den returnerte verdien gjenspeiler bare siste iterasjon (i = 0), den gjeldende baren.
Eksempel 2, Strategi for kryss av signallinjen (ProOrder)
// 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
ENDIFFordi MACD returnerer histogrammet, betyr en nullkryssing at MACD-linjen har krysset signallinjen sin, den klassiske MACD-inngangstriggeren uttrykt i én enkelt betingelse.
Eksempel 3, Forbedret momentum under null (ProScreener)
// 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")Returnerer instrumenter som fortsatt ligger under signallinjen men med en krympende avstand, et søk etter momentum-forbedring som utløses før selve krysset.
Tolkning
| Signal | Avlesning |
|---|---|
| Histogram over null | MACD-linjen over signallinjen, momentum oppover. |
| Histogram under null | MACD-linjen under signallinjen, momentum nedover. |
| Histogram krysser over null | Bullish kryss over signallinjen, en vanlig utløserbetingelse. |
| Histogram som krymper mot null | Momentum som avtar foran et mulig kryss. |
For kryssinger av nullinjen for selve MACD-linjen, EMA-kryssingsavlesningen, test MACDLine mot null i stedet.
Divergenser. En bullish divergens oppstår når prisen setter en lavere bunn mens MACD danner en høyere bunn. En bearish divergens oppstår når prisen setter en høyere topp mens MACD danner en lavere topp. Begge leses som tidlige tegn på en mulig vending, og DivergenceMACD instruksjonen oppdager dem direkte.
Vanlige feil og fallgruver
- Histogram, ikke linje.
MACDreturnerer histogrammet. Kode portert fra plattformer derMACD()returnerer linjen vil slå feil. BrukMACDLinefor linjen ogMACDsignalfor signalet. - Alle tre periodene er påkrevd.
MACD[12,26](close)gir en syntaksfeil. Periodene står i hakeparenteser, priskilden i runde parenteser:MACD[12,26,9](close). - Overskriving i løkke. I kildemønsteret fra eksempel 1 tilordner FOR-løkken
resultved hver iterasjon, så tidligere bars forkastes. For å telle treff over 21 bars, akkumuler i en teller i stedet for å overskrive. - Ikke sammenlignbart på tvers av instrumenter. MACD er ubegrenset og skalerer med prisen. En verdi på 2.5 på en indeks og 0.002 på et forexpar har ingen relativ betydning. Screenere som rangerer etter rå MACD blander skalaer.
- Forsinkelse i trege markeder. To nøstede EMA-er gjør MACD til et etterslepende mål. Kryss kommer godt etter vendingen ved høyere innstillinger, og å forkorte periodene bytter forsinkelse mot falske vendinger.
Relaterte instruksjoner
MACDLine, MACD-linjen som en frittstående serie.MACDsignal, signallinjen, en EMA av MACD.DivergenceMACD, innebygd divergensdeteksjon.ExponentialAverage, EMA-en som MACD er bygget av.PriceOscillator, prosentbasert variant av samme idé.Momentum, rå prisendring over N barer.TRIX, trippelutjevnet EMA-endringsrate.Average, enkelt glidende gjennomsnitt for utjevning av MACD-utdata.