Bli medlem idag
Indikatorer/probuilder · probacktest · proorder · proscreener

MACDLine

MACDLine i ProBuilder returnerar den råa MACD-linjen, den korta EMA minus den långa EMA av priset, skild från MACD-histogrammet. Syntax, formel, exempel.

Syntax

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

Parametrar

NamnTypStandardBeskrivning
Sheltal12Period för det korta exponentiella medelvärdet.
Lheltal26Period för det långa exponentiella medelvärdet.
Siheltal9Signalperiod. Krävs av den gemensamma MACD-signaturen men påverkar inte linjens eget värde.
pricepriskällacloseSerien som båda medelvärdena beräknas på, vanligen close.

Formel

kod
MACDLine = ExponentialAverage[S](price) - ExponentialAverage[L](price)

De tre MACD-funktionerna hänger samman så här:

kod
MACDsignal = ExponentialAverage[Si](MACDLine)
MACD       = MACDLine - MACDsignal        // the histogram

Så fungerar det

MACD-linjen mäter spreaden mellan ett snabbt och ett långsamt exponentiellt medelvärde. När det korta medelvärdet drar ifrån över det långa stiger linjen över noll, vilket speglar accelererande momentum uppåt; när det korta medelvärdet faller under blir linjen negativ. Eftersom båda indata är medelvärden av samma serie oscillerar linjen runt noll utan att vara begränsad.

Namngivningen bland de tre relaterade funktionerna är den vanliga källan till förvirring, och den skiljer sig från vissa andra plattformar. I ProBuilder, MACD[S,L,Si](price) returnerar histogrammet, det vill säga linjen minus dess signal. MACDLine returnerar den råa linjen som beskrivs på den här sidan. MACDsignal returnerar Si-periods exponentiella medelvärde av linjen. Varje strategi som flyttats från en miljö där MACD() anger att den råa linjen måste skrivas om för att anropa MACDLine istället.

En praktisk konsekvens: eftersom histogrammet är lika med MACDLine - MACDsignal, är histogrammet positivt exakt när linjen ligger över sin signal, och en nollkorsning i histogrammet är samma händelse som en korsning mellan linje och signal.

Exempel

Exempel 1, Jämförelse mellan histogram och linje (Indikator)

probuilder
// MACD[...] returns the histogram (line minus signal)
i1 = MACD[12,26,9](close)
// MACDLine returns the raw line (12 EMA minus 26 EMA)
i2 = MACDLine[12,26,9](close)
IF i1 < i2 AND i1[1] > i2[1] THEN
  bullishSignal = 1
  bearishSignal = 0
ELSIF i1 > i2 AND i1[1] < i2[1] THEN
  bullishSignal = 0
  bearishSignal = -1
ELSE
  bullishSignal = 0
  bearishSignal = 0
ENDIF
RETURN bullishSignal, bearishSignal

Jämför histogrammet med linjen. Eftersom histogrammet är linje minus signal ligger histogrammet under linjen exakt när signallinjen är positiv, så de här korsningarna markerar att signallinjen rör sig genom noll.

Exempel 2, Entry vid korsning mellan linje och signal (ProOrder)

probuilder
// Long on a MACD line cross above the signal while still below zero
line   = MACDLine[12,26,9](close)
signal = MACDsignal[12,26,9](close)

IF NOT LongOnMarket AND line CROSSES OVER signal AND line < 0 THEN
  BUY 1 CONTRACT AT MARKET
ELSIF LongOnMarket AND line CROSSES UNDER signal THEN
  SELL AT MARKET
ENDIF

Går in på den klassiska korsningen, begränsad till korsningar som sker under nollinjen, och går ur på den motsatta korsningen.

Exempel 3, Skanning efter korsning av nollinjen (ProScreener)

probuilder
// Instruments whose MACD line just turned positive
line = MACDLine[12,26,9](close)
SCREENER[line CROSSES OVER 0](line AS "MACD line")

Returnerar instrument där spreaden mellan de exponentiella medelvärdena 12-26 korsade över noll på den aktuella baren, ett regimskifte i momentum.

Tolkning

En positiv linje betyder att det korta medelvärdet ligger över det långa, standarddefinitionen av momentum uppåt; en negativ linje betyder det omvända. Nollkorsningen markerar därför ett regimskifte i momentum och motsvarar i stort sett en korsning mellan ett snabbt och ett långsamt medelvärde i prisdiagrammet.

Korsningar mellan linjen och MACDsignal är den klassiska affärstriggern, snabbare än nollkorsningen men mer brusig. Divergenser, där priset sätter ett nytt extremvärde som linjen inte bekräftar, är den tredje vanliga läsningen; DivergenceMACD automatiserar deras upptäckt.

Vanliga fel och fallgropar

  • MACD är inte linjen. I ProBuilder, MACD[12,26,9](close) returnerar histogrammet. Kod som översatts från plattformar där MACD-funktionen returnerar den råa linjen ger andra signaler om den inte ändras till MACDLine.
  • Den Si parametern är verkningslös här. MACDLine[12,26,9](close) och MACDLine[12,26,2](close) returnerar identiska värden. Signalperioden finns i parentesen bara för att de tre MACD-funktionerna ska dela samma signatur.
  • Värdena skalar med priset. Linjen är en absolut prisskillnad, så värdena är inte jämförbara mellan instrument eller efter stora prisförändringar. För skanningar över flera instrument, normalisera, till exempel genom att dividera med close.
  • Kort minus lång, i den ordningen. Den första perioden måste vara den mindre. Att byta plats på dem, som i MACDLine[26,12,9](close), vänder tecknet på utdata och inverterar varje signal.
  • MACD, histogrammet, linje minus signal.
  • MACDsignal, exponentiellt medelvärde av linjen, korsningstriggern.
  • DivergenceMACD, inbyggd divergensdetektering på MACD.
  • ExponentialAverage, den utjämning som båda komponenterna är byggda av.
  • PriceOscillator, procentbaserad variant av samma spread-idé.
  • Momentum, ren prisskillnad över N barer.
  • ROC, förändringstakt, momentum i procent.
  • Average, enkelt glidande medelvärde för jämförelse.