Exponential Moving Average (EMA)

get_ema(quotes, lookback_periods, candle_part=CandlePart.CLOSE)


name type notes
quotes Iterable[Quote] Iterable of the Quote class or its sub-class.
See here for usage with pandas.DataFrame
lookback_periods int Number of periods (N) in the moving average. Must be greater than 0.
candle_part CandlePart, default CandlePart.CLOSE Specify candle part to evaluate. See CandlePart options below.

Historical quotes requirements

You must have at least 2×N or N+100 periods of quotes, whichever is more, to cover the convergence periods. Since this uses a smoothing technique, we recommend you use at least N+250 data points prior to the intended usage date for better precision.

quotes is an Iterable[Quote] collection of historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.

CandlePart options

from stock_indicators.indicators.common.enums import CandlePart
type description
CandlePart.OPEN open price
CandlePart.HIGH high price
CandlePart.LOW low price
CandlePart.CLOSE close price
CandlePart.VOLUME volume
CandlePart.HL2 (high+low)/2
CandlePart.HLC3 (high+low+close)/3
CandlePart.OC2 (open+close)/2
CandlePart.OHL3 (open+high+low)/3
CandlePart.OHLC4 (open+high+low+close)/4



Convergence warning: The first N+100 periods will have decreasing magnitude, convergence-related precision errors that can be as high as ~5% deviation in indicator values for earlier periods.


name type notes
date datetime Date
ema float, Optional Exponential moving average


See Utilities and Helpers for more information.


from stock_indicators import indicators
from stock_indicators import CandlePart     # Short path, version >= 0.8.1

# This method is NOT a part of the library.
quotes = get_historical_quotes("SPY")

# calculate 20-period EMA
results = indicators.get_ema(quotes, 20, CandlePart.CLOSE)

About Exponential Moving Average (EMA)

Exponentially weighted moving average price over a lookback window. [Discuss] 💬


See also related Double EMA and Triple EMA.