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 :

Aide macro vba pour calcul du prix d'une option


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Aide macro vba pour calcul du prix d'une option
    Bonjour,

    je dois réaliser une macro excel qui permet de calculer le prix d'une option call européenne à partir de plusieurs paramètres d'entrée (K, T, S, R , N, sigma) qui doivent pouvoir être entrés manuellement (apparition d'une fenetre qui demande la valeur pour chaque paramètre).

    J'ai déjà implémenté la fonction qui retourne le prix, mais je ne sais pas comment mettre le reste en forme dans l'éditeur.

    Merci d'avance pour vos conseils.

    Fonction:

    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
    38
    39
    Function CallBinomial(K As Double, T As Integer, S As Double, R As Double, N As Integer, sigma As Double)
     
    Dim u As Variant, d As Variant, q As Variant, esc As Variant, dt As Variant
     
    dt = T / N
    u = Exp(sigma * Sqrt(dt))
    d = Exp(-sigma * Sqrt(dt))
     
    Dim i As Integer
    Dim j As Integer
     
    Dim Price() As Variant
    ReDim Price(N)
     
    Dim Cash() As Variant
    ReDim Cash(N)
     
    q = (Exp(R * dt) - d) / (u - d)
    esc = Exp(-R * dt)
     
    Price(0) = S * (d ^ N)
     
    For j = 1 To N
        Price(j) = Price(j - 1) * (u - d)
    Next j
     
    For j = 0 To N
        Cash(j) = Application.MaxChange(0, Price(j) - K)
    Next j
     
    For i = N - 1 To 0 Step -1
    For j = 0 To i
        Cash(j) = esc * (q * Cash(j + 1) + (1 - q) * Cash(j))
    Next j
    Next i
     
    CallBinomial = Cash(0)
     
    End Function

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    qu'entends-tu exwactement par :
    mais je ne sais pas comment mettre le reste en forme dans l'éditeur.
    Au passage, en attendant : une fonction retourne une valeur.
    Ta fonction n'est pas typée (il t'est vivement conseillé de le faire)

    Typer en variant tes variables u, d, q, escx , dt et tes 2 tableaux (Cash et Price) n'est pas une excellente idée... donne-leur le type précis adéquat

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Il faut que je puisse saisir les parametres d'entrée K, T, S, R , N, sigma (par l'affichage d'une fenetre demandant les valeurs de chaque parametre) pour calculer le prix à l'aide de la fonction précédente. Il faut aussi réaliser une procédure d'affichage du résultat (prix) je suppose?

    Merci

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Ah... c'est là, ta difficulté ?
    En somme (pour résumer) : tout faire à ta place : l'interface et le code (au demeurant mille fois moins compliqué que celui de la fonction que tu nous dit avoir écrite !)
    Bon :
    commence par faire ton interface !

    commence par décider si tu te sers d'une feuille de calcul ou d'un userform...

    commence, quoi !

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je débute en VBA. Je ne demande pas à ce que l'on me fasse le code ou l'interface... mais plutot de l'aide concernant les fonctions VBA que je dois utiliser pour réaliser la procédure d'affichage, ou par exemple comment récupérer les paramètres d'entrée de la fonction à partir d'une feuille de calcul (les box seront peut etre trop compliquées pour l'instant).

    PS: écrire cette fonction n'a pas été difficile puisque j'ai déjà programmé dans d'autres languages, et que dans ce cas il suffisait d'appliquer une formule du cours qui renvoie le prix. Ce sont les fonctions propres à vba que je ne maîtrise absolument pas.

    Cordialement

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Désolé, mais ta question reviendrait pratiquement à résoudre d'abord le problème suivant (exercice à faire, donc) :

    "- afficher une fenêtre contenant un contrôle où je pourrais saisir "bonjour"
    puis
    - lire ce que j'ai écrit dans ce contrôle et l'afficher dans un autre contrôle "

    C'est presque du "afficher "Hello World" " !!!
    Commence par cet exercice élémentaire (le reste viendra alors tout seul)
    Il va falloir, de toute manière, que tu te décides à choisir entre feuille de calcul et userform !!!... et choisir ton contrôle de saisie et ton contrôle d'affichage (et ce choix ne fait appel à aucun code, ... vraiment vraiment ... !!!)

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    ok merci. Je vais essayer de voir ça plus en détail.

Discussions similaires

  1. [XL-2007] Macro VBA pour imprimer plusieurs onglets sur une feuille recto verso
    Par oekoniko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/03/2014, 15h24
  2. Aide pour Creer Macro VBA pour CSV et google calendar
    Par mister_audioman dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/01/2012, 01h59
  3. Macro VBA pour mettre colonne en ligne avec cellule fusionnée
    Par dany13 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/01/2008, 06h09
  4. Code VBA pour calcul compte client > ou < à 100- Urgent
    Par mabeatrice@yahoo.fr dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/03/2007, 16h39
  5. [VBA-E] Macro VBA pour personaliser mon .doc depuis mon .xls
    Par korntex5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2006, 16h01

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