{"slug":"nikkei-225-options-explained","qid":"vol_premium_by_underlying","label":"Implied vs realized volatility, six heavily traded US underlyings, twelve months to June 30, 2026","post_title":"Nikkei 225 Options and SQ Settlement","post_url":"/blog/nikkei-225-options-explained#q-vol_premium_by_underlying","columns":["ticker","implied_vol_pct","realized_vol_pct","premium_pct"],"rows":[{"ticker":"NVDA","implied_vol_pct":40.1,"realized_vol_pct":35.4,"premium_pct":4.7},{"ticker":"SPY","implied_vol_pct":15.2,"realized_vol_pct":12.5,"premium_pct":2.7},{"ticker":"IWM","implied_vol_pct":22.1,"realized_vol_pct":19.6,"premium_pct":2.5},{"ticker":"QQQ","implied_vol_pct":20.2,"realized_vol_pct":18.1,"premium_pct":2.1},{"ticker":"AAPL","implied_vol_pct":25.4,"realized_vol_pct":23.6,"premium_pct":1.8},{"ticker":"MSFT","implied_vol_pct":26.3,"realized_vol_pct":26.9,"premium_pct":-0.6}],"shape":"ranking","sql":"WITH daily AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n           argMax(close, window_start) AS session_close\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY','QQQ','IWM','AAPL','MSFT','NVDA')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-06-20')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker, session_date\n),\nrets AS (\n    SELECT ticker,\n           session_date,\n           toFloat64(session_close) AS close_px,\n           any(toFloat64(session_close)) OVER (PARTITION BY ticker ORDER BY session_date ASC\n                                               ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close\n    FROM daily\n),\nrealized AS (\n    SELECT ticker,\n           round(stddevSamp(close_px / prior_close - 1) * sqrt(252) * 100, 1) AS realized_vol_pct,\n           count() AS sessions\n    FROM rets\n    WHERE prior_close > 0\n      AND session_date >= toDate('2025-07-01')\n    GROUP BY ticker\n),\nimplied AS (\n    SELECT underlying_symbol AS underlying,\n           round(quantileDeterministic(0.5)(toFloat64(implied_volatility) * 100, cityHash64(ticker)), 1) AS implied_vol_pct\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol IN ('SPY','QQQ','IWM','AAPL','MSFT','NVDA')\n      AND date >= toDate('2025-07-01')\n      AND date <= toDate('2026-06-30')\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 20 AND 45\n      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05\n    GROUP BY underlying\n)\nSELECT i.underlying AS ticker,\n       i.implied_vol_pct AS implied_vol_pct,\n       r.realized_vol_pct AS realized_vol_pct,\n       round(i.implied_vol_pct - r.realized_vol_pct, 1) AS premium_pct\nFROM implied AS i\nINNER JOIN realized AS r ON i.underlying = r.ticker\nWHERE r.sessions >= 200\nORDER BY premium_pct DESC","computed_at":"2026-08-03T08:06:58.537759+00:00","elapsed":0.004667972}