Volume tells you how much traded; delta estimates which side was aggressive
Volume is the amount of trading activity recorded during an interval. It does not tell you by itself whether buyers or sellers were in control: every executed trade has both a buyer and a seller.
Delta tries to add direction by classifying trades as buyer-initiated or seller-initiated. A trade executed at the offer is commonly treated as buyer-initiated; one at the bid as seller-initiated. Bar delta is estimated buyer-initiated volume minus estimated seller-initiated volume. Cumulative delta adds those estimates through a declared window or session.
The word estimated matters. Trade direction is not available in every feed as ground truth. Quote tests, tick rules, exchange flags, and data-vendor logic can disagree. Signed flow should therefore be treated as an inference rather than a universal field.
A confirmation strategy uses participation evidence to decide whether a separate price setup remains eligible. Volume or delta is not a complete entry, exit, and risk rule.
What confirmation is trying to learn
Suppose price closes above a prior range. The price event exists with or without volume. A researcher can ask whether breakouts accompanied by unusual activity have a different later distribution from all breakouts.
Several intuitions are possible:
- Broad participation may support continuation.
- A thin move may reverse when normal liquidity returns.
- Aggressive buying with little upward response may suggest passive sell liquidity is absorbing demand.
- Price rising while cumulative delta falls may reveal disagreement—or simply a classification, window, or venue problem.
None of these readings is a universal law. The response of price to flow matters as much as the sign of the flow.
“High volume” needs a fair baseline
Raw volume follows strong seasonality. The open, close, news windows, and rollover periods can be much busier than midday. Comparing a 09:31 bar with the average of every bar may label ordinary opening activity as extraordinary.
Useful baselines include:
- volume relative to the same time of day;
- volume relative to a rolling completed history;
- percentile or z-score under a declared window; and
- activity relative to range or volatility.
Each asks a different question. Relative volume of 2 means nothing until the baseline and minimum history are known.
Decide what role the signal plays
| Role | Example | What to compare |
|---|---|---|
| Eligibility | Trade only when relative volume exceeds 1.5 | Setup alone versus setup plus gate |
| Direction confirmation | Require positive delta for a long break | Same price events split by delta state |
| Divergence warning | Reduce or exit when price and cumulative delta disagree | Unchanged exit versus warning rule |
| Sizing input | Increase or reduce exposure by participation state | Same trades under fixed and state-aware size |
Do not let the same observation become confirmation on winning trades and a warning on losing ones. Its role must be declared before the path is known.
A complete breakout-confirmation example
Illustrative example. Assume a prior-range breakout is the independent setup:
- After a five-minute bar completes, price has closed above the known range.
- The bar’s volume is 1.8 times the median volume of the same five-minute slot over the prior 20 comparable sessions.
- Estimated bar delta is positive under the declared trade-signing method.
- A confirmation rule permits a long entry at the next modeled event only when relative volume exceeds 1.5 and delta is positive.
- Entry, exit, sizing, and invalidation remain identical to the price-only baseline.
If the bar closes at 10:05, neither final volume nor final delta was known at 10:03. A fill before 10:05 would use information that had not yet finished forming.
The rejected price-only trades remain in the analysis. Without that denominator, the researcher cannot tell whether the filter improved the distribution or merely removed most opportunities.
Designing the incremental test
Begin with the complete price strategy. Add raw volume, time-adjusted relative volume, and delta separately. Then test combinations only if each component has an interpretable contribution.
Report:
- eligible and rejected trade counts;
- delay introduced by confirmation;
- gross and net outcome for both sets;
- behavior by time of day and volatility state;
- sensitivity to the volume baseline;
- sensitivity to credible trade-signing methods;
- spread and impact during high-activity events; and
- later-sample performance.
High activity can improve directional information and worsen execution at the same time. A confirmation that raises gross return while doubling slippage may not improve the strategy.
What would weaken the claim
The filter is suspect if it uses final bar information but assumes an earlier fill, if its benefit disappears under a same-time-of-day baseline, or if a different credible delta classification reverses the result.
Divergence is especially easy to narrate after the fact. Define the price reference, delta window, magnitude, and resolution before examining the reversal.
Important failure modes
- Aggressor classification is feed- and method-dependent.
- Bundled trades and quote latency distort signed-flow estimates.
- Unconditional volume thresholds confuse normal seasonality with information.
- Cumulative delta depends on the reset and can hide offsetting episodes.
- Divergence can persist while price continues in the original direction.
- High activity can increase adverse selection and market impact.
Try it in Arizmic
Strategy composition
Build the premise with shipped signals
Use volume and signed-flow signals to qualify a price setup, not to replace it. A credible confirmation recipe states the underlying price event, the flow reading available at decision time, and whether the added signal improves information or simply rejects more trades.
These are starting structures, not presets or evidence of an edge. Choose one, replace the bracketed decisions, and keep the signal roles separate as you test it.
Composition 01
Relative activity with bar-delta agreement
Directional-confirmation recipe- Relative VolumeParticipation gate
- Bar DeltaImmediate flow direction
- Volume ImbalancePersistent flow balance
Data: OHLCV Bars, Volumetric Bars
View configuration and complete ruleHide recipe details
Composition 01
Relative activity with bar-delta agreement
Relative Volume
Participation gate
Relative Volume identifies whether the price setup occurs with more or less activity than its selected baseline.
Configure
- window · [volume baseline]
- Define ordinary activity for the chosen bar and session context.
Use the output
- relative_volume
- Require at least [participation threshold] or compare the signal as a continuous label.
Bar Delta
Immediate flow direction
Bar Delta measures aggressive buy volume minus aggressive sell volume for the completed bar.
Configure
No configurable parameter is required for this role.
Use the output
- bar_delta
- Require positive delta for a long setup and negative delta for a short setup, beyond [optional magnitude].
Volume Imbalance
Persistent flow balance
Volume Imbalance rolls signed volume across a window so one noisy bar does not define the entire confirmation.
Configure
- window · [imbalance window]
- Set how long directional flow is accumulated.
Use the output
- imbalance
- Require imbalance above [long threshold] or below [short threshold].
- rolling_delta
- Retain the accumulated signed volume for magnitude diagnostics.
Assemble the rule
- Entry
- Apply these gates only after [declared price setup] occurs; enter when relative activity, bar delta, and rolling imbalance agree on the completed decision bar.
- Exit
- Use the price setup’s own invalidation, [delta reversal if declared], risk rule, or timeout.
- Decision time
- Trade classification and all volume aggregates must be complete before the next-event order decision.
- Sizing
- Use [price-risk or separate volatility input]; signed volume is not a position-size unit.
Useful variations
- Compare price-only, Relative-Volume-only, delta-only, and combined confirmation under matched opportunity counts.
- Use delta sign versus a magnitude threshold.
- Require bar delta only at entry versus rolling imbalance throughout the position.
Keep in view
A stricter confirmation can improve average trade outcomes simply by selecting fewer, more volatile events. Reconcile rejected opportunities, exposure time, and turnover before calling it added information.
Composition 02
CVD divergence with price-volume context
Divergence recipe- Session Cumulative DeltaSession flow path
- Cumulative-Delta DivergenceDivergence event
- Price/Volume CorrelationRelationship context
Data: OHLCV Bars, Volumetric Bars
View configuration and complete ruleHide recipe details
Composition 02
CVD divergence with price-volume context
Session Cumulative Delta
Session flow path
Session Cumulative Delta accumulates signed volume from the session boundary and provides the flow path behind a price move.
Configure
No configurable parameter is required for this role.
Use the output
- session_cvd
- Retain its level and change over [declared comparison span] as flow context.
Cumulative-Delta Divergence
Divergence event
Cumulative-Delta Divergence flags and scores disagreement between price behavior and cumulative delta.
Configure
- window · [divergence window]
- Define the history over which disagreement is measured.
- threshold · [divergence threshold]
- Set the minimum score before a flag qualifies.
Use the output
- flag
- Create a candidate only when the divergence flag is true.
- score
- Require score beyond [threshold] and retain magnitude for sensitivity analysis.
Price/Volume Correlation
Relationship context
Price/Volume Correlation indicates whether price change and volume have recently moved together, helping separate ordinary participation from an unusual divergence state.
Configure
- window · [relationship window]
- Set the history used for covariance, correlation, and beta.
Use the output
- correlation
- Apply [eligible range or label] without treating correlation as direction.
Assemble the rule
- Entry
- After [declared price reversal or continuation setup], enter only when the divergence flag and relationship policy are known.
- Exit
- Exit on price invalidation, divergence resolution, [target], or timeout.
- Decision time
- Do not backdate the divergence to the earlier price or CVD extreme; use the bar where the flag becomes available.
- Sizing
- Use [price-risk or volatility input] with a fixed cap.
Useful variations
- Compare divergence as entry trigger versus eligibility label for a price trigger.
- Vary threshold separately from divergence window.
- Partition by positive, near-zero, and negative price-volume correlation.
Keep in view
CVD and delta depend on trade-side classification and session reset. A feed or alignment change can alter the signal even when OHLC prices are unchanged.
Ask the AI Companion
Draft this strategy
Turn volume and delta into an understandable confirmation layer for a simple price-based strategy draft.
I want to create a [breakout, continuation, or reversal] strategy for [instrument] and use volume or delta to judge whether participation supports the price move. Recommend which participation measurement and comparison baseline best fit this setup, the data and timeframe I should start with, and whether the confirmation should control entry, position size, or exit. Then build the strategy for me and explain what it should do when price and participation disagree.
Extend it in Marimo
Begin from a retained Study so every accepted and rejected price setup remains available for comparison.
Determine whether flow confirmation adds information beyond the underlying price setup or only changes selectivity.
- Bring in
- engine-reported price-setup candidates, volume, delta, imbalance, CVD, divergence, decisions, and fills, accepted and rejected flags under each recipe, retained outcomes, turnover, costs, and data-quality fields
- Build
- price-and-flow event chart at original decision timestamps, accepted-versus-rejected forward-path distributions, opportunity, exposure, turnover, and net-outcome reconciliation
Interpretation: If accepted trades improve only because the filter avoids high-volatility or low-liquidity periods, describe the result as regime selection rather than independent confirmation.
Value origin: Signal outputs, candidate decisions, fills, and retained outcomes are engine-reported. Matched opportunity labels, event-aligned paths, and incremental-information summaries are notebook-derived.
With Companion: Ask Companion to draft reviewed accepted-versus-rejected diagnostics, inspect candidate matching and timestamps, then explicitly apply the diff.
Further reading
- Lee and Ready, “Inferring Trade Direction from Intraday Data” (1991) — Establishes the classic quote-and-tick approach to inferring whether a trade was buyer- or seller-initiated. The method is an estimator tied to market-data timing, not a universal ground-truth delta field.
- Odders-White, “On the Occurrence and Consequences of Inaccurate Trade Classification” (2000) — Tests Lee–Ready classifications against TORQ data, documents systematic errors, and shows that those errors can bias downstream analysis.
- Bouchaud et al., “Fluctuations and Response in Financial Markets: The Subtle Nature of ‘Random’ Price Changes” (2004) — Relates persistent order signs to a price response that changes with horizon, warning against treating cumulative delta as unlimited directional pressure.
- Farmer et al., “Market Efficiency and the Long Memory of Supply and Demand” (2006) — Shows how adaptive liquidity can offset persistent order signs, making price response—not flow sign alone—central to any confirmation claim.