Jurik Velocity (VEL) is a momentum oscillator that measures the rate of change of price, but with a twist: it uses the difference between two sophisticated moving averages to smooth out the noise inherent in raw "price minus previous price" calculations.
Standard momentum ($P_t - P_{t-n}$) is notoriously jagged. It amplifies noise. Jurik's insight was to measure the divergence between a Parabolic Weighted Moving Average (PWMA) and a linear Weighted Moving Average (WMA). This creates a smoother, more reliable velocity metric that doesn't sacrifice responsiveness.
1.**PWMA**: A Parabolic Weighted Moving Average places extreme weight on the most recent data (quadratic weighting). It is highly responsive and "fast."
2.**WMA**: A standard Weighted Moving Average places linear weight on recent data. It is slightly "slower" than the PWMA.
Because both components are weighted averages, they inherently filter out high-frequency noise. The difference between them represents the "clean" momentum of the trend. This is far superior to simply subtracting $P_{t-n}$ from $P_t$, which is sensitive to single-bar outliers.
The complexity is linear with respect to the period for the initial calculation, but O(1) for streaming updates if the underlying averages are optimized.
VEL achieves zero-allocation by leveraging the zero-allocation implementations of `PWMA` and `WMA`. The differential calculation itself is a simple scalar subtraction, requiring no additional memory.
- **Not Normalized**: Unlike RSI or Stochastic, VEL is not bounded. It can go to +Infinity or -Infinity. You cannot use fixed overbought/oversold levels (e.g., +80/-80) across different assets or timeframes.
- **Zero Cross**: The zero line is the most important level. Crossing zero indicates a shift in momentum direction.