LightningChartPrice Oscillator (Pt. 2): Momentum Oscillators.

ArticleSecond part of the review of Price Momentum Oscillators for technical analysis.

Written by a human | Updated on April 22nd, 2025

Price Oscillators Part 2: Momentum Oscillators

In the first part of the Price Oscillator series, we examined the evolution of indicators and the dynamics of money flow oscillators. This second part delves into the problems of moving averages. Money flow oscillators aim to identify market trends by analyzing price data and trading volumes. These oscillators assess the accumulation and distribution of a security, considering its transaction volume.

Such analyses facilitate the identification of overbought and oversold conditions, crucial in evaluating market dynamics. These conditions are also integral to the functioning of price oscillators. Price oscillators leverage two distinct moving averages typically employing a shorter and longer-term average.

It’s essential to recognize that the lengthier the time frame of the moving average, the more gradual the trend detection process. Regarding price oscillators, a bullish crossover is signaled when the two averages converge. Contrarily, a bearish crossover is indicated when the shorter-term average falls below the longer-term average.

Let’s now review Price Oscillators.

Chande Momentum Oscillator​ (CMO)

Developed by Tushar Chande, it is an indicator that focuses on showing the strength or weakness of a market, and ranges between values +100 and -100. To identify these values, it uses impulses located in periods. This momentum does not soften results and comes from up and down days.

By not smoothing the results, it generates overbought and oversold signals more frequently. The calculation of this oscillator is the difference between current profits and current losses, divided by the sum of all price movements in the same period.

Chande Momentum Oscillator

Change Momentum Price Oscillator

Values above zero correspond to an upward trend, while negative values correspond to a downward trend.

Formula:

CMO= (shc-slc/shc+slc) x 100
  • shc =the sum of higher closes over N periods
  • slc =the sum of lower closes of N periods

Percentage Price Oscillator

Percentage Price momentum oscillator is an indicator the uses two exponential moving averages (EMA), to show the relationship between these two moving averages in percentage terms.

One EMA corresponds to 26 periods and the other to 12 periods. When the short-term EMA is above the long-term EMA, it indicates that the PPO is greater than zero, which is interpreted as an uptrend.

When the short-term EMA is below the long-term EMA, it indicates that the PPO is less than zero, which is interpreted as a bearish trend.

One of the advantages of the PPO is that it helps detect divergences, which serves as a warning when prices are weakening.

Percentage Price Oscillator

Formula:

PPO = ((12 period EMA − 26 period EMA) / 26-period EMA) x 100

Where:

EMA=Exponential moving average

Performance Index

The Performance Index indicator compares the price trend against the performance of a benchmark index. When the PI is equal to 1, it indicates that the stock has the same performance as the index. If the PI is greater than 1, it indicates that the analyzed index exceeds the current index. If the stock under analysis is less than 1, it means that its performance is lower than the benchmark index.

When stocks move at the same speed as the benchmark index, you get a flat reading. When the analyzed stock is in a more intense fall than that of the index or the stock, a decreasing reading is obtained.

Performance Index

Formula:

PI = (Stock Close / Index Close) x (Index MA / Stock MA)

MA = Moving Average.

Pretty Good Oscillator

Created by Mark Johnson, the Pretty Good Oscillator is an indicator that uses SMA (Simple Moving Average) to measure the distance from the current close in terms of an ATR (Average True Range) over a similar period.

The ATR is used to create an oscillator; this indicator is used to measure volatility in currencies. The oscillator helps generate indications of trends and price reversals.

Pretty Good Oscillator

Formula:

PGO = (Closing Price – N-day SMA) / EMA(ATR)

Prime Number Oscillator

The Primer Number Oscillator is an indicator that shows the moments when the function changes the trend of the stock (inflection points). When a line flattens very wide on the upper side, it indicates that there was a price gain; but if that line loses width, it indicates that the price decreased and it is recommended to sell the shares. 

Flat lines on the lower side indicate further price decline, if this line loses width, it indicates that the stock price is rising and it is recommended to buy stock.

Prime Number Oscillator

QStick

Developed by Tushar Chande, the QStick is an indicator focused on showing the difference in opening and closing prices. These results are obtained with the help of a moving average with a certain number of periods.

When the values are greater than zero, it indicates that the periods of these values have been increasing, and therefore, the purchasing pressure has increased. If the value is less than zero, it indicates that the price will close at a lower value than it opened.

QStick

Formula:

QStick = EMA or SMA of (Closing price – Open price)

Where:

  • EMA = Exponential Moving Average
  • SMA = Simple Moving Average

Rainbow Oscillator

Developed by Mel Widner, the Rainbow Oscillator is an indicator focused on finding and following trends. The results are obtained with the use of 9 simple moving averages.

These moving averages are generated from a two-period moving average, to which recursive smoothing is applied. Each moving average is calculated based on the previous one, obtaining a total of 10 moving averages. Each moving average is configured with a different color, generating the effect of a rainbow:

Rainbow-Oscillator

Usually, a range of values -50 and +50 is established, over which the oscillator must remain to show a stable trend. If the oscillator exceeds either of the two values, it means stability in the market and can generate a reversal.

Rate of Change

Rate of Change is a momentum oscillator that measures the change between the current price against the price of other previous periods. ROC is measured on a zero line. If the indicator is above the value of zero, it indicates that prices are in an upward trend. If the indicator is below zero, it indicates that prices are in a downward trend.

Another use of this indicator is to find divergences. Divergences indicate when a price trend begins to weaken; this behavior can be identified when the price moves in the opposite direction to that of the technical indicator.

Rate-of-Change

Formula:

ROC = [(Today’s Closing Price – Closing Price n periods ago) / Closing Price n periods ago] x 100

Relative Strength Index

Developed by J. Welles Wilder Jr., the Relative Strength Index is an indicator focused on the evaluation of overvalued or undervalued conditions. These conditions are obtained by measuring the speed and magnitude of price changes. The conditions obtained can indicate when to buy or sell. An RSI equal to or greater than 70 can mean an overbought condition. If the RSI is equal to or less than 30, it may mean an oversold condition.

Relative Strength Index

Formula:

RSI = 100 - [100 / 1 + (N up / N down)]

Where:

  • N up = average of n-day up closes
  • N down = average of n-day down closes (most analysts use 9 – 15 day RSI)

Stochastic Momentum Index

The Stochastic Momentum Index indicator compares the closing price of a price range of a predetermined period. It is also used to locate a market trend, using the measure of the divergence of the market’s closing price and the high and low prices of the same price over a series of periods.

Stochastic Momentum Index

Formula:

S = 100 [(VC - Min) / (Max - Min)]

Where:

  • S: Stochastic.
  • VC: Closing Value last session.
  • Max and Min: It is the maximum and minimum value, respectively, of the price within the period we are analyzing.

Double Smoothed Stochastic

The Double Smoothed Stochastic indicator was created by William Blau and applies exponential moving averages (EMA) from two different periods to an SMI. The components of the SMI must be smoothed with the two EMAs and then entered the standard SMI formula to calculate the indicator. This oscillator oscillates between values 0 and 100. A swing above 70 indicates overbought, while a swing below 30 indicates oversold.

Double-Smoothed-Stochastic

True Strength Index

An indicator focused on identifying trends and reversals. Like the previous indicators, this indicator is useful for finding overbought and oversold conditions. This indicator is based on positive and negative zones. The positive zones indicate greater control by the bulls (Buy), while the negative zones correspond to the bears (Sell).

True Strength Index

Formula

TSI = ( PCDS / APCDS ) × 100

PC = CCP - PCP

PCS = 25-period EMA of PC

PCDS = 13-period EMA of PCS

APC = AVCCP - PCP

APCS = 25-period EMA of APC

APCDS = 13-period EMA of APCS

Ultimate Oscillator

The Ultimate Oscillator was developed by Larry Williams, and it measures an asset’s momentum over 3 different time frames. Each frame has a different number of periods (7, 14, and 28 periods). The frame with the smallest number of periods has the greatest weight in the calculation, while the frame with the greatest number of periods has the least weight.

Ultimate Oscillator

Formula:

Buying Pressure (BP) = Current Close – Minimum (Current Low or Previous Close).

True Range (TR) = Maximum (Current High or Previous Close) – Minimum (Current Low or Previous Close)

Average7 = Sum of BP for the past 7 days / Sum of TR for the past 7 days Average14 = Sum of BP for the past 14 days / Sum of TR for the past 14 days Average28 = Sum of BP for the past 28 days / Sum of TR for the past 28 days

Ultimate Oscillator = 100 * [(4 * Average7) + (2 * Average14) + Average28] / (4 + 2 + 1)

Williams %R

The Williams %R indicator was developed by Larry Williams, and it measures overbought and oversold conditions over a 14-day period or 14-period frame. This indicator moves between the values of 0 and 100. A reading above -20 indicates overbought, while a reading below -80 indicates oversold.

Williams%R

Formula:

Wiliams %R= Highest High−Closing price / Highest High−Lowest Low

Where:

  • Highest High = Highest price in the lookback period, typically 14 days.
  • Lowest Low = Lowest price in the lookback period, typically 14 days.

Conclusion

Well, we have reached the end of this series of articles on market indicators. First, we started with evolving indicators, then we read a little about moving averages, then we started with money flow indicators, and finished with oscillators.

Moving averages are the calculations used in most of the aforementioned indicators. These help us track trends to generate buy and sell signals thanks to the smoothing of the price curve. Depending on the oscillator or indicator, stronger smoothing using exponential moving averages may be needed.

A price oscillator is a momentum oscillator that measures the difference between two moving averages as a percentage of the larger moving average. Typically, price swing is calculated by subtracting a short-term moving average from a long-term moving average. This means that moving averages with different amounts of periods can be handled.

A simpler definition for momentum oscillators is that they are measures that are used to determine the degree of variability or dispersion of the data with respect to an average.

If you haven’t seen the previous articles, I recommend you take a look at them. This information can be quite useful for reading and understanding charts such as the Candlesticks chart.

It is worth mentioning that there is an article on how to create a Candlesticks chart using Typescript and LightningChart JS, as well as several projects on how to create a business dashboard using various statistical charts. We will soon publish more practical articles related to this topic, so I recommend staying tuned.

Thanks for getting here, bye!

Omar Urbano Software Engineer

Omar Urbano

Software Engineer

LinkedIn icon
divider-light

Continue learning with LightningChart