{"slug":"ndx-vs-qqq-options","qid":"qqq_liquidity","label":"qqq_liquidity","post_title":"ndx-vs-qqq-options","post_url":"/blog/ndx-vs-qqq-options#q-qqq_liquidity","columns":["symbol","session_pretty","atm_iv_pct","atm_contracts","total_contracts","total_volume","total_volume_pretty"],"rows":[{"symbol":"QQQ","session_pretty":"Sep 10, 2026","atm_iv_pct":20.5,"atm_contracts":262,"total_contracts":4804,"total_volume":2262169,"total_volume_pretty":"2.26 million"}],"shape":"scalar","sql":"SELECT\n    underlying_symbol                                                         AS symbol,\n    concat(formatDateTime(min(date), '%b'), ' ', toString(toDayOfMonth(min(date))), ', ', toString(toYear(min(date)))) AS session_pretty,\n    round(avgIf(implied_volatility,\n                iv_converged = 1\n                AND days_to_expiry BETWEEN 20 AND 45\n                AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02) * 100, 1) AS atm_iv_pct,\n    countIf(iv_converged = 1\n            AND days_to_expiry BETWEEN 20 AND 45\n            AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02) AS atm_contracts,\n    count()                                                                   AS total_contracts,\n    sum(volume)                                                               AS total_volume,\n    formatReadableQuantity(toFloat64(sum(volume)))                            AS total_volume_pretty\nFROM global_markets.options_greeks\nWHERE underlying_symbol = 'QQQ'\n  AND volume > 0\n  AND date = (\n        SELECT max(date)\n        FROM global_markets.options_greeks\n        WHERE underlying_symbol = 'QQQ'\n          AND date >= today() - 30\n          AND volume > 0\n      )\nGROUP BY symbol\nHAVING countIf(iv_converged = 1\n               AND days_to_expiry BETWEEN 20 AND 45\n               AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02) > 0","computed_at":"2026-09-13T14:44:16.667460+00:00","elapsed":0.089179926}