Skip to main content
On this page

PMO Strategy: Crossover Rules, Divergence, and Validation

· 6 min read
Pineify Team
Pine Script and AI trading workflow research team

A Price Momentum Oscillator strategy needs more than a bullish or bearish crossover. It needs a fixed PMO implementation, a precise signal time, executable orders, and rules for exits and position size. Crossovers, zero-line conditions, and divergence are different hypotheses and should be evaluated separately before combining them.

Price Momentum Oscillator Strategy: Master PMO Trading Signals for Better Market Timing

Freeze the calculation first​

The DecisionPoint PMO definition smooths one-period percentage ROC twice using custom coefficients of 2/length, scales by 10, and uses an ordinary EMA for the signal line. The first smoothing input is ROC, not the raw closing price. "Period" means a chart bar, which is only a day on a daily chart.

Pineify's PMO component instead uses ordinary EMAs for both initial stages. Its 35/20/10 defaults therefore describe an EMA-based variant. Use one implementation consistently for tuning, testing, and alerts. The PMO indicator explanation details the coefficient and initialization differences.

Start with a baseline you can reproduce​

The following is a hypothetical long-only research specification, not a recommended trading system or an observed result:

ItemBaseline choice
CalculationPineify EMA-based PMO, close source, 35/20/10
ChartOne specified instrument on standard daily bars
Entry signalPMO crosses from at or below its signal line to above it on a closed bar
Position policyOne position; ignore additional long signals while invested
Exit signalPMO crosses back below its signal line on a closed bar
OrdersMarket orders using explicitly recorded tester timing
Sizing and costsFixed stated exposure, commission, and slippage assumptions
Test recordSource version, data period, session, and all strategy properties

A crossover is an event. "PMO is above its signal" is a state that may remain true for many bars. Substituting the latter can create repeated entries or a different strategy. A crossover below zero can indicate an improvement in still-negative momentum; it does not prove that absolute momentum has become positive.

TradingView's strategy documentation explains why a bar-close signal and an order fill are separate events. Under usual historical market-order settings, the next available fill is commonly the following bar's open. Record any settings that change this behavior.

Test one contextual filter at a time​

A zero-line filter asks whether the crossover occurs while PMO is positive or negative. An extreme-value filter asks whether the oscillator has reached a threshold. A price-trend filter asks a different question, such as whether price is above a defined moving average. These filters change the sample of trades; none automatically improves the strategy.

If testing an extreme threshold, define it using only information available at that time. A rolling percentile must use a trailing window, not the eventual minimum and maximum of the entire test. Fixed thresholds such as ±1.5 cannot be assumed equally meaningful across different timeframes, formulas, or instruments.

Compare each filtered version with the unchanged baseline on the same evaluation period. Retain trade count, net average trade, drawdown, exposure, and turnover. A higher win rate with far fewer trades may be fragile, and a lower win rate can coexist with higher expectancy. No 41%-to-63% improvement is documented here.

Make divergence observable at the time​

A bearish divergence commonly describes a higher price high paired with a lower PMO reading; bullish divergence uses a lower price low paired with a higher PMO reading. To test it, specify how swings are selected, how far apart they may be, and whether oscillator values are sampled at price pivots or matched to separate oscillator pivots.

Suppose a hypothetical second price high occurs on bar 100 and needs three right bars for confirmation. A rule using that pivot can first know it after bar 103 closes, not on bar 100. If it also requires a later price break, entry comes later still. Drawing a divergence line on earlier bars must not move the trade backward in time.

This makes divergence a more complex research rule than a simple crossover. It introduces extra parameters and delayed information. Review that added complexity before assuming it provides a better signal.

Specify risk controls without claiming a free improvement​

An oscillator reversal exit can leave a position exposed for a long time. A separate price stop, maximum holding period, or volatility rule changes that exposure and should be specified and tested explicitly. If using ATR, state the length, the bar used to set the distance, whether the distance stays fixed, and whether a trailing stop can ever loosen.

For an illustrative entry at 100 and planned stop at 98, price risk is two units per share before costs. The PMO value is not a substitute for that price distance. Gaps, fees, and slippage can make realized losses larger. A historical stop-and-target pair reached within one candle also depends on the simulator's intrabar assumptions.

Keep tuning separate from evaluation​

Use a development period to choose rules and a later untouched period to assess them. Include sufficient warm-up data before the evaluation begins. If you repeatedly inspect and retune against the supposed holdout, it becomes part of development.

Inspect the first few trades manually: the crossover should exist on the recorded signal bar, the order should follow the chosen timing, and costs should appear in results. Then review whether a small number of trades dominate performance and whether nearby parameter choices behave very differently. The original article's personal AAPL/SPY anecdotes and claimed average-return improvements are not reproducible evidence.

Pineify can help construct supported conditions and generate source. TradingView evaluates the resulting strategy under its configured assumptions. Adding several correlated price indicators does not turn that simulation into independent proof of an edge.

Pineify Website
Is a PMO crossover a complete strategy?

No. Define the calculation, confirmation time, order timing, position policy, exits, sizing, and costs before evaluating trading performance.

Are extreme PMO crossovers always better?

No universal improvement is established. Define the threshold without future information and compare it with a baseline on separate evaluation data.

Can I backdate a divergence entry to the swing high or low?

Not when the rule requires later bars to confirm that swing. The entry must respect the time when all required information became available.