logo strategies-options Accès Site
 
panier
"Gérer, c'est prévoir"
Le site consacré aux stratégies de trading incorporant des produits dérivés, en particulier des options.
Accueil  >  Modèles d'évaluation d'options  >  Option Pricing - Modele trinomial en Python 

Option Pricing - Modele trinomial en Python

Publié le 10 Juillet 2019 par Duchêne
icone rss


La programmation du modèle trinomial en Python est très facile

Python est devenu en quelques années le langage de programmation indispensable à la finance de marché.
Ces liens avec Excel par exemple en ont fait un outil incontournable pour les personnes qui utilisent des tableurs pour valoriser des produits dérivés comme les options.


Comme nous l'avions vu précédemment, l'utilisation du modèle trinomial (et plus généralement de modèle type "différences finies") est naturelle pour qui aura besoin d'évaluer des options de type européen, à l'instar de Black & Scholes, mais aussi de type américain, exerçable à tout moment.

Vraiment très facile de programmer en Python le modèle trinomial.




import math

def Trinomialgeneral(S0, K, r, sigma, q, T,isus,iscall):

dt = 1/10000
N = round(T/dt)
M = round(5*(N**.5))
mu = r-q-.5*sigma*sigma


smax = 2*abs(mu)*(dt**.5)
smax = max(sigma * (2**.5), smax)
if smax == 0:
return -9999

C = [None] * (2*M)
pC = [None] * (2*M)
S = [None] * (2*M)

p = 0.5 * sigma * sigma / (smax * smax)
pu = p + 0.5 * mu * (dt**.5) / smax
pm = 1 - 2*p
pd = p - 0.5 * mu * (dt**.5) / smax

D = 1/(1+r*dt)
E = math.exp(smax * (dt**.5))
S[0] = S0 * math.exp(-M * smax * dt**.5)
for i in range(1, 2*M):
S[i] = S[i-1]*E


for j in range(2*M):
C[j] = max(iscall*(S[j] - K), 0)


for t in range(N):
for j in range(1, 2*M-1):
pC[j] = pu * C[j+1] + pm * C[j] + pd * C[j-1]
pC[j] = pC[j] * D


for i in range(1,2*M-1):
C[i] = max(isus*(iscall*(S[i]-K)), pC[i])

return C[M]



Par exemple, pour un sous-jacent S =100, un prix d'exercice K = 100, un taux d'intérêt (continûment composé) r = 5%, une volatilité sigma = 30%, un taux de dividende q = 0%, une maturité T = 1 an, une option de type Américain isus = 1 et une option de type put iscall = -1, on obtient :
V=Trinomialgeneral(100, 100, 0.05, 0.3, 0.0, 1,1,-1)
print(V)

le résultat est 9.869963659320902


Pour un sous-jacent S =100, un prix d'exercice K = 100, un taux d'intérêt (continûment composé) r = 5%, une volatilité sigma = 30%, un taux de dividende q = 0%, une maturité T = 1 an, une option de type Européen isus = 0 et une option de type CALL iscall = 1, on obtient :
V=Trinomialgeneral(100, 100, 0.05, 0.3, 0.0, 1,0,1)
print(V)

le résultat est 14.23110652674761




NB : dans l'exemple ci-dessus, on a pris 10000 périodes (dt = 1 / 10000 ), on peut bien sûr prendre moins de périodes et de ce fait accélérer les calculs au prix d'une moins grande précision.

A vous de jouer :-)).

La suite : Option Pricing - Black Scholes En Python
Précédent : Le Modèle Trinomial : VBA Code

Duchêne
D'autres Fiches
Call-Put Symétrie #3
- Relations entre Sensibilités des Options -
Call-Put Symétrie #3
Les relations entre calls et puts permettent d'anticiper leurs valeurs à partir de simples cotations
Le straddle : Le Vega υ
- Stratégies Options Fondamentales -
Le straddle : Le Vega υ
Le straddle est une stratégie dont la finalité est étroitement liée à la volatilité.
Bilan Strategie SOIC sur le CAC40 DEC10
- Les Stratégies Options sur Actions et Indices -
Bilan Strategie SOIC sur le CAC40 DEC10
Résumé et bilan de la stratégie de SOIC DEC10 sur le CAC40
Iron Condor : une première approche
- Stratégies Options Avancées -
Iron Condor : une première approche
L'Iron Condor est l'une des stratégies options les plus prisées par les traders options. Son utilisation est aussi largement répandue parmi les investisseurs individuels.
Strategie Option cac40 - Suivi 5
- Les Stratégies Options sur Actions et Indices -
Strategie Option cac40 - Suivi 5
Ça montouille...sans conviction...mais ça montouille
Les Options Binaires pour les Nuls
- Warrants, Turbos, Options Binaires -
Les Options Binaires pour les Nuls
Les options binaires expliquées aux débutants. Apprendre les options binaires