ProRealTime
On y parle Livres et Outils de Trading, Station de Trading, des livres lus sur le trading, de notre vision du trader et de son métier
Répondre • Page 1 sur 1

Cotation des options sur IG Market

par maroxe » 31 déc. 2014 22:41

Bonjour,

J'ai découvert aujoud'hui que IG Market permet de trader les options. Voici un exemple des call et put proposés à échéance journalières aujourd'hui à midi:
cotation (Mobile).png
cotation (Mobile).png (78.2 Kio) Vu 1222 fois
A l'aide d'un programme python j'essaye de calculer la volatilité implicite utilisé par IG pour faire son calcul, que je trace en fonction du strike:
vol (Mobile).png
vol (Mobile).png (13.67 Kio) Vu 1222 fois
Je n'arrive pas à expliquer la forme de cette courbe, tout indice est le bienvenu.
J'utilise le modèle de BlackScholes classique, et voici les paramètres du modèle:
  • taux d'interêt nul (ça ne change pas grand chose pour une période aussi courte, si?)
  • temps avant l'échéance égale à 1 / (365*2) (une demi journée)
  • cours de l'actif égale à S0=12125.6
Cordialement

Re: Cotation des options sur IG Market

par adibool » 01 janv. 2015 09:09

C'est pour cela qu'on a tant de mal à pricer les options ig . Le "smile" de volatilité n'en ai pas vraiment un .

Quel programme Python utilises tu ? Home made ou internet?

Ca serait intéressant de reporter le graphique a différent moment pour voir si le "smile" change de forme.

Re: Cotation des options sur IG Market

par Bella Swan » 01 janv. 2015 14:22

maroxe a écrit :Je n'arrive pas à expliquer la forme de cette courbe, tout indice est le bienvenu.
J'utilise le modèle de BlackScholes classique,
Les travaux de Peter Tankov ?

Re: Cotation des options sur IG Market

par maroxe » 01 janv. 2015 17:58

adibool a écrit :C'est pour cela qu'on a tant de mal à pricer les options IG . Le "smile" de volatilité n'en ai pas vraiment un .

Quel programme Python utilises tu ? Home made ou internet?

Ca serait intéressant de reporter le graphique a différent moment pour voir si le "smile" change de forme.
J'utlise un petit scipt fait maison:

Code : #

import numpy as np
# Strike
K = np.ar ([12020, 12040, 12060, 12080, 12100, 12120, 12130, 12140, 12150, 12160, 12170, 12180, 12190, 12200, 12220, 12240, 12260, 12280, 12300])

# Pris du call correspondant (bid+ask / 2)
p_call = np.ar ([105.6, 85.6, 65.7, 46.1, 28.2, 13.9, 8.7, 5.2, 19.1, 26.7, 35.3, 44.5, 54.1, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5] )


S0 = 12125.6 # cours actuel
r = 0.0 # taux d'interet
t = 1./365 # temps avant l'echeance
div = 0 # dividende


Vol = [] # Vol implicite
# On teste toutes les valeurs de 0 a 100% avec un pas de 1
# On garde celle qui minimise l'ecart entre le prix reel et le prix de IG
for i, c in enumerate(p_call):
    X = np.arange(0., 1., 0.01)
    Y = [  abs(call(S0, K[i], v, r, t, div) - c) for v in X]
    Vol += [np.argmin(Y)] 

# tracer
import matplotlib.pyplot as plt    
plt.plot(K, Vol, 'ro-')
plt.show()
La fonction call est presente dans le fichier blackscholes.py que j'ai récupérer sur internet (la flemme de retaper la formule)

Code : #

import scipy
import math
from scipy import stats

""" Price an option using the Black-Scholes model.
s: initial stock price
k: strike price
t: expiration time
v: volatility
r: risk-free rate
div: dividend
cp: +1/-1 for call/put
"""

d1 = lambda s,k,v,r,t,div : (scipy.log(s/k)+(r-div+0.5*math.pow(v,2))*t)/(v*scipy.sqrt(t))
d2 = lambda s,k,v,r,t,div : d1(s,k,v,r,t,div) - v*scipy.sqrt(t)
call = lambda s,k,v,r,t,div : (s*math.exp(-div*t)*stats.norm.cdf(d1(s,k,v,r,t,div))) - (k*scipy.exp(-r*t)*stats.norm.cdf(d2(s,k,v,r,t,div)))
Je vais essayer de récupérer les cotes pour d'autres périodes pour voir si ça change. (Ceci dit, vous connaisez une méthode pour récupérer les prix de IG sous forme texte sans avoir a les rentrer un à un comme je l'ai fait ici? )
Bella Swan a écrit :
maroxe a écrit :Je n'arrive pas à expliquer la forme de cette courbe, tout indice est le bienvenu.
J'utilise le modèle de BlackScholes classique,
Les travaux de Peter Tankov ?
C'est possible, c'était mon prof de TD, mais il a jamais dit que le modèle était basé sur ses travaux.
Ceci dit, le modèle est simple pour les options vanilles comme ici, comme les options call européennes ont le même prix que les américaines, le prix est donné par:
Image

Re: Cotation des options sur IG Market

par ladefense92800 » 01 janv. 2015 18:40

c est rogue le specialiste des options ici .

Re: Cotation des options sur IG Market

par Bella Swan » 01 janv. 2015 18:44

maroxe a écrit :C'est possible, c'était mon prof de TD, mais il a jamais dit que le modèle était basé sur ses travaux
Je ne disais pas ça évidemment !!! Je sous-entendais que Tankov et le labo de probas de Jussieu avaient avancé sur ce problème. Peut-être y trouverais-tu des pistes nouvelles ?

Re: Cotation des options sur IG Market

par adibool » 01 janv. 2015 19:00

maroxe a écrit :
adibool a écrit :C'est pour cela qu'on a tant de mal à pricer les options IG . Le "smile" de volatilité n'en ai pas vraiment un .

Quel programme Python utilises tu ? Home made ou internet?

Ca serait intéressant de reporter le graphique a différent moment pour voir si le "smile" change de forme.
J'utlise un petit scipt fait maison:

Code : #

import numpy as np
# Strike
K = np.ar ([12020, 12040, 12060, 12080, 12100, 12120, 12130, 12140, 12150, 12160, 12170, 12180, 12190, 12200, 12220, 12240, 12260, 12280, 12300])

# Pris du call correspondant (bid+ask / 2)
p_call = np.ar ([105.6, 85.6, 65.7, 46.1, 28.2, 13.9, 8.7, 5.2, 19.1, 26.7, 35.3, 44.5, 54.1, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5] )


S0 = 12125.6 # cours actuel
r = 0.0 # taux d'interet
t = 1./365 # temps avant l'echeance
div = 0 # dividende


Vol = [] # Vol implicite
# On teste toutes les valeurs de 0 a 100% avec un pas de 1
# On garde celle qui minimise l'ecart entre le prix reel et le prix de IG
for i, c in enumerate(p_call):
    X = np.arange(0., 1., 0.01)
    Y = [  abs(call(S0, K[i], v, r, t, div) - c) for v in X]
    Vol += [np.argmin(Y)] 

# tracer
import matplotlib.pyplot as plt    
plt.plot(K, Vol, 'ro-')
plt.show()
La fonction call est presente dans le fichier blackscholes.py que j'ai récupérer sur internet (la flemme de retaper la formule)

Code : #

import scipy
import math
from scipy import stats

""" Price an option using the Black-Scholes model.
s: initial stock price
k: strike price
t: expiration time
v: volatility
r: risk-free rate
div: dividend
cp: +1/-1 for call/put
"""

d1 = lambda s,k,v,r,t,div : (scipy.log(s/k)+(r-div+0.5*math.pow(v,2))*t)/(v*scipy.sqrt(t))
d2 = lambda s,k,v,r,t,div : d1(s,k,v,r,t,div) - v*scipy.sqrt(t)
call = lambda s,k,v,r,t,div : (s*math.exp(-div*t)*stats.norm.cdf(d1(s,k,v,r,t,div))) - (k*scipy.exp(-r*t)*stats.norm.cdf(d2(s,k,v,r,t,div)))
Je vais essayer de récupérer les cotes pour d'autres périodes pour voir si ça change. (Ceci dit, vous connaisez une méthode pour récupérer les prix de IG sous forme texte sans avoir a les rentrer un à un comme je l'ai fait ici? )
Bella Swan a écrit :
maroxe a écrit :Je n'arrive pas à expliquer la forme de cette courbe, tout indice est le bienvenu.
J'utilise le modèle de BlackScholes classique,
Les travaux de Peter Tankov ?
C'est possible, c'était mon prof de TD, mais il a jamais dit que le modèle était basé sur ses travaux.
Ceci dit, le modèle est simple pour les options vanilles comme ici, comme les options call européennes ont le même prix que les américaines, le prix est donné par:
Image

Merci pour le code , j'ai à peu près la meme chose en matlab .

Pour récupérer les données automatiquement j'aurais bien fait du web scrapping mais le HTML de la page ne donne rien.

Donc je pense que le seul moyen à ma connaissance est d'utiliser leur API mais il y a des problème de compatibilité entre les 64 et 32 bits + des bugs donc un peu ennuyeux à gérer.

Je pense qu'en monitorant le smile d'IG , je suis sur qu'il y a des anomalies exploitables :musique:

Re: Cotation des options sur IG Market

par maroxe » 01 janv. 2015 22:25

Bella Swan a écrit :
maroxe a écrit :C'est possible, c'était mon prof de TD, mais il a jamais dit que le modèle était basé sur ses travaux
Je ne disais pas ça évidemment !!! Je sous-entendais que Tankov et le labo de probas de Jussieu avaient avancé sur ce problème. Peut-être y trouverais-tu des pistes nouvelles ?
Mais j'étais tout à fait sérieux, il était vraiment mon prof de TD ;) D'ailleurs, j'essaye de retrouver ce que j'ai appris dans son cours dans la vrai vie sans grand succès pour l'instant :mrgreen:


@adibool, Je n'ai pas moyen de tester l'API, il faut un compte en réel pour ça, non?
Sinon, connaissez vous d'autres sites (gratuits de préférence) qui fournissent les prix de marché des options?

Je vais continuer à chercher de mon côté, et je vous tiens au courant. Ceci dit, ça m'étonnerait qu'il existe une opportunité d'arbitrage avec IG, rien que les frais de transaction sont prohibitifs, mais restons optimisite. ^^

Re: Cotation des options sur IG Market

par adibool » 01 janv. 2015 22:55

oui il faut un compte réel.

Pour le prix des options celles fournit par ig ne cotent pas pareil que les autres c'est pour ca que c'est spécial à gérer sur ig.

Quant à l'arbitrage je me dis pourquoi pas , créer un programme qui détecte les anomalies et qui joue sur la correction! je pense que ces "anomalies" n'arrivent pas souvent mais ca vaut la peine d'essayer à mon humble avis

Re: Cotation des options sur IG Market

par maroxe » 01 janv. 2015 23:22

J'ai utilisé chrome (F12 pour accéder aux outils dev) pour télécharger la page html que j'ai ensuite parsé avec python (d'une façon dégoutant, je vous épargne le code) , cette fois l'échéance est pour le 17 juin, voici ce que j'obtient (call et put je trouve pareil) :
call_17_juin (Mobile).png
call_17_juin (Mobile).png (12.55 Kio) Vu 1222 fois
C'est déjà plus régulier. Le fait que la courbe soit constant par morceau est peut une anomalie? L

Re: Cotation des options sur IG Market

par maroxe » 02 janv. 2015 00:11

Et le "smile" (ce n'est pas vraiment un, mais passons) pour les call du cac40 a echeance 15 Janvier:
caccall (Mobile).png
caccall (Mobile).png (5.7 Kio) Vu 834 fois

Re: Cotation des options sur IG Market

par adibool » 02 janv. 2015 00:19

Oui la forme est déja plus normal , avec des une volatilité décroissante en fonction du strike. un skew quoi

Après que ca soit constant par morceaux oui c'est une "anomalie", après il faut surtout voir si le smile se corrige au fil du temps ou non.

EDIT : pour le cac c'est clean du coup.

Enfaite en pratique le phénomène observé est un skew (courbe décroissante etc cf google), avec une volatilité qui remonte pour les strike lointain c'est pour cela qu'on parle de "smile"

Re: Cotation des options sur IG Market

par maroxe » 02 janv. 2015 00:31

- adibool, en effet, j'ai édité en rajoutant les strikes plus grand que le cours actuel, c'est vrai qu'on retrouve la forme habituelle.

EDIT:
J'ai fait de même pour les options FX trimestriel.

La vol des call
eurusdcall (Mobile).png
eurusdcall (Mobile).png (14.48 Kio) Vu 832 fois
La vol de puts
eurusdput (Mobile).png
eurusdput (Mobile).png (14.39 Kio) Vu 832 fois

Re: Cotation des options sur IG Market

par adibool » 02 janv. 2015 00:39

maroxe a écrit :- adibool, en effet, j'ai édité en rajoutant les strikes plus grand que le cours actuel, c'est vrai qu'on retrouve la forme habituelle.
Oui le smile est bien clean. maintenant faudrait voir comment ce smile se "transforme" lorsqu'il y a un peu plus de volatilité ou quand il n'y en a pas du tout . C'est interessant à observer / exploiter sait on jamais.

Re: Cotation des options sur IG Market

par adibool » 02 janv. 2015 00:48

Il faut aussi savoir que le smile admet un minimum ATM ( à la monnaie)

Pour ton dernier graph tu vois que ton minimum n'est pas à la monnaie.

Donc peut etre que la volatilité des put eur/usd (c'est bien ca ?) proche de la monnaie ont une volatilité anormalement haute ce qui revient à shorter un put à la monnaie ou proche , pour profiter (ou pas) d'une correction du marché. et donc profiter de la baisse de la vol qui va faire baisser le prix du put.

ou sinon les put avec strike lointain (genre 14000 ) on une vol anormalement "basse" , => acheter ces put

=> si le smile réapparait => arbitrage .

Après encore faut il qu'il réapparaisse assez vite pour ne pas se faire bouffer par le théta et par le spread .

EDIT : Encore qqc de bizarre sur ton premier graph ton minimum est en 13500 alors qu'on est à 12090 ...

EDIT :
1.jpg
1.jpg (24.93 Kio) Vu 825 fois
Et bizarement tous les puts ne sont pas affichés
2.jpg
2.jpg (10.6 Kio) Vu 825 fois
pareil pour mes put proche de la monnaie . On passe 11200 à 12500 ah ok :musique:

Re: Cotation des options sur IG Market

par Chino » 02 janv. 2015 15:17

Salut maroxe et adibool,

Je m'intéresse aussi aux options CAC40 et j'ai trouvé la cotation sur le site d'euronext. Avec un code vba + Excel je récupère automatiquement les cotations et calcul la vol implicite avec 15min de différé. (cf fil de discussion sur les options, j'avais mis en lien mon premier fichier excel de récupération)

Peut être tu peux voir pour aller chercher tes cotations sur ce site ?

Voici la vol calculé à environ 15h :
Vol implicite
Vol implicite

Sujets similaires
options européennes et options américaines
par Diabolo » 18 févr. 2017 16:55 (1 Réponses)
Trader les Options et Options sur Futures
Fichier(s) joint(s) par Buccaneer » 21 nov. 2021 15:03 (552 Réponses)
differences de cotation IG cours du Brent
par ventura » 25 oct. 2012 18:19 (2 Réponses)
Cotation des droits
par Amarantine » 26 nov. 2012 17:30 (3 Réponses)
Cotation Forex IG fin année 2012
par Les3BB » 29 déc. 2012 17:51 (3 Réponses)
Problème cotation CAC40 du 13/01/2013
par Benoist Rousseau » 11 janv. 2013 14:51 (6 Réponses)
Différences de cotation ...
par maliko » 15 févr. 2013 08:52 (5 Réponses)
Gaps et cotation en continu
par falex » 02 mars 2013 11:31 (10 Réponses)
Cotation du CAC 40
par Rogue » 16 mai 2013 11:40 (5 Réponses)