Bli medlem i dag
Indikatorer/probuilder · probacktest · proorder · proscreener

MACDLine

MACDLine i ProBuilder returnerer den rå MACD-linjen, den korte EMA-en minus den lange EMA-en av prisen, til forskjell fra MACD-histogrammet. Syntaks, formel, eksempler.

Syntaks

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

Parametere

NavnTypeStandardBeskrivelse
Sheltall12Perioden til det korte eksponentielle gjennomsnittet.
Lheltall26Perioden til det lange eksponentielle gjennomsnittet.
Siheltall9Signalperiode. Kreves av den delte MACD-signaturen, men har ingen innvirkning på verdien av linjen selv.
pricepriskildelukkSerien begge gjennomsnittene beregnes på, vanligvis close.

Formel

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

De tre MACD-funksjonene henger sammen slik:

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

Slik fungerer det

MACD-linjen måler spread-en mellom et raskt og et tregt eksponentielt gjennomsnitt. Når det korte gjennomsnittet trekker seg bort over det lange, stiger linjen over null, noe som gjenspeiler akselererende momentum oppover; når det korte gjennomsnittet faller under, blir linjen negativ. Fordi begge inndataene er gjennomsnitt av samme serie, svinger linjen rundt null uten å være begrenset.

Navngivningen på tvers av de tre relaterte funksjonene er den vanlige kilden til forvirring, og den avviker fra noen andre plattformer. I ProBuilder, MACD[S,L,Si](price) returnerer histogrammet, altså linjen minus signalet. MACDLine returnerer den rå linjen som er beskrevet på denne siden. MACDsignal returnerer Si-perioders eksponentielt gjennomsnitt av linjen. Enhver strategi flyttet fra et miljø der MACD() angir at den rå linjen må skrives om for å kalle MACDLine i stedet.

En praktisk konsekvens: siden histogrammet er lik MACDLine - MACDsignal, er histogrammet positivt nøyaktig når linjen ligger over signalet sitt, og en nullkryssing i histogrammet er samme hendelse som en kryssing mellom linje og signal.

Eksempler

Eksempel 1, Sammenligning av histogram og 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

Sammenligner histogrammet med linjen. Siden histogrammet er lik linje minus signal, ligger histogrammet under linjen nøyaktig når signallinjen er positiv, så disse kryssene markerer at signallinjen beveger seg gjennom null.

Eksempel 2, Inngang ved kryss mellom linje og 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 inn på det klassiske krysset, begrenset til kryss som skjer under nullinjen, og går ut på det motsatte krysset.

Eksempel 3, Søk etter kryss av nullinjen (ProScreener)

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

Returnerer instrumenter der spread-en mellom de eksponentielle 12-26 gjennomsnittene krysset over null på den gjeldende baren, et skifte i momentum-regime.

Tolkning

En positiv linje betyr at det korte gjennomsnittet ligger over det lange, standarddefinisjonen på momentum oppover; en negativ linje betyr det motsatte. Nullkrysset markerer derfor et skifte i momentum-regime og er omtrent det samme som et kryss mellom et raskt og et tregt gjennomsnitt på prisdiagrammet.

Kryssinger mellom linjen og MACDsignal er den klassiske handelstriggeren, raskere enn nullkryssingen men mer støyete. Divergenser, der prisen setter et nytt ytterpunkt som linjen ikke bekrefter, er den tredje vanlige tolkningen; DivergenceMACD automatiserer deteksjonen av dem.

Vanlige feil og fallgruver

  • MACD er ikke linjen. I ProBuilder, MACD[12,26,9](close) returnerer histogrammet. Kode oversatt fra plattformer der MACD-funksjonen returnerer den rene linjen vil gi andre signaler med mindre den endres til MACDLine.
  • Den Si parameteren er inaktiv her. MACDLine[12,26,9](close) og MACDLine[12,26,2](close) returnerer identiske verdier. Signalperioden finnes i klammene bare for at de tre MACD-funksjonene skal dele én signatur.
  • Verdiene skalerer med prisen. Linjen er en absolutt prisdifferanse, så avlesningene er ikke sammenlignbare på tvers av instrumenter eller etter store prisendringer. For skanninger på tvers av instrumenter, normaliser, for eksempel ved å dividere med close.
  • Kort minus lang, i den rekkefølgen. Den første perioden må være den minste. Å bytte om på dem, som i MACDLine[26,12,9](close), snur fortegnet på utdataene og inverterer hvert signal.
  • MACD, histogrammet, linje minus signal.
  • MACDsignal, eksponentielt gjennomsnitt av linjen, kryssutløseren.
  • DivergenceMACD, innebygd divergensdeteksjon på MACD.
  • ExponentialAverage, utjevningen begge komponentene er bygget av.
  • PriceOscillator, prosentbasert variant av samme spread-idé.
  • Momentum, rå prisdifferanse over N barer.
  • ROC, endringsrate, momentum i prosent.
  • Average, enkelt glidende gjennomsnitt for sammenligning.