{"slug":"collar-greeks-as-the-stock-moves","qid":"collar_delta","label":"Collar delta at five stock prices, 30 days to expiry","post_title":"Collar Option Greeks as the Stock Moves","post_url":"/blog/collar-greeks-as-the-stock-moves#q-collar_delta","columns":["spot_price","stock_delta","long_put_delta","short_call_delta","net_delta"],"rows":[{"spot_price":"$85","stock_delta":100,"long_put_delta":-76.3,"short_call_delta":0,"net_delta":23.7},{"spot_price":"$90","stock_delta":100,"long_put_delta":-46.7,"short_call_delta":-0.3,"net_delta":52.9},{"spot_price":"$100","stock_delta":100,"long_put_delta":-6,"short_call_delta":-10.6,"net_delta":83.4},{"spot_price":"$110","stock_delta":100,"long_put_delta":-0.2,"short_call_delta":-53.3,"net_delta":46.5},{"spot_price":"$118","stock_delta":100,"long_put_delta":0,"short_call_delta":-85.6,"net_delta":14.4}],"shape":"table","sql":"SELECT\n    spot_price,\n    stock_delta,\n    long_put_delta,\n    short_call_delta,\n    net_delta\nFROM\n(\n    WITH\n        100.0        AS shares,\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        0.5 * (1 + erf(d1_put  / sqrt(2)))                                                 AS nd1_put,\n        0.5 * (1 + erf(d1_call / sqrt(2)))                                                 AS nd1_call,\n        toInt32(shares)                                                                    AS stock_delta,\n        round(contract_multiplier * (nd1_put - 1), 1)                                      AS long_put_delta,\n        round(-contract_multiplier * nd1_call, 1)                                          AS short_call_delta,\n        round(shares + contract_multiplier * (nd1_put - 1) - contract_multiplier * nd1_call, 1) AS net_delta\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:46:59.694075+00:00","elapsed":0.076371522}