Order-flow data can describe how classified executed volume is distributed across prices and time. A footprint color does not identify a bank’s plan or forecast the next move. Begin by naming the instrument and feed, the measured event types, the classification method and the time at which the data became available.

What order flow actually is

In a central-book match, an incoming aggressive order trades against resting passive quantity; both a buyer and a seller take part. A footprint can display volume classified to Ask or Bid, but that does not count unique participants or reveal who owns a limit order. In the model below, delta = Ask Volume − Bid Volume. Executed volume, number of trades, waiting offers and quote updates are distinct measures.

This difference becomes interesting only when combined with other tools. Order flow does not replace market structure analysis — it complements it by adding a layer of information invisible in price alone. That is why its natural neighbours are the volume profile and the classic time-based volume map, which I cover in separate pieces on the volume profile trading strategy and on how to read volume on the forex market. The broader chart-structure layer, without order flow, sits in the technical analysis section of ForexMechanics.

Why spot forex has no single order book

The BIS 2025 execution discussion describes direct dealer trades and multiple execution venues, including CLOBs and quote-driven protocols. Dealer internalisation and venue data are different observation scopes; a local feed is not a consolidated tape of all spot FX. The description does not mean every retail broker follows the same execution route. More context: forex OTC market mechanics.

Check what the specific depth display contains. MT5 distinguishes exchange depth from OTC displays based on broker quotes and, without volume, a price ladder. Its Forex Volumes indicator counts price changes, not traded currency. Do not treat every DOM as a liquidity provider’s full book or infer cash turnover from tick count.

Where retail gets real data: CME futures and tick-based stand-ins

CME currency futures are one possible venue-specific dataset; they do not supply the missing global spot stream or prove that futures signals transfer profitably to CFD execution. Check contract and quote convention. CME lists 6J as JPY/USD, opposite to USD/JPY notation. A purely reciprocal model gives 1/(USD per JPY) in JPY per USD, but the reciprocal of a futures quote is not automatically the contemporaneous spot rate.

Spot tick volume describes activity in the particular feed. Its relationship to traded volume must be measured for the venue, instrument and sample. CME volume is actual activity in its futures contracts, but it is neither complete spot-FX volume nor an interchangeable record of it.

Opposite deltas need not cancel

When combining periods, larger volume has greater weight. Averaging percentages alone can reverse the interpretation.

Scroll sideways to see the full diagram

Weight relative delta by volumeA has volume100 and relative delta+80%. B has volume200 and relative delta−80%. Combined result is−26.67%, not zero.SUM VOLUME, NOT UNWEIGHTED PERCENTAGESAskBidPeriod AAsk90 + Bid10 = 100Delta+80; share+80.00%Period BAsk20 + Bid180 = 200Delta−160; share−80.00%A + BAsk110 + Bid190 = 300Delta−80; share−26.67%Mean of+80% and−80% = 0%.Combined: −80/300 ≈ −26.67%.

Fictional data from one source: disjoint periods, every fill classified, volume in contracts, no filters or unknown sides. Delta=Ask−Bid; relative delta=delta/(Ask+Bid). The document Sierra Chart: Numbers Bars defines Ask-minus-Bid delta and its percentage of total volume.

Bars use one common scale. B contains twice as many contracts as A.

Sum Ask and Bid over the same data scope before calculating the percentage. Equivalently use (+80%×100 + −80%×200)/300. The negative reading describes these fills; it does not determine the next price move.

Footprint, delta and liquidity maps in practice

Sierra Chart’s Numbers Bars distinguishes volume from number of trades and provides configurable Ask/Bid classification. It does not require full market-depth data, so a footprint of executed trades is not also a history of waiting orders. NinjaTrader’s BidAsk and UpDownTick modes differ; verify the data required for the chosen mode rather than assuming every platform reports the same aggressor measurement.

A depth visualization can show supplied waiting-quantity events while a footprint groups supplied executions. Coverage, filtering and historical data access must be checked for the actual software and connection; a tool name does not establish that the whole book or every trade is visible. Do not infer institutional identity or stop-order intent from a bright area. Related interpretation: mechanics of smart money, with its claims kept separate from observed event fields.

Order-flow evidence belongs to its venue and feed; it cannot reveal the entire decentralized spot-FX market.

A hypothetical example: absorption at a meaningful level

Retain a separate hypothetical absorption question: assume price falls from 1.0900 to 1.0875, then subsequent five-minute ranges lie within 1.0873–1.0878 while the supplied classified delta is negative. This can motivate a buy-side absorption hypothesis on that venue. The footprint alone does not reveal a thick resting limit layer or identify its owner; waiting-order data and explicit test conditions would be needed for those further claims. The prices are chosen illustration values, not a measured New York-session event.

Large executed selling with limited price movement can be described as an absorption hypothesis on that venue. It does not reveal a trader's identity or intention, and displayed liquidity can change. Combine a stated setup with risk limits without assuming that the level cannot break.

What to do tomorrow

A complete synthetic footprint uses a fictional contract with volume in contracts and a half-open 10:00–10:05 UTC interval. At prices 1.1002, 1.1001, 1.1000 and 1.0999, give Ask/Bid volumes of 120/40, 80/30, 50/60 and 10/10. Row deltas are +80, +50, −10 and 0. Total Ask = 260, Bid = 140, volume = 400 and delta = +120. Relative delta = 120/400 = 30%. Separately specify the first trade at 1.1002 and last at 1.1000: the candle falls despite positive delta. The grouped volumes alone do not establish event order, buyer counts or a 30% probability of a rise.

  1. Check unknown classification. In a separate complete record, retain known Ask 260 and Bid 140 but add 160 contracts of unknown side. Total volume is 560. Assign all unknowns to Bid and full delta is −40, or −7.14%; split 80/80 and it is +120, or 21.43%; assign all to Ask and it is +280, or 50%. If x unknown contracts go to Ask, delta = 2x − 40. A 25% threshold requires at least 140 delta, so x ≥ 90. These are arithmetic bounds, not confidence intervals.
  2. Separate bar delta from cumulative delta. Starting cumulative delta at −200 and adding the first model’s +120 gives −80. Reset immediately before that bar and the total is +120. Sierra Chart documents start-of-history/session reset and historical Bid/Ask-volume requirements. Missing data is not evidence of no market activity.
  3. Evaluate a declared condition after complete data receipt. A teaching filter requires volume ≥ 300, relative delta ≥ 25% and Close > Open. In the first model, the first two pass but the last fails, so the candle is not admitted. At 10:03 the final 10:05 values are unavailable. Record symbol/contract, source, classification, filtering, aggregation, session, event and receipt times, every condition result and any missing records. A trade test also needs entry, exit, volume, fills, queue assumptions and costs.