Strasmore Research
Learn am Matt ConnorBy Matt Connor · data as of August 21, 2026 · refreshed weekly

How Order Flow Dey Move Implied Volatility

See how one-sided call buying fit move implied volatility from balanced book, with real daily vol and volume figures, even when stock no dey move.

Order flow dey move implied volatility one quote at a time. Market maker wey dey quote option no dey bet on where stock go go. E dey post price for both sides. When buyers keep coming for one side, e go raise the volatility wey e ready to offer until the flow slow down or the cost of carrying the position don cover. Stock fit remain still through the whole process, and most times na so e dey happen.

Wetin market maker really dey quote

Option get dollar bid and dollar offer, but the desk for the other side dey work with volatility. Implied volatility na the annualized percentage move wey option price dey imply, based on strike, days left to expiry, stock price, and interest rate. Put price inside pricing model, volatility number go come out. Put volatility inside, price go come out. Implied volatility na price wey dem restate with different units. Na why professionals dey quote options in volatility instead of dollars.

Make we use hypothetical example. A $220 call wey get one month before expiry dey offer for $5.20 in the morning. By afternoon, the same contract dey offer for $5.60. Stock still dey $220, and one day don comot from the clock. Strike no change. Rate no change. The passing of one day suppose push option price the other way. The extra 40 cents dey inside the volatility input, and nowhere else.

How order flow dey move implied volatility for one strike

The panel below take every AAPL option wey dey within 5% of stock price and get 20 to 45 days to expiry. E measure each session in three ways: the share of that day’s contract volume wey trade for calls, the average implied volatility wey those near-the-money contracts carry, and where stock close compared with its level on the first day of the window.

QueryDaily call share of near-the-money AAPL volume against the vol wey dem contracts carry
The exact SQL behind every number
WITH
    (
        SELECT toFloat64(close)
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'AAPL'
          AND date >= '2026-05-01'
        ORDER BY date
        LIMIT 1
    ) AS start_close
SELECT
    toString(date)                                                                             AS date,
    round(100 * sumIf(volume, startsWith(lower(toString(option_type)), 'c')) / sum(volume), 1) AS call_share_pct,
    round(100 * avg(implied_volatility), 1)                                                    AS atm_iv_pct,
    round(100 * (toFloat64(any(underlying_close)) / start_close - 1), 1)                       AS stock_pct_vs_start
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date BETWEEN '2026-05-01' AND '2026-06-30'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY date
ORDER BY date
Run this yourself

Across 41 sessions for May and June 2026, call share open the window at 71% of near-the-money volume and finish am at 80.7%. Volatility for those same contracts move from 22.5% to 27.8%, while stock finish 3.2% from where e start.

The two lines no follow each other session by session, and na this be the honest picture of the process. One day of buying wey lean one side fit move quote by one tick. Several days fit move the level, because market maker dey asked to hold more of the same position every morning at a price wey never slow demand. Nothing for this process require stock to move anywhere.

Why one strike prints higher IV than the ones near am

Hold one session fixed and look across strikes instead of across days. The panel below keep date and expiry fixed. E move through the busiest expiration for that session, from below stock price to above am.

QueryOffered volatility by strike, one AAPL expiry, one session
The exact SQL behind every number
WITH
    (
        SELECT max(date)
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'AAPL'
          AND date <= '2026-06-30'
    ) AS session_date,
    (
        SELECT expiration_date
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'AAPL'
          AND date = session_date
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 20 AND 45
        GROUP BY expiration_date
        ORDER BY sum(volume) DESC
        LIMIT 1
    ) AS busy_expiry
SELECT
    concat('$', toString(toUInt32(round(toFloat64(strike_price))))) AS strike,
    round(100 * avg(implied_volatility), 1)                         AS offered_iv_pct,
    sum(volume)                                                     AS contract_volume
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date = session_date
  AND expiration_date = busy_expiry
  AND iv_converged = 1
  AND volume > 0
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.06
GROUP BY strike_price
ORDER BY strike_price
Run this yourself

Every contract for the panel dey based on the same stock, same day, and same expiry date. Strike na the only thing wey change from row to row, and offered volatility change with am: 26.2% for the $275 strike compared with 23.3% for $305, across 7 strikes altogether. That difference from one strike to the next na volatility skew, and the balance between buying and selling na one thing wey shape am. Demand no dey enter evenly across the chain. E dey enter for the strike wey somebody want, and na the quote for that strike dey move.

If we split the same session by option type, the picture go clear more, because desk dey quote calls and puts wey get the same distance from stock price at the same moment.

QueryCall and put volatility for matched distances from the stock price
The exact SQL behind every number
WITH
    (
        SELECT max(date)
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'AAPL'
          AND date <= '2026-06-30'
    ) AS session_date
SELECT
    multiIf(bucket = 0, 'at spot',
            bucket < 0, concat(toString(abs(bucket)), '% below'),
            concat(toString(bucket), '% above'))  AS strike_vs_spot,
    round(100 * avgIf(iv, is_call), 1)            AS call_iv_pct,
    round(100 * avgIf(iv, NOT is_call), 1)        AS put_iv_pct
FROM
(
    SELECT
        implied_volatility                                                                     AS iv,
        startsWith(lower(toString(option_type)), 'c')                                          AS is_call,
        round(((toFloat64(strike_price) / toFloat64(underlying_close)) - 1) * 100 / 2.5) * 2.5 AS bucket
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date = session_date
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.10
)
GROUP BY bucket
HAVING countIf(is_call) > 0 AND countIf(NOT is_call) > 0
ORDER BY bucket
Run this yourself

For 7.5% below, the puts carry 30% against 27.6% for the calls. For 10% above, the same two measurements print 33.3% and 25.7%. Same stock, same minute, same model. The differences dey inside the strikes wey people keep requesting.

The market maker still dey quote the other side

If desk mark offer higher, e no mean say e refuse to trade. Desk wey keep selling calls into steady demand go end up short those calls. The normal defence na to buy stock against dem. That na delta hedging: stock position wey get enough size to offset the option’s directional exposure, and wey desk adjust as stock dey move. Hedge no be free. Rebalancing dey cost money every time stock move. The risk wey stock no fit offset — the position’s sensitivity to volatility itself — dey grow with every contract sold.

The higher offer na the price for taking on one more unit of the same risk. Bid go move up with am, because desk go gladly buy those calls back at better level. The spread between both sides na how market makers make money, no be bet on direction.

Wetin electronic quote fit see and wetin e no fit see

For trading floor, order dey arrive through person. Broker go enter the crowd, and market makers wey dey there fit see the size and the firm behind am. That context dey form part of the price wey dem give. Screens remove am. Modern market maker dey read the shape of the flow from the tape afterwards: volume by strike and expiry, overnight change in open interest — the number of contracts wey still dey outstanding — how quickly resting offer get lifted, and whether buying come back after volatility don mark up. Most times, e no possible to separate institutional order from retail order. Quote dey adjust to the trading pattern, never to the trader identity.

QueryCall share of near-the-money volume and the vol wey dem carry, six names, one session
The exact SQL behind every number
WITH
    (
        SELECT max(date)
        FROM global_markets.options_greeks
        WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'SPY')
          AND date <= '2026-06-30'
    ) AS session_date
SELECT
    underlying_symbol                                                                          AS symbol,
    round(100 * sumIf(volume, startsWith(lower(toString(option_type)), 'c')) / sum(volume), 1) AS call_share_pct,
    round(100 * avg(implied_volatility), 1)                                                    AS atm_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'SPY')
  AND date = session_date
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY underlying_symbol
ORDER BY call_share_pct DESC
Run this yourself

For that session, AMZN sit at the top of the group with 91.9% of its near-the-money volume in calls, and near-the-money vol of 38.7%. Read the two columns down the panel and dem no line up row by row. One day of flow na only one input into a surface wey also carry each name’s own trading history and any position wey desk already hold.

Wetin this no mean

Quote no be forecast. Higher offer mean say desk want more compensation for the next contract wey e sell. E no talk anything about where stock go go next. Implied volatility na price, and people set am by wetin dem dey pay. The gap between implied and historical volatility na where reader fit see how often price and actual outcome no agree. Strike wey dem quote at 40% vol no predict 40% move. Somebody wey want that contract don bid the price up.

How dem measure these panels

Every panel filter contracts where the model’s volatility solution converge and where contract actually trade that day. Then e keep only near-the-money strikes with 20 to 45 days to expiry. Na the standard window for reading volatility level without distortion from very short or very long dated contracts. Averages no get weighting across contracts inside the bucket. Call share count contracts traded, no be customer direction, because tape no label trade as buy or sell.

FAQ

Buying options dey push implied volatility up?

Buying wey continue for one side at a strike dey happen together with higher offered volatility for that strike. Desk for the other side dey sell contracts wey e then need hedge. Offer na where e price the next contract. One small order hardly move volatility for liquid name in any visible way.

Market makers dey bet on direction?

Quoting two-sided market na business wey dey depend on spread between bid and offer, while desk hedge stock exposure instead of holding am. Maker wey end up long or short usually enter that position because e fill other people’s orders.

Why two strikes for the same stock get different implied volatilities?

Each strike na separate contract with its own supply and demand. Skew na the name for the pattern wey make downside and upside strikes carry different volatilities for the same expiry.

Rising implied volatility mean say stock go move?

No. Implied volatility na option price restated as percentage, and price na wetin people dey pay today. Realized moves fit land below or above wetin option market charge, and this dey happen all the time.

Market maker fit know who dey buy?

For electronic market, usually no. Tape show contracts, strikes, expiries, and time stamps, but e no attach customer name. For trading floor, maker fit see broker inside the crowd. That context disappear when trading move to screens.


Every panel above come with the SQL wey produce am, so dem fit point the same measurement to any other name or any other week. Ask am in plain English for Strasmore terminal.

#implied volatility#market makers#order flow#options#volatility skew