{"slug":"collar-greeks-as-the-stock-moves","qid":"collar_greeks","label":"Net collar gamma, theta and vega across the price range","post_title":"Collar Option Greeks as the Stock Moves","post_url":"/blog/collar-greeks-as-the-stock-moves#q-collar_greeks","columns":["spot_price","net_gamma","net_theta","net_vega"],"rows":[{"spot_price":"$85","net_gamma":5.05,"net_theta":-2.36,"net_vega":7.5},{"spot_price":"$90","net_gamma":6.01,"net_theta":-3.68,"net_vega":10},{"spot_price":"$100","net_gamma":-0.88,"net_theta":0.94,"net_vega":-1.82},{"spot_price":"$110","net_gamma":-4.96,"net_theta":5.75,"net_vega":-12.34},{"spot_price":"$118","net_gamma":-2.68,"net_theta":4.21,"net_vega":-7.68}],"shape":"ranking","sql":"SELECT\n    spot_price,\n    net_gamma,\n    net_theta,\n    net_vega\nFROM\n(\n    WITH\n        100.0        AS contract_multiplier,\n        90.0         AS put_strike,\n        110.0        AS call_strike,\n        0.25         AS vol,\n        0.04         AS rate,\n        30.0 / 365.0 AS years\n    SELECT\n        spot,\n        concat('$', toString(toUInt16(spot)))                                              AS spot_price,\n        (log(spot / put_strike)  + (rate + 0.5 * vol * vol) * years) / (vol * sqrt(years)) AS d1_put,\n        (log(spot / call_strike) + (rate + 0.5 * vol * vol) * years) / (vol * sqrt(years)) AS d1_call,\n        d1_put  - vol * sqrt(years)                                                        AS d2_put,\n        d1_call - vol * sqrt(years)                                                        AS d2_call,\n        exp(-0.5 * d1_put  * d1_put)  / sqrt(2 * pi())                                     AS pdf_put,\n        exp(-0.5 * d1_call * d1_call) / sqrt(2 * pi())                                     AS pdf_call,\n        0.5 * (1 + erf(-d2_put  / sqrt(2)))                                                AS nd2_put_below,\n        0.5 * (1 + erf( d2_call / sqrt(2)))                                                AS nd2_call_above,\n        pdf_put  / (spot * vol * sqrt(years))                                              AS gamma_put,\n        pdf_call / (spot * vol * sqrt(years))                                              AS gamma_call,\n        (-(spot * pdf_put  * vol) / (2 * sqrt(years)) + rate * put_strike  * exp(-rate * years) * nd2_put_below)  / 365 AS theta_put_day,\n        (-(spot * pdf_call * vol) / (2 * sqrt(years)) - rate * call_strike * exp(-rate * years) * nd2_call_above) / 365 AS theta_call_day,\n        spot * pdf_put  * sqrt(years) / 100                                                AS vega_put_point,\n        spot * pdf_call * sqrt(years) / 100                                                AS vega_call_point,\n        round(contract_multiplier * (gamma_put - gamma_call), 2)                           AS net_gamma,\n        round(contract_multiplier * (theta_put_day - theta_call_day), 2)                   AS net_theta,\n        round(contract_multiplier * (vega_put_point - vega_call_point), 2)                 AS net_vega\n    FROM\n    (\n        SELECT arrayJoin([85.0, 90.0, 100.0, 110.0, 118.0]) AS spot\n    )\n)\nORDER BY spot","computed_at":"2026-08-18T14:47:00.618975+00:00","elapsed":0.563732968}