2.72 The Volume-Weighted MA Ratio
The volume-weighted MA ratio asks where the crowd transacted, not which way it pushed: VWMA over SMA, above one when expensive bars carried the volume. Log it, scale by root-lookback, compress, and it's model-ready.
Aligrithm is an independent research publication on systematic trading, quantitative research, market microstructure, and adaptive systems. Long-form essays, code notebooks, and architecture breakdowns across eight pillars, built for traders who care more about how markets behave than about hype.
More about the publication →Read in order. Each pillar walks you out of one trap with one new ability. The newest article is the worst place to begin.
The volume-weighted MA ratio asks where the crowd transacted, not which way it pushed: VWMA over SMA, above one when expensive bars carried the volume. Log it, scale by root-lookback, compress, and it's model-ready.
Subtract a long-cutoff high-pass from a short-cutoff one and you get the decycler oscillator, a band-pass whose zero crossings flag trend transitions. Use it to classify the regime, not as a trigger.
OBV's running sum wanders like a random walk and depends on when you started counting. Window it, divide signed volume by total volume, scale by root-lookback, and you get a bounded, stationary flow oscillator.
The WMA ramps weights toward recent bars, so its coefficients are asymmetric, breaking linear phase and warping shape. It lags more than the SMA at equal noise rejection; a real window beats both.
Raw Intraday Intensity whipsaws and drifts upward for years as volume grows, useless. Divide summed money flow by summed volume and you get Chaikin Money Flow: bounded, stationary, model-ready.
A filter's critical period is its half-power point: amplitude 0.707, not 0.5. For an SMA it's twice the length, so SMA(50) targets a 100-bar cycle. Pick length on purpose; the lag comes attached.
Reactivity weights momentum by an aspect ratio, range per unit of volume, so a big move on thin volume scores high. Powerful for trading cycles, but it multiplies two noisy parts, so normalize both halves or it lies.
The SMA is the optimal least-squares fit of a flat line to the window: the intercept is the average. But that assumes the market is constant plus noise, so it lags trends and erases matched cycles.
Short-term movement minus a long-term baseline, normalized by ATR, reads volatility expansion against contraction. But normalize too hard and you delete the very regime signal you wanted: the stationarity-vs-information trade-off, with a dial.
Sample once per bar and the fastest cycle you can see is 2 bars (Nyquist). Anything faster aliases: it folds down and masquerades as a slow cycle that was never there, and no filter can unmask it.
Fit a trend, project it one bar forward, and subtract it from the actual close. A small gap means the trend holds; a big one means it just broke. A regime-break kill switch, built on log prices and ATR, not raw price.
EMA, low-pass, high-pass, band-pass, band-stop are one second-order equation with different coefficients, built from the period via alpha. One engine and a recipe table, not a drawer of indicators.