Price Momentum Oscillator (PMO)

get_pmo(quotes, time_periods=35)


name type notes
quotes Iterable[Quote] Iterable of the Quote class or its sub-class.
See here for usage with pandas.DataFrame
time_periods int, default 35 Number of periods (T) for ROC EMA smoothing. Must be greater than 1.

Historical quotes requirements

You must have at least N periods of quotes, where N is the greater of T+S,2×T, or T+100 to cover the convergence periods. Since this uses multiple smoothing operations, 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 T+S+250 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
pmo float, Optional Price Momentum Oscillator
signal float, Optional Signal line is EMA of PMO


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 20-period PMO
results = indicators.get_pmo(quotes, 35,20,10)

About Price Momentum Oscillator (PMO)

Created by Carl Swenlin, the DecisionPoint Price Momentum Oscillator is double-smoothed ROC based momentum indicator. [Discuss] 💬