qqq_liquidity
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-13, from ndx-vs-qqq-options.
symbol
QQQ
session pretty
Sep 10, 2026
atm iv pct
20.5
atm contracts
262
total contracts
4,804
total volume
2.26M
total volume pretty
2.26 million
- Rows × columns
- 1 × 7
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
symbol |
text | 1 distinct value (QQQ) | |
session_pretty |
text | 1 distinct value (Sep 10, 2026) | |
atm_iv_pct |
number | every row is 20.5 | percent |
atm_contracts |
number | every row is 262 | count |
total_contracts |
number | every row is 4,804 | count |
total_volume |
number | every row is 2,262,169 | count |
total_volume_pretty |
text | 1 distinct value (2.26 million) |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
the exact SQL behind every number
SELECT
underlying_symbol AS symbol,
concat(formatDateTime(min(date), '%b'), ' ', toString(toDayOfMonth(min(date))), ', ', toString(toYear(min(date)))) AS session_pretty,
round(avgIf(implied_volatility,
iv_converged = 1
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02) * 100, 1) AS atm_iv_pct,
countIf(iv_converged = 1
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02) AS atm_contracts,
count() AS total_contracts,
sum(volume) AS total_volume,
formatReadableQuantity(toFloat64(sum(volume))) AS total_volume_pretty
FROM global_markets.options_greeks
WHERE underlying_symbol = 'QQQ'
AND volume > 0
AND date = (
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'QQQ'
AND date >= today() - 30
AND volume > 0
)
GROUP BY symbol
HAVING countIf(iv_converged = 1
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02) > 0
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisndx-vs-qqq-options
contract_size
scalar 1×4
→
qqq_dividends
series 8×4
→
expiry_weekdays
ranking 5×2
→
Forward-declared ex-dividend records on file: the receipt behind this calendar
scalar 1×5
→
The receipts: universe size, filter bite, median crowding, and list churn at the latest print
scalar 1×5
→
Regular trading sessions over the trailing year
scalar 1×3
→
See all 2,225 queries →