I am trying to decompose option prices into various greeks and trying to see if I can recover option prices from various of its greeks.
At the start of certain time t(0)
, I calculate option option delta
, vega
, gamma
.
Now, I have the underlying prices and option prices at every second sampled from a tick data set, so the prices are sane and option prices are in sync with the underlying prices.
For every times t(i+1)
, i have the following
change In Opt Price Due To Delta = (delta(i+1) + delta(i)) * 0.5 * (change in underlying price)
change in Opt Price Due to Gamma = (gamma(i+1) + gamma(i)) * 0.5 * 0.5 * (change in ul_price)**2
Now, what I expected to see was that if i take sum of opt price change due to delta and gamma, then I should be able to get a number which was close to the change in option price due to delta. I mean if I started with an option delta of 0.50 and ended with an option of delta 0.25, when the price of the underlying contract changes by 100 points, i should see a number between 25 and 50. But I am consistently getting a number close to 25. I understand that there can be higher order greeks that can come into the picture, but I am not sure if they can play such a large role.
Has anyone experience with dealing something similar?
PS: when I say number consistently close to 25, I mean that I have tried doing this for various options and the number I get when i take the delta and gamma change total, i get a number close to (delta at t(N) * (S(t(N)) - S(t(0))))
where t(N)
is the end of the period
EDIT: I think I was not able to articulate the problem statement. Let me take another stab at it. Suppose I start the day with a 25 delta call, price say 100. The market doesnt move anywhere over the course of the day. At the end of the day, option price is 90. This would imply that the drop in prices would have been due to greeks other than delta/gamma, since the market did not move. Now I try to extend the same case as above, but in this case, the underlying market dropped by 20 points. So, the price of the call should drop by additional ~5 points (a little less due to gamma). In this case I have assumed simple case with higher order greeks being 0.
What I am trying to do is to isolate this drop in option price due to delta and gamma. My idea behind writing the code above was to see if I can end up with a fair estimate of delta+greeks pnl if I sample data every second.