Trading Dev AcademyFree quant education

Free lesson · Technical analysis

Volume, supply/demand zones and what OHLCV cannot reveal

Open interactive lessonPractice calculationsExplore labs

Start with the idea

Volume records traded quantity. It does not label all buyers as new demand or reveal every unfilled order.

Symbols, units & horizon
  • V_t: completed current volume in traded units
  • V̄_prior: positive matching historical volume baseline
  • RV_t: dimensionless relative volume
  • B: prespecified base-bar index set known before the confirming departure
  • Z: price interval from base lows/highs
  • L_i,H_i: base bar extremes

When and why to use this

Use activity and reproducible zone distances as context features. Use richer trade/book data for hypotheses about order flow.

  • Every executed trade has a buyer and a seller. Total volume alone cannot identify which side initiated it.
  • Relative volume compares activity with a permitted historical baseline. Match intraday seasonality, holidays and venue conventions.
  • Trade-level aggressor classifications, order-book changes and OHLCV are different data sources. Do not infer hidden institutional orders solely from a candle.
  • A supply/demand zone can be defined as a prior base followed by a specified displacement. Fix the base length, maximum range, departure threshold, expiry and retest rule.
  • Label the zone only after the departure confirms it. Do not backdate a trade to the base before the qualifying move existed.
  • A volume profile needs volume allocated to price bins. Daily OHLCV alone does not tell you how volume was distributed across those bins.
  • For zone testing, compare retests with matched ordinary levels and track failed or expired zones, not only successful reactions.
RVt=VtVprior,Z=[mini∈B⁡Li,maxi∈B⁡Hi]
Specified chart rule · derivation and arithmetic

Volume, supply/demand zones and what OHLCV cannot reveal

  1. Current volume 1,500 and prior baseline 1,000 give RV=1.5.
  2. For base lows [99,100] and highs [101,102], the zone is [99,102].
  3. Zone width=102−99=3 price units. Activate only after the separately specified departure rule confirms.
Work it by hand

A “1.5× volume” observation says activity exceeded that baseline by 50%. It does not say buyers outnumbered sellers by 50%.

Use the rule

  • Fix the definition, units and information timestamp.
  • Compute the example and inspect the graph.
  • Compare with a simple baseline on untouched periods after costs.

Before moving on

Write the exact rule, its availability time, an invalidation condition and a fair out-of-sample test.

Python implementation

Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.

def volume_zone(volume,prior_mean,lows,highs):
    if prior_mean<=0 or volume<0 or not lows or len(lows)!=len(highs) or any(l>h for l,h in zip(lows,highs)):
        raise ValueError("Valid base bars and volume baseline required")
    return volume/prior_mean,(min(lows),max(highs))

print(volume_zone(1500,1000,[99,100],[101,102]))

Continue learning

Technical Analysis: Geometry, Structure & Evidence — all lessons
  1. Support, resistance and reversal: start with a price zone
  2. Breakout detection, false breaks and retests
  3. Fibonacci retracements: anchors before ratios
  4. Harmonic patterns: ratio constraints and competing candidates
  5. Elliott Wave: count hypotheses, rules and invalidation
  6. Fair value gaps (FVG): three-bar geometry and fill measurement
  7. Heikin-Ashi: smoothed candles are synthetic prices
  8. Renko: price-driven bricks and the missing time axis
  9. Dynamic support, trend lines and Gann angles
  10. Momentum indicators, oscillators and divergence
  11. Volume, supply/demand zones and what OHLCV cannot reveal
  12. Market structure, BOS and CHOCH as a state machine
  13. Moon phases: encode a calendar hypothesis and try to falsify it

Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations