I am able to get good approximations for delta, gamma, and rho via finite difference method, but not theta. I believe my issue is the value of h. Theta is basically the difference between the price of the the option one time step in the future and the price today divided by the size of the time step, ie

theta (approx) = V(d_v+1) - V(d_v)/(1/365), where V(d_v+1) is the value of the option one time step (1/365) into the future

This basically comes from http://docs.fincad.com/support/developerfunc/mathref/greeks.htm

If I apply this to, for example, the call option quote on 04/18/2013 for ticker A (Agilent, I believe), strike of 40, underlying price of 41.83, expiry of 05/18/2013 (30/365 days to maturity), 1.1% Dividend Yield, 0.3% risk-free rate, I get a theta of -8.9, whereas the actual theta is approximated by a large options data reporting firm as approx -2.2. My other Greek approximations are close enough, but I cannot get a good approximation for theta. Anybody have insight into this issue? Thanks in advance for your help!

  • $\begingroup$ Volatility=... ? $\endgroup$ – user16651 Jul 16 '16 at 6:24
  • $\begingroup$ you can use this function in matlab: [CallTheta, PutTheta] = blstheta(Price, Strike, Rate, Time, Volatility, Yield) and compare solutions. $\endgroup$ – user16651 Jul 16 '16 at 7:59
  • $\begingroup$ Sorry, Implied Vol = 0.3263. $\endgroup$ – Sean Sinykin Jul 17 '16 at 6:48
  • $\begingroup$ Yes it is correct. blstheta(40,41.83,0.003,1/12,0.3263,0.011) ans = -8.0890 $\endgroup$ – user16651 Jul 17 '16 at 6:54
  • $\begingroup$ Thank you for your response, but I am really looking for the specific algo to calculate this (pseudocode). I am not really looking for a black box function for theta calculation, I am looking a reliable algo for theta calculation. I am not convinced of the accuracy for this Matlab function which you are suggesting, nor am I convinced of the accuracy of my finite difference application to this calculation. It is possible that this particular commercial vendor is incorrect, but I would like to definitively prove it by constructing my own algo, which would not be black-box (at least to me). $\endgroup$ – Sean Sinykin Jul 17 '16 at 18:09

You should ask your data provider how exactly they come up with this number. Many implementations divide theta by 365 or some other yearly day count to arrive at "theta per day".

It should be simple enough to check the value: for a European option, you can use the analytic formula; for American Options, you can use a tree. Methods to get the Greeks in the binomial method are described in the paper Implementing Binomial Trees


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.