Price Velocity Volume Ratio
Quick Reference
| Property | Value |
|---|---|
| Dimension | signal |
| Category | momentum |
| Version | v1.0 |
| Output Column | price_velocity_volume_ratio |
Absolute price change normalized by average trade size 鈥?measures conviction-weighted price movement (breakout strength).
Formula
abs(diff(price, window)) / (rolling_mean(size, window) + 1e-10)
CDM Inputs
| Column | CDM Table | Description |
|---|---|---|
price | cdm_trade_enriched | Trade data enriched with bar context 鈥?price, volume, side, trade type |
size | cdm_trade_enriched | Trade data enriched with bar context 鈥?price, volume, side, trade type |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
window | integer | 50 | Lookback window in ticks |
Output
Column: price_velocity_volume_ratio
Ratio of price change to average trade size over window
Market Intuition & Trading Rationale
Price Velocity Volume Ratio separates genuine breakouts from low-conviction noise by normalizing price movement against the average trade size. Large price moves on small trades are suspect 鈥?they suggest thin books or noise traders, not genuine directional conviction. Large price moves on large trades represent institutional participation: real money is moving the market.
The feature operates on two dimensions simultaneously. The numerator (abs(diff(price))) captures raw speed 鈥?how fast price is moving. The denominator (rolling_mean(size)) captures participation quality 鈥?whether the typical trade in this window is institutional or retail. When both are high (fast moves on big trades), the ratio remains moderate but the signal is high-conviction. When the numerator spikes but the denominator is low (fast move on small trades), the ratio spikes 鈥?flagging either a breakout on thin liquidity or a false signal.
In breakout detection, this ratio is the primary "strength" measure. A breakout with high price_velocity_volume_ratio (fast price movement on thin volume) may not hold 鈥?there wasn't enough institutional participation to sustain the new level. A breakout with moderate ratio but high absolute velocity and high volume is more durable.
Usage Cases
- Breakout quality filter: High ratio (>3) indicates price is moving faster than volume supports 鈥?potential false breakout or thin-liquidity spike. Moderate ratio (1-2) with high absolute price change indicates institutional-driven breakout with staying power.
- Conviction-weighted momentum: Use as an alternative to raw returns for momentum signals. The volume normalization down-weights moves that occur on unusually small trades, reducing noise from low-participation periods.
- Liquidity vacuum detection: When the ratio spikes suddenly (price accelerating while volume remains average), it may indicate a liquidity vacuum 鈥?the book is thinning and price is running. This can precede a reversal when liquidity returns.
- feature set integration: In the
microstructure_breakoutpack, price_velocity_volume_ratio serves as the primary breakout strength detector. High values trigger the breakout event; subsequent features determine whether the breakout sustains or fails.
YAML Definition
name: price_velocity_volume_ratio
description: Absolute price change normalized by average trade size 鈥?measures
conviction-weighted price movement (breakout strength).
category: momentum
dimension: signal
version: v0.9.0 (Beta)
required_inputs:
- price
- size
output_column: price_velocity_volume_ratio
output_description: Ratio of price change to average trade size over window
tags:
- momentum
- volume
- signal
parameters:
window:
type: integer
description: Lookback window in ticks
required: false
default: 50
formula: abs(diff(price, window)) / (rolling_mean(size, window) + 1e-10)