MACD
MACD in ProBuilder geeft het MACD-histogram, het verschil tussen de MACD-lijn en zijn signaallijn, met de standaardinstellingen 12/26/9. Syntaxis en voorbeelden.
Syntaxis
MACD[S, L, Si](price)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
S | geheel getal | 12 | Periode van het korte exponentieel voortschrijdend gemiddelde. |
L | geheel getal | 26 | Periode van de lange exponentiële moving average. Moet groter zijn dan S. |
Si | geheel getal | 9 | Periode van het exponentieel voortschrijdend gemiddelde dat op de MACD wordt toegepast om de signaallijn te vormen. |
price | prijsbron | close | De koersreeks waarop de berekening loopt. Gebruikelijk is close, accepteert ook open, high, low, typicalprice, of een eigen variabele. |
Formule
MACD line = EMA[S](price) - EMA[L](price)
Signal = EMA[Si](MACD line)
MACD[S, L, Si](price) = MACD line - Signal // the histogramHet resultaat is onbegrensd en wordt uitgedrukt in de prijseenheden van het instrument. Wanneer de MACD-lijn boven zijn signaallijn ligt, is de waarde positief; wanneer hij eronder ligt, is de waarde negatief.
Hoe het werkt
Op elke bar berekent ProBuilder de MACD-lijn, de korte EMA van price min de lange EMA, en smooth die lijn vervolgens met een Si-periode EMA om de signaallijn te vormen. De MACD instructie geeft het verschil tussen de twee, de reeks die grafiekpakketten als het histogram tekenen. Een kruising door nul markeert daarom een crossover van de signaallijn, niet een EMA-crossover.
De twee componentreeksen zijn als aparte instructies beschikbaar: MACDLine geeft de ruwe lijn terug en MACDsignal geeft de signaallijn terug. MACDLine - MACDsignal reproduceert de waarde geretourneerd door MACD.
MACD is ontworpen door Gerald Appel als een trendvolgende momentumindicator. Hij combineert twee vragen in één reeks: aan welke kant van de trend het korte gemiddelde zich bevindt, en hoe snel het verschil tussen de gemiddelden verandert.
Voorbeelden
Voorbeeld 1, Stijgende MACD terwijl de prijs terugloopt (Indicator)
// 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 resultOvergenomen van de bronpagina. De voorwaarde combineert een dalende close met een stijgende MACD. Merk op dat elke doorloop van de lus overschrijft result, dus de teruggegeven waarde weerspiegelt alleen de laatste iteratie (i = 0), de huidige bar.
Voorbeeld 2, Strategie op kruising van de signaallijn (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
ENDIFOmdat MACD geeft het histogram, een nulkruising betekent dat de MACD-lijn zijn signaallijn heeft gekruist, de klassieke MACD-instaptrigger uitgedrukt in één enkele voorwaarde.
Voorbeeld 3, Verbeterend momentum onder nul (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")Geeft instrumenten die nog onder de signaallijn liggen maar met een krimpend verschil, een scan op momentumverbetering die afgaat vóór de werkelijke kruising.
Interpretatie
| Signaal | Stand |
|---|---|
| Histogram boven nul | MACD-lijn boven zijn signaallijn, opwaarts momentum. |
| Histogram onder nul | MACD-lijn onder zijn signaallijn, neerwaarts momentum. |
| Histogram kruist boven nul | Bullish kruising van de signaallijn, een gangbare triggervoorwaarde. |
| Histogram krimpt naar nul | Momentum dat afzwakt vooruitlopend op een mogelijke kruising. |
Voor kruisingen van de nullijn door de MACD-lijn zelf, de EMA-crossover-uitlezing, test MACDLine in plaats daarvan met nul.
Divergenties. Een bullish divergentie treedt op wanneer de prijs een lagere low zet terwijl de MACD een hogere low vormt. Een bearish divergentie treedt op wanneer de prijs een hogere high zet terwijl de MACD een lagere high vormt. Beide worden gelezen als vroege tekenen van een mogelijke omkering, en de DivergenceMACD instructie detecteert ze direct.
Veelvoorkomende fouten en valkuilen
- Histogram, niet de lijn.
MACDgeeft het histogram. Code die is overgezet van platforms waarMACD()geeft, werkt de lijn verkeerd. GebruikMACDLinevoor de lijn enMACDsignalvoor het signaal. - Alle drie de periodes zijn verplicht.
MACD[12,26](close)geeft een syntaxisfout. De periodes gaan tussen vierkante haken, de prijsbron tussen ronde haken:MACD[12,26,9](close). - Overschrijven in een loop. In het bronpatroon uit Voorbeeld 1 wijst de FOR-lus
resultbij elke iteratie, dus eerdere bars worden weggegooid. Gebruik een teller om treffers over 21 bars te tellen in plaats van te overschrijven. - Niet vergelijkbaar tussen instrumenten. MACD is onbegrensd en schaalt mee met de prijs. Een waarde van 2.5 op een index en 0.002 op een forexpaar hebben onderling geen relatieve betekenis. Screeners die op ruwe MACD rangschikken, mengen schalen.
- Vertraging in trage markten. Twee geneste EMA's maken MACD een achterblijvende maatstaf. Bij hogere instellingen komen kruisingen ruim na de omslag, en het verkorten van de periodes ruilt vertraging in voor whipsaws.
Gerelateerde instructies
MACDLine, de MACD-lijn als zelfstandige reeks.MACDsignal, de signaallijn, een EMA van de MACD.DivergenceMACD, ingebouwde divergentiedetectie.ExponentialAverage, de EMA waarop MACD is gebouwd.PriceOscillator, op percentages gebaseerde variant van hetzelfde idee.Momentum, ruwe prijsverandering over N bars.TRIX, veranderingssnelheid van een drievoudig gesmoothe EMA.Average, eenvoudig voortschrijdend gemiddelde om de MACD-output te smoothen.