Option Pricing - Black Scholes en Python
Publié le 17 Juillet 2019 par Bachelier
La programmation du modèle Black Scholes en Python
Il est très facile et très utile de savoir programmer le modèle de Black Scholes sous Python.
En utilisant scipy et numpy, on obtient facilement :
import scipy
from scipy import stats
import numpy as np
cdf = stats.norm(0, 1).cdf
def d1(S, K, T, r, q, σ):
return (np.log(S / K) + ((r-q) + 0.5 * σ ** 2) * T) / (σ * np.sqrt(T))
def d2(S, K, T, r,q, σ):
return d1(S, K, T, r,q, σ) - σ * np.sqrt(T)
def call(S, K, T, r,q, σ):
return S *np.exp(-q*T)* cdf(d1(S, K, T, r,q, σ)) - K * np.exp(-r * T) * cdf(d2(S, K, T, r,q, σ))
def put(S, K, T, r,q, σ):
return np.exp(-r * T) * K * cdf(-d2(S, K, T, r,q, σ)) - S *np.exp(-q*T)* cdf(-d1(S, K, T, r,q, σ))
Par exemple, pour un sous-jacent qui vaut S = 100, un prix d'exercice K = 100, une maturité T = 1 an, un taux sans risque r = 5%, un taux de dividende de 0% , et une volatilité σ = 30% on obtient :
S,K,T,r,q,σ= 100, 100, 1, 0.05, 0.0, 0.3
C = call(S, K, T, r, q, σ)
P = put(S, K, T, r, q, σ)
print(C)
print(P)
Le résultat est
14.231254785985819
9.354197236057232
La suite : Option Pricing - Black Scholes En C++
Précédent : Option Pricing - Modele Trinomial En Python Bachelier
|
|