# Options: theoretical vs empirical price

I am having trouble pricing options. Now please bear with me because I am a total noob.

Given an american put option on the CL stock:

The last price is 4.75\$, with an implied volatility of 19.97%. The price of the underlying stock is currently 66.05\$. The option expires in 13 months.

% Price of a European Call under Black-Scholes
function out = bs(S0, K, r, T, sigma)

d_1 = (log(S0/K)+(r+sigma^2/2)*T)/(sigma*sqrt(T));
d_2 = d_1 - sigma*sqrt(T);
out = S0*normcdf(d_1)-K*exp(-r*T)*normcdf(d_2);

end

r = 0.01;
S0 = 66.05;
K = 65.00;
T = 13/12;
sigma = 0.1997;
BS = bs(S0, K, r, T, sigma)


BS = 6.3147

My question: Why is my theoretical price higher than the empirical one? Is it due to supply and demand mechanics, or did I do something wrong with the parameters?

I am aware that the bs function I use prices European options, and the CL option I provided is an American option. But as far as I know, American options tend to be more expensive.

Any help is greatly appreciated!

• Without even looking at the parameters you chose (how did you come up with the interest rate and why do you not account for dividends?), you are comparing an American put price to a European call price. I fail to see how this could work. In your setting $r=0.01, q=0$, pricing a put would give you: 4.5643 which is indeed a lower bound for the American counterpart. – Quantuple Dec 22 '16 at 12:38
• @Quantuple: Good point - I didn't even spot that. But even call vs. call wouldn't work as the forward is totally off. – LocalVolatility Dec 22 '16 at 12:39
• @LocalVolatility - Yes I guess you are right, probably the dividends missing out. – Quantuple Dec 22 '16 at 12:41
• @drx, the formula you've used prices call options. To price put options, either you should use $P = e^{-rT}K N(-d_2) - S_0e^{(r-q)T}N(-d_1)$ with $q$ the continuously compounded dividend yield or you could appeal to call-put parity to write that $P = C - e^{-rT}(S_0e^{(r-q)T}-K)$ where $C$ is the call option price and $S_0e^{(r-q)T} = F(0,T)$ is the forward price. – Quantuple Dec 22 '16 at 12:51
• This is explained in @LocalVolatility's answer. Let's assume the input price is a European put price, to keep things simple. You have $P = f(S_0,K,T,r,q,\sigma)$ where $f(.)$ is the appropriate BS formula. If you observe a certain price $P$ and know the parameters $S_0, K, T, r, q$ this gets you an "implied volatility" $\sigma^* = f(S_0,K,T,r,q)$. Of course if you now you this implied volatility with yet a different $r$ (and/or $q$) and plug that back to your formula you won't find the input price. – Quantuple Dec 22 '16 at 12:57