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

DEMA

DEMA i ProBuilder returnerar Double Exponential Moving Average, ett glidande medelvärde med minskad eftersläpning som byggs av två EMA. Syntax, formel, exempel, fallgropar.

Syntax

probuilder
DEMA[N](price)

Parametrar

NamnTypStandardBeskrivning
Nheltal20Antal perioder för båda EMA-stegen. Lägre värden följer kursen tätt, högre värden jämnar ut mer.
pricepriskällacloseSerien som medelvärdet beräknas på, till exempel close, open, high, low, eller en egen variabel.

Formel

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

Så fungerar det

Varje glidande medelvärde släpar efter priset, och att jämna ut ett EMA en andra gång släpar ännu mer. DEMA-konstruktionen utnyttjar det: skillnaden EMA1 - EMA2 approximerar den aktuella fördröjningen, och att lägga den tillbaka ovanpå EMA1 (vilket är vad 2 * EMA1 - EMA2 gör) skjuter linjen framåt mot de senaste priserna.

Resultatet är inte ett medelvärde av medelvärden. Trots namnet reagerar DEMA snabbare än en enskild EMA med samma period, inte långsammare. I trendande marknader vänder den tidigare vid swing-punkter, vilket är anledningen till att den används i korsningssystem där signalfördröjning är kostsam.

Avvägningen är stabilitet. Eftersom eftersläpningskompensationen är en extrapolering kan DEMA skjuta över kursen efter kraftiga rörelser och ge whipsaw-korsningar i hackiga förhållanden. Bekräftelse från ett långsammare medelvärde eller ett filter för trendstyrka är den vanliga lösningen.

Exempel

Exempel 1, Jämförelse av eftersläpning mellan DEMA och 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"

Lägger en 20-periods DEMA och en 20-periods EMA över kursen. DEMA vänder synligt tidigare vid swing-toppar och swing-bottnar, vilket visar den minskade eftersläpningen.

Exempel 2, Räkna barer under medelvärdet (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 bakåt genom barerna och räknar hur många på varandra följande tidigare öppningskurser som ligger under aktuell DEMA, ett grovt mått på hur utsträckt kursen är i förhållande till medelvärdet.

Exempel 3, System med dubbel DEMA-korsning (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

Ett klassiskt system med två glidande medelvärden som använder DEMA i båda benen. Den minskade eftersläpningen flyttar entries närmare den faktiska vändningen än samma system byggt på enkla medelvärden.

Tolkning

DEMA läses som vilket glidande medelvärde som helst, bara snabbare:

  • Kurs över en stigande DEMA. Avläsning i upptrend. Rekyler mot linjen är potentiella fortsättningszoner.
  • Kurs under en fallande DEMA. Avläsning i nedtrend, symmetrisk med ovanstående.
  • Korsningar. En snabb DEMA som korsar en långsam signalerar ett skifte i momentum tidigare än motsvarande SMA- eller EMA-korsning, med motsvarande fler falska starter i sidledsrörelser.

Vanliga fel och fallgropar

  • Att anta att DEMA är långsammare än EMA. Namnet antyder dubbel utjämning, men formeln subtraherar den andra EMA:n. En DEMA reagerar snabbare än en EMA med samma period, så att föra över periodinställningar från EMA-system ändrar beteendet.
  • Överskjutning efter gap och spikar. Den 2 * EMA1 - EMA2 extrapolering kan flytta linjen bortom priset efter abrupta rörelser. Villkor som close CROSSES OVER dema kan utlösas oftare än väntat direkt efter volatilitetshändelser.
  • Fel användning av parenteser. Perioden står inom hakparenteser och priset inom parenteser: DEMA[10](open). DEMA(10, open) ger ett syntaxfel.
  • Bakåtlöpande loopar måste avslutas. Vid genomsökning av tidigare barer med WHILE, som i Exempel 2, se till att loopvillkoret så småningom blir falskt på tillgänglig historik, annars slår indikatorn i plattformens loopgräns på långa diagram.
  • ExponentialAverage, den enskilda EMA som DEMA bygger på.
  • TEMA, trippelexponentiell variant med ännu mindre eftersläpning och mer överskjutning.
  • ZLEMA, zero-lag EMA, ett annat sätt att kompensera för eftersläpning.
  • HullAverage, alternativ med låg eftersläpning baserat på viktat genomsnitt.
  • Average, enkelt glidande medelvärde som baslinje.
  • WeightedAverage, linjärt viktat genomsnitt.
  • WilderAverage, långsam utjämning som används inuti RSI och ADX.
  • TimeSeriesAverage, genomsnitt baserat på linjär regression.