dedwards25 / Python_Option_Pricing

An libary to price financial options written in Python. Includes: Black Scholes, Black 76, Implied Volatility, American, European, Asian, Spread Options
MIT License
647 stars 124 forks source link

inconsistency #6

Open aupilot opened 5 months ago

aupilot commented 5 months ago

Hi Davis,

First, thanks for the great piece of code!

It seems that there is some inconsistency in BS and American models. Specifically, if you calculate put option prices with two methods, the both prices look good, but the American model spits out flipped sign for delta and rho. I believe that BS model values are correct. Here is an example:

Black Scholes value delta gamma theta vega rho 1.21 -0.64 0.20 -7.02 2.36 -0.90 American value delta gamma theta vega rho 1.22 0.67 0.19 -7.18 2.35 0.85

Code used:

fs = 30.17; x = 31; t=16/365; r=0.051; v=0.3; q=0.01;
value, delta, gamma, theta, vega, rho = black_scholes("p", fs=fs, x=x, t=t, r=r, v=v)
value, delta, gamma, theta, vega, rho = american("p", fs=fs, x=x, t=t, r=r, q=q, v=v)