SOAP2Docs ← Website
SOAP2 top banner

Reading Hedging Flow: A Trader's Field Guide

Hedging Flow is the tool in the family that tries to answer the question traders actually care about: is options-driven hedging pushing the market up or down right now? GEX, VEX and TRACE describe how large the hedging pressure could be (exposure). Hedging Flow estimates how much of it is happening (flow). This guide shows how to read the chart and the findings, how to judge them against price, and what you can and cannot conclude. It needs no mathematics and no knowledge of the Greeks.

It is the companion of Reading the Hedging Picture (GEX / VEX) and Reading TRACE. A section for an AI assistant (§8) uses the real field names the bridge returns.

Read this first. Hedging Flow is the least validated tool of the family. Each trade's direction is inferred from where it printed against the quote, the dealer's hedge is assumed from the standard convention, and no path has been checked against an independent reference. Treat it as a hypothesis about the direction of pressure, not a measurement, and never as a trade signal. The Limitations of the user guide apply to everything below.


1. Exposure versus flow

Think of a river. GEX and TRACE measure the size of the channel: how much hedging pressure the market could generate if it moved. Hedging Flow measures the current: how much water is actually moving, and in which direction.

The idea is simple. When customers trade options, the dealers on the other side usually hedge by trading the underlying. So a stream of option trades implies a stream of stock buying or selling:

Customer doesDealer ends upDealer hedges byPressure on the underlying
Buys a callshort a callbuying the underlyingup
Sells a calllong a callselling the underlyingdown
Buys a putshort a putselling the underlyingdown
Sells a putlong a putbuying the underlyingup

The size of each hedge scales with the trade size and with how far in the money the option is. SOAP2 adds these up through the session into cumulative lines. A rising line is net estimated dealer buying; a falling line is net estimated selling. In SOAP2's bridge a positive notional means the dealer buys the underlying.

The flow is only one source of buying and selling. It adds to, or fights, everything else happening in the market. That is why the useful question is not "which way is the flow?" but "is the flow moving price, or is price ignoring it?"


2. The vocabulary

On the chart

ItemPlain meaning
TotalNet estimated dealer hedging: calls and puts together. Up = net buying, down = net selling.
CallsThe part from call trades. Up means customers are net buying calls; down, net selling calls.
PutsThe part from put trades. Up means customers are net selling puts (the dealer buys the underlying); down means customers are net buying puts (protection; the dealer sells). It is easy to read this one backwards.
BlocksLarge individual prints (trade-tape backtest only). Flat on the live path.
Price overlayThe underlying, to compare with the flow.

The units are dollars in the terms of the symbol shown (a substitute such as SPY has its own dollar scale). The caption under the chart names the data path used.

The findings box (what SOAP2 flags)

FindingWhat it isHow SOAP2 decides
Print findingA single large trade: time, call or put, strike, size in lots, price, estimated hedge notional, direction (buying or selling), the underlying at that moment, and a note on whether the underlying moved after it.A print is flagged when it stands out against the session's own distribution of print sizes (no fixed dollar threshold).
Drift findingA gradual, sustained one-way accumulation of many small prints, which a single-print test would miss. At most one episode is shown.Net change of the Total over a rolling 15-minute window, scored against the session's own range of such changes; flagged at 3 robust standard deviations or more, and only after 10 usable windows (about 30 minutes of history).
Lead / lag noteWhether the underlying moved after the flow started (consistent with the flow leading), was already moving and stalled (the flow followed), kept trending (cannot separate cause from continuation) or did not move.A 5-minute look-before and look-during comparison, with a small "flat" tolerance.
"Nothing significant"No print or drift stood out. The box still says how many points are plotted, over what span, the net flow and why no drift was judged (for example "needs 30 min of history").Not a failure: it often means the session is young or quiet.

Because every test is against the session's own distribution, a finding is "large for today", not "large in absolute terms". On a quiet day a modest print can be flagged; on a busy one it may not.

Which path produced it

PathWhat it usesHow much weight
Live IB (OA toolbar)Real trade prints on a band of strikes near the money, added the instant they occur, after a seed of the last couple of hoursThe most responsive. Limited to the band. The seed classifies direction more crudely than the live portion.
Trade-tape backtest (Data Chart menu)A CBOE trades file you imported, for a past dayEvery print on every strike; side still inferred.
CDN snapshot (Data Chart menu)Open-interest change between two fetchesWeakest. Open interest changes once a day on that feed, so this is a same-day-versus-yesterday comparison, not a live read.

3. The five-step reading routine

Step 1: Which path, and is there enough data?

Step 2: Direction and strength of the Total

  1. Is the Total rising, falling or flat over the window you care about?
  2. Compare the recent slope with the session's earlier slope. A change of slope matters more than the level, because the level starts at zero when the session starts.
  3. Judge size against the session's own range (what has the line done on other 15-minute stretches today?), not against a dollar number.

Step 3: Who is driving it, calls or puts?

Calls linePuts linePlain reading
UpUpCustomers buying calls and selling puts: bullish positioning, dealers buying the underlying on both.
UpDownCustomers buying calls and buying puts: two-way demand (protection plus upside). Net effect depends on sizes; look at the Total.
DownUpCustomers selling both: supply of options (for example yield-seeking). Net effect depends on sizes.
DownDownCustomers selling calls and buying puts: bearish positioning, dealers selling the underlying on both.

Step 4: Compare with price

Total and pricePossible reading
Both risingAgreement: hedging pressure is in the direction of the move. It does not prove the flow caused it. Check the lead/lag note.
Total rising, price flat or fallingThe estimated buying is being absorbed, or other sellers are bigger, or the classification is off. A divergence worth watching, not a signal.
Total falling, price flat or risingThe mirror image.
Both flatNo pressure either way.
Price moves first, flow followsThe flow looks like a result of the move (dealers re-hedging), not a cause.
Flow moves first, price followsConsistent with flow leading. One instance is not evidence.

Step 5: Read the findings, then decide what would change your mind


4. Reading change over the session

Unlike GEX and TRACE, Hedging Flow does not have a "Previous run" to diff. It is a running series for the session, so the change you read is the change along the line:

Within a session the open interest used by the exposure tools does not change, but trades do. That is exactly why Hedging Flow is the tool to watch intraday while GEX and TRACE hold their picture until the next open-interest update. Read it as the live check on whether the exposure they describe is being acted on.


5. Using Hedging Flow with GEX and TRACE

GEX / TRACE sayHedging Flow saysReading
Brake regime, strong pin aboveTotal rising toward the pinThe pull and the flow agree: a stronger case for a drift toward the pin. Still a zone, not a target.
Brake regimeTotal falling hard, price fallingThe brake may be giving way. Watch the Flip and the corridor edges.
Accelerator regime (below the Flip)Total falling, price fallingThe accelerating case in action: flow and regime point the same way.
Accelerator regimeTotal rising, price not followingFlow is fighting the regime and price is not responding. Fragile; the picture may be about to change.
Large exposure at a strike (GEX / TRACE)Large prints at that strikeFresh activity on an existing wall: the wall is being added to or traded. Check whether the prints are customer buys or sells.
Little exposure anywhere near priceStrong flowFlow without a lever: the pressure may not move price much.

6. Five situations

A. Quiet morning, flat line

The most common reading is "not enough data yet". Check the status line and the "why no drift" explanation before drawing any conclusion. Do not mistake silence for neutrality.

B. Steady one-way build (drift finding)

A drift finding says a sustained accumulation stood out against today's range. Read the lead/lag note: if price only moved once the flow started, the flow may be leading; if price was already moving, the flow looks like a follower. In both cases wait for confirmation from price.

C. One large print

A single block can dominate the Total. Look at the strike and whether it sits on a GEX or TRACE level. A large print at a wall is more informative than one in empty space. One print is a hypothesis about one participant.

D. Flow and price diverge for a long time

If the Total keeps rising while price does not respond, either the buying is being absorbed or the estimate is wrong. Do not extrapolate; reduce reliance on the flow until price agrees.

E. Around an expiry or a scheduled event

Activity changes character: more closing trades, more hedge adjustments. The same trade can mean something different (opening versus closing), and the model cannot tell. Weight the flow less than usual and the exposure tools more.


7. A worked example (illustrative numbers)

Invented numbers to show the method. Not a forecast, not a real session.

Live IB path, SPX, 90 minutes of history so far.

Value
Total, last 90 minutes−$180 million overall; −$140 million of that in the last 30 minutes
Calls line−$40 million (customers net sellers of calls)
Puts line−$140 million (customers net buyers of puts)
Price5,010 to 4,995 over the same stretch
FindingsDrift finding: −$95 million in 15 minutes, 3.8 robust sigma; "underlying was already moving that way and kept going". One put print: 4,950 put, 1,200 lots, selling pressure.
  1. Path and data. Live IB, 90 minutes: enough for a drift test.
  2. Direction and strength. Net selling, and accelerating (most of it in the last 30 minutes). Large for today (3.8 robust sigma).
  3. Driver. Mostly puts: customers are buying protection. Calls are mildly negative too: a bearish configuration.
  4. Price. Falling 15 points. The lead/lag note says price was already moving: the flow looks like a follower or a continuation, not a leading signal.
  5. Where. The large put print is at 4,950, 45 points below. Compare with GEX: is 4,950 near a Flip, a wall or a TRACE node?
  6. Reading (derived). "Estimated dealer selling has accelerated over the last half hour, driven by put buying, while price drifted lower. The flow does not look like it led the move. The 4,950 put print marks a level of interest to compare with the GEX Flip and walls. Invalidation: the Total reversing back through its recent range."

8. For the AI assistant: how to answer from the bridge

There is no dedicated Hedging Flow call. The stored result comes through get_market_read in the positioning block, field hedging_flow. It is stored only once the tool has completed its seed in an Options Analysis window in Hedging Flow mode with live data, so it may be absent or from an earlier session.

What the bridge returns

FieldMeaning
summaryThe findings box text.
findings_countHow many flagged prints are stored.
largest_findingsThe largest flagged prints: at (UTC), right (C or P), strike, size in lots, notional (dealer hedge in dollars; positive = dealer buys the underlying, negative = sells).
cum_total_lastThe last value of the cumulative Total, in dollars of the symbol shown. It resets each session.
drift_findingsThe drift episode text, when one was flagged.
Hint HEDGING_FLOW_NEVER_COMPUTEDNo stored result: needs a regular session's option tape.

The bridge does not return the series (Calls, Puts, price) or a Previous run. Do not describe slopes or a calls/puts split that you cannot see; say what is available.

The answering routine

  1. State freshness and path. Use the block's computed_at and age. If it crossed a session boundary, say it is from an earlier session and that the cumulative total is not today's.
  2. Direction and size. cum_total_last sign and size. Judge size only against what the summary says about today, never against an absolute dollar figure.
  3. Findings. List the largest prints with strike, side, size, direction and time. Quote the drift text including its lead/lag note.
  4. Relate to levels. Compare the strikes of large prints with the GEX walls and Flip (get_cboe_gex, positioning.gex) and the TRACE nodes (get_trace).
  5. Derived reading, labelled as derived, with an invalidation.
  6. Caveats: inferred sides, assumed dealer hedging, narrow strike band, no calibration, no validation against an independent reference, no recommendation.

Rules that must not be broken

A response template

Data: Hedging Flow for SPX, stored at 15:40 UTC (3 min ago), live IB path, same session.
Direction: cumulative Total −$180 million (estimated dealer selling), most of it in the last 30 minutes.
Findings: drift −$95 million over 15 minutes (3.8 robust sigma; the underlying was already moving that way and kept going). Largest print: 4,950 put, 1,200 lots, selling pressure, 14:52 UTC.
Against levels: the 4,950 print is 45 points below spot; compare with the GEX Flip (4,968) and the TRACE node at 4,900.
Reading (derived): sustained put-driven hedging pressure accompanying a drift lower; the flow looks like a continuation rather than a lead. Invalidation: the Total reversing back through its recent range.
Caveats: trade sides are inferred, dealer hedging is assumed, only a band of strikes is tracked, and the tool is unvalidated; this is not a recommendation.

9. What you cannot conclude


10. One-page checklist

  1. Which path? Enough history (30+ minutes for a drift test)?
  2. Total: direction, change of slope, size relative to today.
  3. Calls versus puts: who is driving it? (Puts up = customers selling puts.)
  4. Price: agreeing, diverging, or leading or following the flow?
  5. Findings: strikes of the large prints; the drift episode; the lead/lag note.
  6. Levels: do the strikes coincide with GEX walls, the Flip or TRACE nodes?
  7. Write the invalidation. Remember: unvalidated, inferred, narrow band, not a signal.

Related


Go back to the main help page: SOAP2 Help Guide

⬅ Back