diff options
Diffstat (limited to 'python/analytics/black.py')
| -rw-r--r-- | python/analytics/black.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/python/analytics/black.py b/python/analytics/black.py new file mode 100644 index 00000000..647c92b2 --- /dev/null +++ b/python/analytics/black.py @@ -0,0 +1,15 @@ +import numpy as np +from scipy.stats import norm + +def d1(F, K, sigma, T): + return (np.log(F / K) + sigma**2 * T / 2) / (sigma * np.sqrt(T)) + +def d2(F, K, sigma, T): + return d1(F, K, sigma, T) - sigma * np.sqrt(T) + +def black(F, K, T, sigma, option_type = "payer"): + chi = 1 if option_type == "payer" else -1 + if option_type == "payer": + return F * norm.cdf(d1(F, K, sigma, T)) - K * norm.cdf(d2(F, K, sigma, T)) + else: + return K * norm.cdf(- d2(F, K, sigma, T)) - F * norm.cdf(- d1(F, K, sigma, T)) |
