{"slug":"how-to-read-an-option-chain","qid":"volume_by_strike","label":"Where the trading happened: SPY contract volume by strike, August 21 2026 expiry, July 15 2026","post_title":"How to Read an Option Chain, Column by Column","post_url":"/blog/how-to-read-an-option-chain#q-volume_by_strike","columns":["strike","call_volume","put_volume"],"rows":[{"strike":"735","call_volume":81,"put_volume":1087},{"strike":"740","call_volume":233,"put_volume":4057},{"strike":"745","call_volume":195,"put_volume":970},{"strike":"750","call_volume":1077,"put_volume":9057},{"strike":"755","call_volume":3450,"put_volume":2340},{"strike":"760","call_volume":3769,"put_volume":472},{"strike":"765","call_volume":2976,"put_volume":45},{"strike":"770","call_volume":4547,"put_volume":109}],"shape":"ranking","sql":"SELECT toString(toUInt32(strike_price)) AS strike,\n       toUInt64(sumIf(volume, option_type = 'C')) AS call_volume,\n       toUInt64(sumIf(volume, option_type = 'P')) AS put_volume\nFROM global_markets.options_greeks\nWHERE underlying_symbol = 'SPY'\n  AND date = toDate('2026-07-15')\n  AND expiration_date = toDate('2026-08-21')\n  AND strike_price BETWEEN 735 AND 770\n  AND toUInt32(strike_price) % 5 = 0\n  AND iv_converged\nGROUP BY strike_price\nHAVING countIf(option_type = 'C') > 0 AND countIf(option_type = 'P') > 0\nORDER BY strike_price","computed_at":"2026-07-31T08:38:45.352636+00:00","elapsed":0.04586862}