Price moves, volume confirms
A candle tells you where price went in an interval. Volume — the count of shares or contracts that actually changed hands in that same interval — tells you how much conviction carried it there. It is drawn as a bar beneath the candle, and it is a fact, not an opinion: it counts the trades that printed.
The distinction that matters is push versus drift:
- A push is a move on heavy volume. Many participants agreed and acted, so the move has weight behind it and is harder to unwind.
- A drift is the same-sized move on thin volume. Few hands moved it, so it reverses easily.
Volume never tells you which way price will go next. It grades the move that already happened. Read price for the what, then the volume beneath it for the how-much.
A worked example
Take a single generic index session — call the instrument GENCO — around a scheduled announcement.
Before the announcement the candles are narrow and the volume bars are short: price is drifting, and the quiet is telling you no one is committed yet. On the release, one wide candle prints on a tall volume bar — that is a push, a moment where many participants took a side at once. Afterward price grinds a little higher, but the volume bars shrink candle by candle. That later grind is a drift: a move without much behind it, and therefore a question. Nothing here forecasts the next candle; volume only weighs the one you already have.
See it in kestrel
You do not have to trust anyone's read of a volume bar. Run a real, recorded session and weigh the moves off the tape yourself:
npx kestrel.markets sim fomc-rate-decision-whipsawThat runs a deterministic simulation over a generic event-driven session — managed licensed data, no wall time, no signup, no card — and prints a certified proof URL. Point the CLI back at any proof and it recomputes the whole record on your own machine, byte for byte:
npx kestrel.markets certify https://kestrel.markets/proof/art_d29415f0cf502f4a218a9cbaKeep it one command away: drop the kestrel.markets MCP server into your client and the next session opens where this one left off — no account in between.