PMO Pass Node

Price Momentum Oscillator — Series Input

MomentumOscillatorPass

Overview

The PMO Pass Node computes the Price Momentum Oscillator (PMO) and its signal line on a series input. PMO applies double EMA smoothing to a scaled rate-of-change — the result is a smooth momentum oscillator that closely tracks price velocity without the jaggedness of raw ROC.

Developed by Carl Swenlin, PMO is unbounded but centers around zero. The signal line (EMA of PMO) is used for crossover strategies — PMO crossing above its signal is bullish, crossing below is bearish. It is particularly useful on weekly data for detecting major trend changes.

Formula

ROC_scaled[i] = (close[i] / close[i−1] − 1) × 10
Smoothed1[i] = EMA(ROC_scaled, period1)
PMO[i] = EMA(Smoothed1, period2)
Signal[i] = EMA(PMO, signalPeriod)
Output is unbounded, centered near zero. Warm-up: period1 + period2 + signalPeriod bars.

Parameters

ParameterDefaultDescription
period135First EMA period applied to scaled ROC
period220Second EMA period applied to first smoothed result
signalPeriod10EMA period for the PMO signal line

Inputs & Outputs

SlotDirectionTypeDescription
inputInput{ values, timestamps }Price or any numeric series
valuesOutput(number | null)[]PMO signal line values; nulls during warm-up
timestampsOutputnumber[]Unix timestamps aligned to input

Use Cases

Signal-Line Crossover

When PMO crosses above its signal line, it indicates building bullish momentum — a buy signal. Crossing below generates a sell signal. The slow periods make these signals reliable but infrequent.

Zero-Line Regime Filter

PMO above zero with rising signal line defines a bullish regime. PMO below zero with falling signal line defines a bearish regime. Use this for broader portfolio allocation decisions.

Divergence Analysis

PMO diverging from price at tops and bottoms provides early warning of trend exhaustion. Because PMO is double-smoothed, its divergence signals are more reliable than raw momentum divergences.

Tips & Best Practices

Large Warm-Up Period

Default periods (35+20+10) require 65+ bars before valid output. On daily data this is more than 3 months. Ensure sufficient historical data before relying on PMO signals.

Best on Daily / Weekly

The slow default periods make PMO most effective on daily and weekly charts. On intraday data, reduce all three periods proportionally (e.g., period1=10, period2=6, signalPeriod=3).

Scaling Multiplier

The ×10 scaling factor in the ROC calculation is by design — it brings the PMO into a readable numeric range. This does not affect signal quality but keeps the y-axis scale consistent across assets.

Related Indicators