Trend · TickAtlas Learn

Double Exponential Moving Average (DEMA)

DEMA reduces lag by applying double exponential smoothing. Faster than SMA but smoother than raw price, it sits between EMA and TEMA in responsiveness.

10 min readUpdated 2026-03-21Trend
DEMA · quick spec
GET /v1/indicator ?symbol=EURUSD&indicator=DEMA_20&timeframe=H1
Family
Trend
Series
Periods 20
Best timeframes
M15 · H1 · H4
Last updated
2026-03-21

TL;DR

  • DEMA is a trend indicator used in technical analysis
  • Similar to EMA but with reduced lag. Price above DEMA is bullish, below is bearish.
  • Best timeframes: M15, H1, H4
  • Skip to API docs
Understand

What is Double Exponential Moving Average?

DEMA reduces lag by applying double exponential smoothing. Faster than SMA but smoother than raw price, it sits between EMA and TEMA in responsiveness.

Calculate

How DEMA is calculated

formula
DEMA = 2×EMA1 - EMA2

EMA1 = EMA(price, period)
EMA2 = EMA(EMA1, period)

Default period: 20
Interpret

How to interpret DEMA

Similar to EMA but with reduced lag. Price above DEMA is bullish, below is bearish.

Apply

Trading strategies using DEMA

Strategy 1: DEMA Crossover

Use DEMA crossovers for faster trend change detection.

Entry rules

Buy when fast DEMA crosses above slow DEMA.

Exit rules

Exit on reverse crossover.

Combine

Combining DEMA with other indicators

DEMA works best when combined with complementary indicators:

  • DEMA + TEMA: Combine for stronger confluence signals
  • DEMA + EMA: Combine for stronger confluence signals
  • DEMA + SMA: Combine for stronger confluence signals
Timeframes

DEMA across different timeframes

DEMA works across all 7 timeframes but performs best on M15, H1, H4 for most trading styles.

M15H1H4

Learn about all 7 timeframes

Query

Accessing DEMA via the TickAtlas API

GET https://tickatlas.com/v1/indicator

Python example

python
import requests

url = "https://tickatlas.com/v1/indicator"
headers = {"X-API-Key": "YOUR_API_KEY"}
params = {
  "symbol": "EURUSD",
  "indicator": "DEMA_20",
  "timeframe": "H1"
}

response = requests.get(url, headers=headers, params=params)
data = response.json()
print(data)

Sample response

200 OK
{
  "success": true,
  "data": {
    "symbol": "EURUSD",
    "indicator": "DEMA_20",
    "timeframe": "H1",
    "value": 1.0854,
    "updated_at": 1711548000,
    "server_time": "2024-03-27T14:00:00+00:00",
    "bid": 1.0856,
    "ask": 1.0857
  }
}
Avoid

Common mistakes to avoid

  • Overfitting by using DEMA to chase every small price movement
  • Not combining with a trend strength indicator like ADX
FAQ

Frequently asked questions

What is the difference between DEMA and TEMA?

DEMA applies double smoothing for moderate lag reduction, while TEMA applies triple smoothing for even less lag. TEMA is more responsive but potentially noisier.

Continue learning

From learning to building

Put DEMA to work in your application.

Sign up with $2.50 of starting credit and query pre-calculated DEMA data across 7 timeframes, from M1 to D1.