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

DEMA

DEMA i ProBuilder returnerer Double Exponential Moving Average, et glidende gjennomsnitt med redusert forsinkelse bygget av to EMA-er. Syntaks, formel, eksempler, fallgruver.

Syntaks

probuilder
DEMA[N](price)

Parametere

NavnTypeStandardBeskrivelse
Nheltall20Antall perioder for begge EMA-gjennomløpene. Lavere verdier følger kursen tett, høyere verdier glatter mer.
pricepriskildelukkSerien gjennomsnittet beregnes på, for eksempel close, open, high, low, eller en egendefinert variabel.

Formel

kode
EMA1 = ExponentialAverage[N](price)
EMA2 = ExponentialAverage[N](EMA1)
DEMA = 2 * EMA1 - EMA2

Slik fungerer det

Alle glidende gjennomsnitt ligger etter prisen, og å glatte en EMA en gang til ligger enda mer etter. DEMA-konstruksjonen utnytter dette: differansen EMA1 - EMA2 tilnærmer den aktuelle forsinkelsen, og å legge den tilbake oppå EMA1 (som er det 2 * EMA1 - EMA2 gjør) skyver linjen fremover mot de nyeste prisene.

Resultatet er ikke et gjennomsnitt av gjennomsnitt. Til tross for navnet reagerer DEMA raskere enn en enkeltstående EMA med samme periode, ikke langsommere. I markeder med trend vender den tidligere ved swing-punkter, som er grunnen til at den brukes i krysningssystemer der signalforsinkelse er kostbar.

Avveiningen er stabilitet. Fordi forsinkelseskompensasjonen er en ekstrapolering, kan DEMA skyte over kursen etter skarpe bevegelser og gi whipsaw-krysninger i hakkete forhold. Bekreftelse fra et langsommere gjennomsnitt eller et filter for trendstyrke er den vanlige løsningen.

Eksempler

Eksempel 1, Sammenligning av forsinkelse mellom DEMA og EMA (Indikator)

probuilder
// Same period, two smoothing methods, plotted on price
fastLine = DEMA[20](close)
slowLine = ExponentialAverage[20](close)
RETURN fastLine COLOURED(200, 60, 60) AS "DEMA 20", slowLine COLOURED(60, 60, 200) AS "EMA 20"

Legger en DEMA over 20 perioder og en EMA over 20 perioder oppå kursen. DEMA vender synlig tidligere ved swing-topper og swing-bunner, og viser forsinkelsesreduksjonen.

Eksempel 2, Telling av barer under gjennomsnittet (Indikator)

probuilder
// 10-period DEMA of the opening price
i1 = DEMA[10](open)
a = 0
// Count how many consecutive past opens sit below the current DEMA value
WHILE Open[a + 1] < i1 DO
  a = a + 1
WEND
RETURN a

Går baklengs gjennom barene og teller hvor mange påfølgende tidligere åpningskurser som ligger under gjeldende DEMA, et grovt mål på hvor strukket kursen er mot gjennomsnittet.

Eksempel 3, System med dobbel DEMA-krysning (ProOrder)

probuilder
// Fast and slow DEMA crossover with position reversal
fastDema = DEMA[10](close)
slowDema = DEMA[40](close)

IF fastDema CROSSES OVER slowDema THEN
  BUY 1 CONTRACT AT MARKET
ELSIF fastDema CROSSES UNDER slowDema THEN
  SELLSHORT 1 CONTRACT AT MARKET
ENDIF

Et klassisk system med to glidende gjennomsnitt som bruker DEMA på begge ben. Den reduserte forsinkelsen flytter inngangene nærmere den faktiske vendingen enn det samme systemet bygget på enkle gjennomsnitt.

Tolkning

DEMA leses som ethvert glidende gjennomsnitt, bare raskere:

  • Kurs over en stigende DEMA. Opptrendlesning. Pullbacks mot linjen er potensielle fortsettelsessoner.
  • Kurs under en fallende DEMA. Nedtrendlesning, symmetrisk med det ovenfor.
  • Kryssinger. En rask DEMA som krysser en langsom gir signal om et momentum-skifte tidligere enn den tilsvarende SMA- eller EMA-krysningen, med tilsvarende flere falske starter i sideveis markeder.

Vanlige feil og fallgruver

  • Å anta at DEMA er langsommere enn EMA. Navnet antyder dobbel glatting, men formelen trekker fra den andre EMA-en. En DEMA reagerer raskere enn en EMA med samme periode, så å overføre periodeinnstillinger fra EMA-systemer endrer oppførselen.
  • Overskyting etter gap og spisser. Den 2 * EMA1 - EMA2 ekstrapolering kan flytte linjen utenfor prisen etter brå bevegelser. Betingelser som close CROSSES OVER dema kan utløses oftere enn forventet rett etter volatilitetshendelser.
  • Feil bruk av parenteser. Perioden skal i hakeparenteser og prisen i parenteser: DEMA[10](open). DEMA(10, open) gir en syntaksfeil.
  • Baklengs løkker må avsluttes. Når du skanner tidligere barer med WHILE, som i eksempel 2, sørg for at løkkebetingelsen til slutt feiler på tilgjengelig historikk, ellers treffer indikatoren plattformens løkkegrense på lange diagrammer.
  • ExponentialAverage, den enkeltstående EMA-en som DEMA er bygget av.
  • TEMA, trippel eksponentiell variant med enda mindre forsinkelse og mer overskyting.
  • ZLEMA, zero-lag EMA, en annen tilnærming til forsinkelseskompensasjon.
  • HullAverage, lavforsinkelsesalternativ basert på vektet gjennomsnitt.
  • Average, enkelt glidende gjennomsnitt som basislinje.
  • WeightedAverage, lineært vektet gjennomsnitt.
  • WilderAverage, langsom glatting brukt inne i RSI og ADX.
  • TimeSeriesAverage, gjennomsnitt basert på lineær regresjon.