Finite-Difference Greeks for Bachelier Commodity Spread Options
Summary
The document describes a pricing and risk question for spread options on commodity futures under a Bachelier model. The author converts lognormal volatilities to normal volatilities, estimates basket volatility through moment matching, and prices a European call, using put-call parity when needed. The resulting price is reported to match a market-data provider's value.
The unresolved issue is how to compute finite-difference Greeks consistently. For delta and gamma, the author asks whether a forward bump should also change the basket volatility, since the forward enters both the volatility calculation and the spread price. For vega, the question is whether to bump basket volatility directly or bump each leg's volatility and rebuild the basket measure. The document reports matching price, correlation, and price-risk values, but provides no answers or finite-difference convention. Results therefore depend on the intended risk definition and how the basket volatility responds to each bump.
Key ideas
- The example prices a commodity futures spread option with a Bachelier model and moment-matched basket volatility.
- The author reports that the option price agrees with a market-data provider.
- The delta and gamma question is whether forward bumps should also update basket volatility.
- The vega question is whether to bump basket volatility directly or bump component volatilities and recompute it.
- The document leaves the appropriate finite-difference risk conventions unresolved.
Tags
Full text
# Computing greeks for Spread Options # Computing greeks for Spread Options I am trying to price spread options on commodity futures using a Bachelier model. I start with lognormal vols that I need to convert to normal vols and get a basket vol, I do this via moment matching, as per the bloomberg documentation: I then price a european call option using the bachelier european call option model (and convert to put if necessary via parity). This matches bloomberg perfectly. My issue comes when I try to compute the greeks: Greeks per leg: 1 -> Delta and gamma: I first shift the forward. The forward is then used both to calculate the value of the basket vol and to calculate the spread/spot for the bachelier call. Do I leave the vol untouched and recalculate only the spot? Do I recalculate both? 2 -> Vega: Do I shift the basket vol? Do I shift the individual leg vols and recompute the basket vol? Price and correl risk I match exactly so the pricing itself is not wrong, only the finite difference computations of the risks Thanks!
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.