diff options
Diffstat (limited to 'python/analytics/black.py')
| -rw-r--r-- | python/analytics/black.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/python/analytics/black.py b/python/analytics/black.py index f0c786ba..ba9d8e96 100644 --- a/python/analytics/black.py +++ b/python/analytics/black.py @@ -1,5 +1,6 @@ from math import log, sqrt, erf from numba import jit, float64, boolean +from scipy.stats import norm import math def d1(F, K, sigma, T): @@ -33,3 +34,11 @@ def black(F, K, T, sigma, payer=True): @jit(float64(float64,float64,float64,float64),cache=True,nopython=True) def Nx(F, K, sigma, T): return cnd_erf((log(F/K) - sigma**2 * T /2) / (sigma * sqrt(T))) /2 + +def bachelier(F, K, T, sigma): + """ Bachelier formula for normal dynamics + + need to multiply by discount factor + """ + d1 = (F - K) / ( sigma * sqrt(T)) + return (0.5 * (F - K) * cnd_erf(d1) + sigma * sqrt(T) * norm.pdf(d1)) |
