Hi I was hoping someone could help me with something that is confusing the life out of me and honestly doesn't seem to be explained anywhere on the entire internet...
I need an option model for pricing options on normally distributed underlying as opposed to log normally distributed i.e. Black Scholes. I have been using Louis Bachelors 1900 model and finding there is no put call parity when using and interest rate that is not 0%. The original Bachelier model had no interest rate factor but from the book The Complete Guide To Option Pricing Formulas by Espen Gaarder Haug I managed to get some VBA code for a modified version of the model which would incorporate interest rates. The formulas are as follows:
S = Underlying asset price
X = Strike
T = Time to expiration in years
v = Volatility of underlying asset
N(x) = The cumulative normal distribution
n(x) = The standard normal density function
Bachelier Call = (S - X)N(d1) + v*sqrt(T)*n(d1)
Bachelier Put = (X - S)N(-d1) + v*sqrt(T)*n(d1)
where d1 = (S - X) / v*sqrt(T)
Espen Gaarder Haug then explains "By using the arguments of BSM but now with arithmetic Brownian motion (normal distributed stock price), we can easily correct the Bachelor model to take into account the time value of money in a risk-neutral world. This yields:"
Modified Bachelier Call = SN(d1) - Xe^-rtN(d1) + v*sqrt(T)*n(d1)
Modified Bachelier Put = Xe^-rtN(-d1) - SN(-d1) + v*sqrt(T)*n(d1)
Essentially just multiplying the strike price by e^-rt in both cases.
So at first everything seems to be great:
if risk free rate = 0% and S = 100, T = 1, v = 25
where X = 100, Put Price = 9.9736
where X = 100, Call Price = 9.9736
i.e. we have put call parity
where X = 95, Put Price = 7.6724
where X = 105, Call Price = 7.6724
i.e. equidistant out of the money puts and calls are valued identically, which is one of the main aims of my entire project
However!!!! Changing just the interest rate causes problems I don't understand:
if risk free rate = 5% and S = 100, T = 1, v = 25
where X = 100, Put Price = 7.5350
where X = 100, Call Price = 12.4121
i.e. we do not have put call parity, WHHHHYYYY!!
where X = 95, Put Price = 5.7230
where X = 105, Call Price = 9.8269
i.e. equidistant out of the money puts and calls are valued differently, which I can actually understand since the time value of the purchasing at the two different strike prices is affected by the interest rate.
Can someone please explain what is going wrong here? Thank you very much