IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Elaboration de pricer d'options (avec vba) [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 65
    Par défaut Elaboration de pricer d'options (avec vba)
    Bonjour,
    Je sollicite votre aide car dans le but d'une présentation que je dois faire sur les modèles de diffusion avec sauts,
    Pour le moment j'utlise le modèle de black& scholes que d'adapterai aux options européennes et américaines . (Je vous explique un peu le contexte)
    . Par conséquent : j'ai commencé par écrire la macro suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     otpion explicit
     
    Function Call_BS(s As Double, v As Double, r As Double, k As Double, tn As Double, t As Double) As Double
     
    Dim cs  As Double
    Dim dx1 As Double
    Dim dx2 As Double
    Dim nd1 As Double
    Dim nd2 As Double
     
    dx1 = 1 / (v * Sqr(tn - t)) * (Log(s / k) + (r + 0.5 * v * v) * (tn - t))
    dx2 = dx1 - v * Sqr(tn - t)
     
    nd1 = WorksheetFunction.NormSDist(dx1)
    nd2 = WorksheetFunction.NormSDist(dx2)
     
    cs = s * nd1 - Exp(-r * (tn - t)) * nd2 * k
    Call_BS = cs
    End Function
     
    Function Put_BS(s As Double, v As Double, r As Double, k As Double, tn As Double, t As Double) As Double
    Dim ps  As Double
    Dim dx1 As Double
    Dim dx2 As Double
    Dim nd1 As Double
    Dim nd2 As Double
     
    dx1 = 1 / (v * Sqr(tn - t)) * (Log(s / k) + (r + 0.5 * v * v) * (tn - t))
    dx2 = dx1 - v * Sqr(tn - t)
     
    nd1 = WorksheetFunction.NormSDist(-dx1)
    nd2 = WorksheetFunction.NormSDist(-dx2)
     
    ps = -s * nd1 + Exp(-r * (tn - t)) * nd2 * k
    Put_BS = ps
     
    End Function

    mais cela ne fonctionne pas. la macro ne veut pas s’exécuter.
    je me demande où se localise mon erreur. si vous pouviez m'aider. Et aussi vous pouvez me dire comment je peux faire pour qu'il y a ait un graphique de cette sorte sur excel ça m'aiderait énormément .

    Nom : levi2_m.jpg
Affichages : 2635
Taille : 8,9 Ko voici "le type de graphique" que je souhaiterai obtenir avec excel, est -il possible selon vous? si oui comment? merci beaucoup pour votre aide.

  2. #2
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    c'est un graphique sur le prix du call americain? car ce que tu as implementé c'est pour un call europeen qui s'exerce donc a terme ... donc a priori tu trouvera pas pareil....., je vais regarder, mais tu as quoi comme ereur ? car c'est deja un probleme dans le code , pas un probleme de pricer que tu nous expose

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 65
    Par défaut
    Bonjour tamtam64,
    La pièce jointe c'était juste pour savoir s'il était possible d'obtenir ce type de graphique en le programmant via VBA;
    Ensuite, pour le moment je suis en "phase de test" car je ne sais pas trop comment faire pour le pricer, et aussi pour voir si ça fonctionne dans un premier temps
    On ne passe pas par VBA pour le pricer?
    Je suis comme un peu perdue.
    Je vous explique mon objectif ce sera plus simple je pense.
    Dans le cadre du sujet que je traite " qu'est ce qu'un modèle de diffusions avec sauts et quelle est le rapport avec les options ", j'aimerai comparé comment se comporte une option américaine dans le cadre du modèle de Black & Scholes comparé avec le modèle de Levy.

    Mon problème en quelque sorte c'était de faire ce pricer.
    Je pensais que ça se faisait dans un premier temps en VBA. Non? Est ce que je me trompe?

    Je reste à l'écoute de vos suggestions.

    Et merci pour votre aide c'est très aimable de votre part.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Mon dernier professeur de finance, cela doit faire 25 ou 30 ans ne croyait pas en l'analyse technique et nous avait dit de la fuir comme la peste.

    Ceci dit, pour utiliser une Function, tu as deux choix. Soit que tu l'appelles à partir d'une sub :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub JeVeuxUnNombreAuCarré()
         dim AuCarré as double
         dim LaBase as double
         LaBase = 15
         AuCarré = MettreAuCarré(LaBase)
         'ou
         'AuCarré = MettreAuCarré(15)
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function MettreAuCarré(UnNombre as double)
         MettreAuCarré = UnNombre *  UnNombre 
    end function
    Mais tu ne nous dis pas s'il y a une sub dans le prortrait

    Ou, soit que tu l'appelles directement dans une cellule de feuille de calcul.

    Mais, encore là, tu ne nous dis pas si tu l'appelles d'une feuille de calcul.

    Mais, logiquement, dans une feuille de calcul, tu devrais avoir au moins un message d'horreur.

    Si tu as une sub, il doit y avoir quelque chose qui fait que c'est la sub qui ne se lance pas.

  5. #5
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    Bonjour tamtam64,
    La pièce jointe c'était juste pour savoir s'il était possible d'obtenir ce type de graphique en le programmant via VBA;
    La reponse est biensure que oui , tu peux tout à fait le faire, je l'ai moi même fait il y a 1 an , mais c'etait seulement pour BS en Licence.
    Ensuite, pour le moment je suis en "phase de test" car je ne sais pas trop comment faire pour le pricer, et aussi pour voir si ça fonctionne dans un premier temps
    Tu veux pricer une option Euro en BS et une option americaine en BS (Plus compliqué et je ne sais pas si c'est possible), je m'explique: tu ne peux pas savoir quand elle sera executé donc en réalité, moi je sais que je l'ai fait en Methode de monte carlo mais il me semble qu'en BS c'est pas possible à regarder. Mais pour l'euro , si tu veux commancer par ca , il n'y a pas de pb, je peux eventuellement te filer mon code mais c'est plus ou moins le même que le tien .
    On ne passe pas par VBA pour le pricer?
    Tu peux tout a fait faire un pricer en VBA avec une userform ou meme sans , il n'y a pas de probleme , tu as fait ta fonction avec les parametres que tu renseigne et donc tu peux y avoir accés dans excel, et donc determiner le prix de vente d'une option euro en renseignant les parametres avcec les données du marché et les données de la volatillité que tu aura extrait ( ou qu'on t'aura donné)

    Je vous explique mon objectif ce sera plus simple je pense.
    Dans le cadre du sujet que je traite " qu'est ce qu'un modèle de diffusions avec sauts et quelle est le rapport avec les options ", j'aimerai comparé comment se comporte une option américaine dans le cadre du modèle de Black & Scholes comparé avec le modèle de Levy.
    Alors le model de Levy, j'ai entendu parlé mais il faudrait voir .
    Mon problème en quelque sorte c'était de faire ce pricer.
    Donc selon moi deja si tu veux faire ton pricer euro ca ya pas de pb ca marchera av ec un graphique tu peux tout a fait l'obtenir( si tu galere je peux t'aider), pour le reste un peu moins sauf si tu veux evaluer en MC la je peux t'aider mais un bS sur une option americaine ( peut etre que je me trompe mais les restrictions du modele ne s'y adapte pas vraiment), j'avais pricé une option americaine et une option barriere en MC c'est plus adapté aux options dite un peu plus exotiques. Mais bon je suis pas ultra ultra callé sur ca, car je ne le fait plus vraiment.
    Je pensais que ça se faisait dans un premier temps en VBA. Non? Est ce que je me trompe?

    Je reste à l'écoute de vos suggestions.
    Suggestion : si tu comprend le model de levy : donne nous des infos , je pourais peut etre t'aider, car je comprend pas trop l'interet du comparatif euro / americain

    Et merci pour votre aide c'est très aimable de votre part.

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 65
    Par défaut
    Bonjour tamtam64,
    J'aimerai bien que tu me montres le code que tu as fais s'il te plaît? afin que je puisse voir si je peux me débrouiller. Ce serait très aimable de ta part.
    J'essaierai par la même occasion de t'envoyer dans les plus brefs délais les conditions / informations concernant le modèle de Levy notamment.

    Dans un premier temps, la comparaison la plus simple avec le modèle B&S étant celui du modèle de Poisson; je vous mets les critères en pièce jointe qui le décrit.
    Je vous avouerai que je ne sais pas du tout le faire pour le coder VBA, donc si vous pouvez m'aiguiller là dessus, je vous en serai reconnaissante.

    Sachant que je n'ai pas les caractères mathématiques spéciaux pour réécrire la formule du modèle de poisson , il se trouve dans l'extrait du document sur lequel je m'appuie.

    Merci

    Nom : poisson - Copie.jpg
Affichages : 2512
Taille : 159,0 Ko

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 65
    Par défaut
    Bonjour ,

    L'autre partie de mon équation que je devrai prendre en compte est la loi de poisson.
    La raison pour laquelle je dois m'intéresser à ses deux modèles ( soit celui de Levy et de Poisson) est que le mouvement brownien ou de Black & Scholes dans le cas d'un modèle de diffusion avec sauts est composé de : Levy+ Poisson.

    Cela étant dit , pour le programmer en VBA , une aide de votre part serait la bienvenue. Car plus j'essaye, moins cela fonctionne .
    Je commence sérieusement à désespérer.

    Merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Agir sur les options internet avec VBA
    Par lenovo49 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 03/02/2012, 11h35
  2. afficher la barre de menus complète avec vba
    Par jejestyle dans le forum Access
    Réponses: 7
    Dernier message: 07/09/2006, 18h07
  3. Réponses: 5
    Dernier message: 29/05/2006, 14h27
  4. Réponses: 7
    Dernier message: 26/05/2006, 14h14
  5. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo