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
DEMA[N](price)Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
N | heltal | 20 | Antal perioder för båda EMA-stegen. Lägre värden följer kursen tätt, högre värden jämnar ut mer. |
price | priskälla | close | Serien som medelvärdet beräknas på, till exempel close, open, high, low, eller en egen variabel. |
Formel
EMA1 = ExponentialAverage[N](price)
EMA2 = ExponentialAverage[N](EMA1)
DEMA = 2 * EMA1 - EMA2Så 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)
// 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)
// 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 aGå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)
// 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
ENDIFEtt 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 - EMA2extrapolering kan flytta linjen bortom priset efter abrupta rörelser. Villkor somclose CROSSES OVER demakan 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.
Relaterade instruktioner
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.