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

ExponentialAverage

ExponentialAverage i ProBuilder returnerer det eksponentielle glidende gjennomsnittet (EMA) av en pris eller serie over N barer. Syntaks, formel, eksempler og fallgruver.

Syntaks

probuilder
ExponentialAverage[N](price)

Parametere

NavnTypeStandardBeskrivelse
Nheltall20Periode for gjennomsnittet. Bestemmer glattingsfaktoren 2 / (N + 1). Vanlige innstillinger er 9, 12, 21, 26, 50 og 200.
pricepriskildelukkSerien som skal jevnes ut. Godtar enhver priskonstant eller numerisk variabel, inkludert andre indikatorer.

Formel

kode
EMA(t) = alpha * price(t) + (1 - alpha) * EMA(t-1)
where alpha = 2 / (N + 1)

Hver ny verdi blander gjeldende pris med den forrige EMA. Vekten av én enkelt bar avtar eksponentielt med alderen, og det er derfra navnet kommer. Ulikt et enkelt gjennomsnitt beholder hver tidligere bar en liten restpåvirkning.

Slik fungerer det

Et enkelt glidende gjennomsnitt behandler alle N barer likt, så en gammel bar som faller ut av vinduet kan flytte linjen like mye som en ny pris som kommer inn. Det eksponentielle gjennomsnittet fjerner dette artefaktet ved å vekte barene geometrisk: det siste lukket betyr mest, det før det litt mindre, og så videre. Den praktiske effekten er mindre etterslep for samme nominelle periode.

Den rekursive definisjonen betyr at beregningen avhenger av tidligere verdier. ProRealTime™ seeder serien fra den tidligste innlastede baren, så de første verdiene etter datastarten er mindre meningsfulle. På korte datavinduer, eller i ProOrder med lav forhåndsinnlasting av barer, kan tidlige verdier avvike fra samme EMA tegnet på et lengre diagram.

ExponentialAverage[N](price) gir samme utdata som Average[N,1](price); den dedikerte funksjonen gjør bare hensikten eksplisitt. Som alle ProBuilder-gjennomsnitt tar den imot enhver numerisk serie, så den brukes ofte til å jevne ut oscillatorer framfor rå pris.

Eksempler

Eksempel 1, Utjevning av RSI (Indikator)

probuilder
// Smooth a 14-period RSI with a 10-period EMA
i1 = RSI[14]
i2 = ExponentialAverage[10](i1)
RETURN i1 as "RSI", i2 coloured(147,112,216) as "smoothed RSI"

Bruker et 10-perioders eksponentielt gjennomsnitt på RSI, og plotter både den rå oscillatoren og den utjevnede versjonen i lilla. EMA holder den utjevnede linjen nærmere den rå serien enn en SMA av samme lengde ville gjort.

Eksempel 2, EMA-kryssingsstrategi (ProOrder)

probuilder
// Hold long while the 12-period EMA is above the 26-period EMA
fastEMA = ExponentialAverage[12](close)
slowEMA = ExponentialAverage[26](close)

IF fastEMA CROSSES OVER slowEMA THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF fastEMA CROSSES UNDER slowEMA AND LongOnMarket THEN
  SELL AT MARKET
ENDIF

Bruker periodene 12 og 26 kjent fra MACD. Den reduserte forsinkelsen til eksponentielle gjennomsnitt utløser innganger og utganger tidligere enn den tilsvarende SMA-kryssingen, på bekostning av flere whipsaws i hakkete forhold.

Eksempel 3, Lukkekurs som krysser over 50 EMA (ProScreener)

probuilder
// List instruments whose close just crossed above the 50-period EMA
ema50 = ExponentialAverage[50](close)
SCREENER[close CROSSES OVER ema50](close AS "Close")

Returnerer bare instrumentene der den siste lukkekursen gikk fra under til over det 50-perioders eksponentielle gjennomsnittet på gjeldende bar, en skanning etter momentum-skifte.

Tolkning

Pris mot EMA. Pris som holder seg over en stigende EMA indikerer en opptrend på den horisonten; pris under en fallende EMA, en nedtrend. På grunn av den reduserte forsinkelsen følger EMA prisen tettere enn en SMA, så den foretrekkes ofte som en trailing trendlinje på kortere tidsrammer.

Kryssinger. Kryssinger der rask EMA går over langsom signaliserer et momentum-skifte, mekanismen bak MACD-linjen. Kryssingene kommer tidligere enn med enkle gjennomsnitt, men reverserer også oftere; avveiningen er responsivitet mot falske signaler.

Stigning. En EMA som flater ut markerer avtagende momentum før noe kryss inntreffer, og er ofte den tidligere advarselen.

Vanlige feil og fallgruver

  • Feil parentestype. ExponentialAverage(10, close) gir en syntaksfeil. Perioden står i hakeparenteser, serien i vanlige parenteser: ExponentialAverage[10](close).
  • Avhengighet av historikk. Den rekursive formelen betyr at de første barene med lastede data gir en ustabil EMA. I ProOrder, øk PRELOADBARS når en EMA med lang periode driver logikken; på diagrammer bør verdier nær venstre kant ignoreres.
  • Sammenligning av EMA og SMA med samme periode. En N-periodes EMA har kortere effektiv hukommelse enn en N-perioders SMA. Å oversette en strategi fra den ene til den andre med samme periode endrer oppførselen.
  • Å forvente en type-parameter. I motsetning til Average, tar denne funksjonen ikke noe andre parentesargument. ExponentialAverage[10,1](close) er ugyldig; typen er allerede fastsatt.
  • Average, generelt glidende gjennomsnitt; Average[N,1] er samme EMA.
  • WeightedAverage, lineær vekting, et mellomledd mellom SMA og EMA.
  • WilderAverage, EMA-variant med alpha = 1 / N, brukt inne i RSI og ATR.
  • ZLEMA, zero-lag eksponentielt glidende gjennomsnitt.
  • DEMA, dobbelt eksponentielt glidende gjennomsnitt, ytterligere reduksjon av forsinkelse.
  • TEMA, trippelt eksponentielt glidende gjennomsnitt.
  • HullAverage, alternativ med lav forsinkelse bygget av vektede gjennomsnitt.
  • RSI, oscillator som ofte jevnes ut med en EMA, som i Eksempel 1.