DEMA
DEMA in ProBuilder geeft de Double Exponential Moving Average, een moving average met verminderde lag die uit twee EMA's is opgebouwd. Syntaxis, formule, voorbeelden, valkuilen.
Syntaxis
DEMA[N](price)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
N | geheel getal | 20 | Aantal perioden voor beide EMA-passages. Lagere waarden volgen de koers nauw, hogere waarden vereffenen meer. |
price | prijsbron | close | Reeks waarover het gemiddelde wordt berekend, zoals close, open, high, low, of een eigen variabele. |
Formule
EMA1 = ExponentialAverage[N](price)
EMA2 = ExponentialAverage[N](EMA1)
DEMA = 2 * EMA1 - EMA2Hoe het werkt
Elk bewegend gemiddelde loopt achter op de prijs, en een EMA een tweede keer afvlakken loopt nog verder achter. De DEMA-constructie benut dat: het verschil EMA1 - EMA2 benadert de huidige vertraging, en die er weer bovenop tellen bij EMA1 (en dat is wat 2 * EMA1 - EMA2 doet) duwt de lijn naar voren richting de meest recente prijzen.
Het resultaat is geen gemiddelde van gemiddelden. Ondanks de naam reageert de DEMA sneller dan een enkele EMA met dezelfde periode, niet langzamer. In trendende markten draait hij eerder op swingpunten, en dat is de reden dat hij wordt gebruikt in crossoversystemen waar signaalvertraging duur is.
De afweging is stabiliteit. Omdat de lagcompensatie een extrapolatie is, kan de DEMA na scherpe bewegingen door de koers heen schieten en whipsaw-kruisingen opleveren in onrustige omstandigheden. Bevestiging door een langzamer gemiddelde of een filter op trendsterkte is de gebruikelijke oplossing.
Voorbeelden
Voorbeeld 1, Vergelijking van de lag van DEMA en EMA (Indicator)
// 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"Legt een DEMA van 20 perioden en een EMA van 20 perioden over elkaar. De DEMA draait zichtbaar eerder op swing highs en lows, wat de lagreductie laat zien.
Voorbeeld 2, Bars onder het gemiddelde tellen (Indicator)
// 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 aLoopt achterwaarts door de bars en telt hoeveel opeenvolgende voorgaande opens onder de huidige DEMA liggen, een grove maat voor hoe ver de koers van het gemiddelde is uitgerekt.
Voorbeeld 3, Systeem met dubbele DEMA-crossover (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
ENDIFEen klassiek systeem met twee moving averages dat DEMA op beide benen gebruikt. De verminderde lag brengt instappen dichter bij de werkelijke omslag dan hetzelfde systeem op basis van simpele gemiddelden.
Interpretatie
DEMA wordt gelezen als elke andere moving average, alleen sneller:
- Koers boven een stijgende DEMA. Interpretatie bij een opwaartse trend. Pullbacks naar de lijn zijn potentiële voortzettingszones.
- Koers onder een dalende DEMA. Interpretatie bij een neerwaartse trend, symmetrisch aan het bovenstaande.
- Kruisingen. Een snelle DEMA die een langzame kruist signaleert een momentum-omslag eerder dan de gelijkwaardige SMA- of EMA-crossover, met overeenkomstig meer valse starts in ranges.
Veelvoorkomende fouten en valkuilen
- Aannemen dat DEMA langzamer is dan EMA. De naam suggereert dubbele smoothing, maar de formule trekt de tweede EMA af. Een DEMA reageert sneller dan een EMA met dezelfde periode, dus het overnemen van periode-instellingen uit EMA-systemen verandert het gedrag.
- Overshoot na gaps en spikes. De
2 * EMA1 - EMA2extrapolatie kan de lijn na abrupte bewegingen voorbij de prijs duwen. Voorwaarden zoalsclose CROSSES OVER demakan vlak na volatiliteitsgebeurtenissen vaker afgaan dan verwacht. - Verkeerd gebruik van haakjes. De periode gaat tussen vierkante haken en de prijs tussen ronde haken:
DEMA[10](open).DEMA(10, open)geeft een syntaxisfout. - Achterwaartse loops moeten eindigen. Bij het scannen van eerdere bars met
WHILE, zoals in Voorbeeld 2, zorg dan dat de loopvoorwaarde uiteindelijk faalt op de beschikbare historie, anders raakt de indicator de looplimiet van het platform op lange grafieken.
Gerelateerde instructies
ExponentialAverage, de enkele EMA waarop DEMA is gebouwd.TEMA, drievoudig exponentiële variant met nog minder lag en meer overshoot.ZLEMA, zero-lag EMA, een andere benadering van lagcompensatie.HullAverage, alternatief met weinig lag op basis van een gewogen gemiddelde.Average, basislijn van het enkelvoudig voortschrijdend gemiddelde.WeightedAverage, lineair gewogen gemiddelde.WilderAverage, langzame smoothing die binnen RSI en ADX wordt gebruikt.TimeSeriesAverage, gemiddelde op basis van lineaire regressie.