D07-F03-A30 · LEVEL 2 GUIDED LAB · SYNTHETIC DATA

Price Momentum Oscillator

How does double smoothing turn one-period percentage change into a slower momentum oscillator? Walk the evidence clock one stage at a time. This lab teaches the publication contract; it does not simulate returns, platform parity, or trade performance.

Selected expression

PMO = EMA_s2(10*EMA_s1(100*(P_t/P_(t-1)-1))); signal=EMA_s3(PMO)

Availability rule

An output at t may use only finite, basis-consistent observations available through t; chart alignment never moves the information clock backward.

calculated · step 1 of 7

Verified synthetic fixture

This lab is paired with datasets/implementation-fixtures.json: 96 deterministic, oldest-to-newest observations spanning oscillating, rising, and moderating regimes. It is teaching data—not market history or predictive evidence.

Canonical latest output (D07-F03-A30)
{
  "pmo": -1.9891476071954817,
  "signal": -0.3983280999092723
}

Executable checks cover this result, flat/zero-volume boundaries, invalid timestamps, and prefix causality in both language entry points.