{"slug":"nikkei-225-options-explained","qid":"vol_premium_history","label":"SPY implied volatility vs the volatility realized in the following month","post_title":"Nikkei 225 Options and SQ Settlement","post_url":"/blog/nikkei-225-options-explained#q-vol_premium_history","columns":["month","implied_vol_pct","realized_vol_pct","premium_pct","avg_premium_pct"],"rows":[{"month":"2024-08","implied_vol_pct":15.4,"realized_vol_pct":13.7,"premium_pct":1.7,"avg_premium_pct":1.5},{"month":"2024-09","implied_vol_pct":14.9,"realized_vol_pct":11.1,"premium_pct":3.8,"avg_premium_pct":1.5},{"month":"2024-10","implied_vol_pct":16.3,"realized_vol_pct":11.9,"premium_pct":4.4,"avg_premium_pct":1.5},{"month":"2024-11","implied_vol_pct":13.4,"realized_vol_pct":13.9,"premium_pct":-0.5,"avg_premium_pct":1.5},{"month":"2024-12","implied_vol_pct":12.3,"realized_vol_pct":13.9,"premium_pct":-1.6,"avg_premium_pct":1.5},{"month":"2025-01","implied_vol_pct":14.2,"realized_vol_pct":13.1,"premium_pct":1.1,"avg_premium_pct":1.5},{"month":"2025-02","implied_vol_pct":13.7,"realized_vol_pct":20.3,"premium_pct":-6.6,"avg_premium_pct":1.5},{"month":"2025-03","implied_vol_pct":18.8,"realized_vol_pct":49,"premium_pct":-30.2,"avg_premium_pct":1.5},{"month":"2025-04","implied_vol_pct":25.9,"realized_vol_pct":16.8,"premium_pct":9.1,"avg_premium_pct":1.5},{"month":"2025-05","implied_vol_pct":18.2,"realized_vol_pct":10.2,"premium_pct":8,"avg_premium_pct":1.5},{"month":"2025-06","implied_vol_pct":15.7,"realized_vol_pct":6.6,"premium_pct":9.1,"avg_premium_pct":1.5},{"month":"2025-07","implied_vol_pct":14.8,"realized_vol_pct":11.9,"premium_pct":2.9,"avg_premium_pct":1.5},{"month":"2025-08","implied_vol_pct":13.5,"realized_vol_pct":7,"premium_pct":6.5,"avg_premium_pct":1.5},{"month":"2025-09","implied_vol_pct":13.5,"realized_vol_pct":13.6,"premium_pct":-0.1,"avg_premium_pct":1.5},{"month":"2025-10","implied_vol_pct":15.3,"realized_vol_pct":15.3,"premium_pct":0,"avg_premium_pct":1.5},{"month":"2025-11","implied_vol_pct":16.3,"realized_vol_pct":8.4,"premium_pct":7.9,"avg_premium_pct":1.5},{"month":"2025-12","implied_vol_pct":13.3,"realized_vol_pct":10.2,"premium_pct":3.1,"avg_premium_pct":1.5},{"month":"2026-01","implied_vol_pct":13.8,"realized_vol_pct":13.4,"premium_pct":0.4,"avg_premium_pct":1.5},{"month":"2026-02","implied_vol_pct":16.2,"realized_vol_pct":18.1,"premium_pct":-1.9,"avg_premium_pct":1.5},{"month":"2026-03","implied_vol_pct":20.9,"realized_vol_pct":11.6,"premium_pct":9.3,"avg_premium_pct":1.5},{"month":"2026-04","implied_vol_pct":16.9,"realized_vol_pct":9.7,"premium_pct":7.2,"avg_premium_pct":1.5},{"month":"2026-05","implied_vol_pct":15.4,"realized_vol_pct":17.5,"premium_pct":-2.1,"avg_premium_pct":1.5},{"month":"2026-06","implied_vol_pct":15.4,"realized_vol_pct":12,"premium_pct":3.4,"avg_premium_pct":1.5}],"shape":"series","sql":"WITH daily AS (\n    SELECT 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 = 'SPY'\n      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2024-08-01')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')\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 session_date\n),\nrets AS (\n    SELECT session_date,\n           toFloat64(session_close) AS close_px,\n           any(toFloat64(session_close)) OVER (ORDER BY session_date ASC\n                                               ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close\n    FROM daily\n),\nrealized AS (\n    SELECT toStartOfMonth(session_date) AS month_start,\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    GROUP BY month_start\n),\nimplied AS (\n    SELECT toStartOfMonth(date) AS month_start,\n           addMonths(toStartOfMonth(date), 1) AS next_month_start,\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 = 'SPY'\n      AND date >= toDate('2024-08-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 month_start, next_month_start\n)\nSELECT formatDateTime(i.month_start, '%Y-%m') AS month,\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,\n       round(avg(i.implied_vol_pct - r.realized_vol_pct) OVER (), 1) AS avg_premium_pct\nFROM implied AS i\nINNER JOIN realized AS r ON i.next_month_start = r.month_start\nWHERE r.sessions >= 15\nORDER BY month","computed_at":"2026-08-03T08:06:58.445628+00:00","elapsed":0.005300429}