VolumeProfileDistribution
Where price sits against the recent volume peak and the value-area edges, as signed fractions.
Each one-minute bar's volume goes into the price bin its close falls in. Bins are $0.50 wide by default, and bars older than the window (100 bars by default) drop out. The point of control (POC) is the bin holding the most volume. The value area is the highest-volume bins that together hold 70% of the window's volume, bounded by their highest and lowest prices. The four outputs are the close's distance from the POC, from the value-area high and from the value-area low, plus how busy the close's own bin is against all the others.
How to read it
- Values are fractions, so 0.002 means the close is 0.2% from the level. On SPY one-minute bars for September 2026 at defaults, poc_distance stayed between about -0.17% and +0.19% for 90% of bars.
- poc_distance at zero means the close is at the POC level. It crosses zero as price moves through the busiest level.
- Inside the value area value_area_high_distance is negative and value_area_low_distance positive. value_area_high_distance turns positive above the high, and value_area_low_distance turns negative below the low.
- volume_rank near 1 means price is in the busiest part of the window. Low values mean it is passing through a thin area.
What it outputs
- Distance from POC
- Signed distance of the close from the POC price, the middle of the busiest bin, as a fraction. Positive means the close is above the POC. On the same sample the median was zero.
- Distance from value area high
- Signed distance of the close from the top of the value area, as a fraction. Negative while the close is below the high. On the same sample the 5th to 95th percentile ran about -0.27% to +0.08%.
- Distance from value area low
- Signed distance of the close from the bottom of the value area, as a fraction. Positive while the close is above the low. On the same sample the 5th to 95th percentile ran about -0.07% to +0.32%.
- Volume rank at price
- Share of the window's non-empty price bins holding no more volume than the close's own bin, from 0 to 1. A value of 1 means the close's bin is at least as busy as every other bin. On the same sample the median was 0.8.
Settings
- window
- Bars the profile is built from; default 100. Raising it keeps older volume in, so the POC and value area move slowly and sit at the session's heavy prices. Lowering it tracks the last few dozen minutes, and those levels jump quickly.
- bin_size
- Dollar width of each price bin; default 0.5. Raising it pools nearby prices, so the POC and value area are coarse and steady. Lowering it splits volume across many small bins, so the POC can jump between neighbouring prices. Keep it positive (see pitfalls).
Pitfalls
- The value area is the highest-volume bins up to 70%, not a band grown outward from the POC, so its high and low can sit across a gap of thin prices.
- The catalog lets bin_size run below zero. Zero breaks the bin maths, and a negative size swaps what outputs 2 and 3 measure, because the highest bin index is then the lowest price.
- The first bars of a run use fewer than window bars, so early readings rest on very little volume and are unstable.