Average True Range (ATR)

get_atr(quotes, lookback_periods=14)

For raw True Range (TR) only, use:

get_tr(quotes) -> TrResults[TrResult]


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, default 14 Number of periods (N) to consider. Must be greater than 1.

Historical quotes requirements

You must have at least N+100 periods of quotes 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.



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
tr float, Optional True Range for current period
atr float, Optional Average True Range
atrp float, Optional Average True Range Percent is (atr/Close Price)*100. This normalizes so it can be compared to other stocks.


See Utilities and Helpers for more information.


from stock_indicators import indicators

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

# calculate 14-period ATR
results = indicators.get_atr(quotes, 14)

About Average True Range (ATR)

Created by J. Welles Wilder, Average True Range is a measure of volatility that captures gaps and limits between periods. [Discuss] 💬