{"slug":"what-is-the-skew-stickiness-ratio","qid":"pente_par_sous_jacent","label":"pente_par_sous_jacent","post_title":"what-is-the-skew-stickiness-ratio","post_url":"/blog/lang/fr/what-is-the-skew-stickiness-ratio#q-pente_par_sous_jacent","columns":["symbol","session_count","pente_vol_pts","pente_fr","correlation"],"rows":[{"symbol":"SPY","session_count":250,"pente_vol_pts":-1.24,"pente_fr":"1,24","correlation":-0.81},{"symbol":"QQQ","session_count":250,"pente_vol_pts":-0.88,"pente_fr":"0,88","correlation":-0.7},{"symbol":"MSFT","session_count":250,"pente_vol_pts":-0.04,"pente_fr":"0,04","correlation":-0.04},{"symbol":"AAPL","session_count":250,"pente_vol_pts":-0.18,"pente_fr":"0,18","correlation":-0.17},{"symbol":"NVDA","session_count":250,"pente_vol_pts":-0.25,"pente_fr":"0,25","correlation":-0.29},{"symbol":"TSLA","session_count":250,"pente_vol_pts":0,"pente_fr":"0","correlation":0}],"shape":"table","sql":"WITH iv_atm AS (\n    SELECT\n        underlying_symbol                        AS sym,\n        date,\n        avg(toFloat64(implied_volatility)) * 100 AS iv_pct\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol IN ('SPY', 'QQQ', 'MSFT', 'AAPL', 'NVDA', 'TSLA')\n      AND date >= '2025-09-01'\n      AND date <  '2026-09-01'\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.02\n    GROUP BY sym, date\n),\nspot AS (\n    SELECT\n        ticker           AS sym,\n        date,\n        toFloat64(close) AS px\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('SPY', 'QQQ', 'MSFT', 'AAPL', 'NVDA', 'TSLA')\n      AND date >= '2025-09-01'\n      AND date <  '2026-09-01'\n),\napparie AS (\n    SELECT\n        i.sym    AS sym,\n        i.date   AS d,\n        i.iv_pct AS iv,\n        s.px     AS px,\n        any(i.iv_pct) OVER (PARTITION BY i.sym ORDER BY i.date ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS iv_prec,\n        any(s.px)     OVER (PARTITION BY i.sym ORDER BY i.date ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS px_prec\n    FROM iv_atm AS i\n    INNER JOIN spot AS s ON s.sym = i.sym AND s.date = i.date\n),\nvariations AS (\n    SELECT\n        sym,\n        (px / px_prec - 1) * 100 AS rendement_pct,\n        iv - iv_prec             AS iv_variation_pct\n    FROM apparie\n    WHERE px_prec > 0\n)\nSELECT\n    sym                                                             AS symbol,\n    count()                                                         AS session_count,\n    round(covarPop(rendement_pct, iv_variation_pct)\n          / varPop(rendement_pct), 2)                               AS pente_vol_pts,\n    replace(toString(round(abs(covarPop(rendement_pct, iv_variation_pct)\n          / varPop(rendement_pct)), 2)), '.', ',')                   AS pente_fr,\n    round(corr(rendement_pct, iv_variation_pct), 2)                 AS correlation\nFROM variations\nGROUP BY sym\nHAVING count() > 100\nORDER BY indexOf(['SPY', 'QQQ', 'MSFT', 'AAPL', 'NVDA', 'TSLA'], sym)","computed_at":"2026-09-26T15:28:03.731091+00:00","elapsed":0.105593575}