Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1578 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Problème de calcul d'une maturité pour un pricer d'option

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Problème de calcul d'une maturité pour un pricer d'option

n°1732744
ilan41
Posté le 16-05-2008 à 15:02:40  profilanswer
 

Bonjour à tous,
 
 
Je suis en train de travailler sur un pricer d'option en finance. J'ai trouvé toutes les modalités de codages dans application financière sur VBA.
Il s'avère que j'ai un problème à touver le codage de la maturité:
 
Mon pricer est sous userform. J'ai crée une zone de liste modifiable pour le n°de jour ainsi que pour le mois. Pour les années c'est une toupie.
 
Je voudrais pouvoir trouver le codage afin  de calculer la distance en fractions d'années séparant la date d'aujourd'hui de la date d'échéance saisie par l'utilisateur dans la userform.
 
Voici le codage que je conseil le bouquin le problème c'est que cela ne marche pas:
 
Public Function Maturité()
 
DateTexte = CStr(Jour.Value) & "/" & Mois.Value & "/" & CStr(Contenu_Année.Value)
 
Maturité = (CDate(DateTexte) - Date) / 365
 
End Function
 
Le problème en plus c'est que cette durée intervient dans une autre fonction sous la lettre "T" et non "Maturité". Je pensais donc qu'il faut la remplcer par  la lettre "T()".
 
Voyez vous une erreur de programmation dans ce code????
 
 
Merci à tous de votre aide.
 
 
 
 
 
 

mood
Publicité
Posté le 16-05-2008 à 15:02:40  profilanswer
 

n°1732839
babasss
Posté le 16-05-2008 à 17:05:07  profilanswer
 

ilan41 a écrit :

le problème c'est que cela ne marche pas


 
C'est à dire ?


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1732925
ilan41
Posté le 16-05-2008 à 21:26:30  profilanswer
 

Hello,
 
C'est à dire que lorsque j'appuie sur le bouton de mon pricer avec le code suivant:
 
Private Sub Pricer1_Click()
If TypeCall.Value = True Then
TypeOption = "Call"
Else
TypeOption = "Put"
End If
S = Val(Cours.Value)
K = Val(Strike.Value)
r = Val(Rf.Value)
sigma = Val(Volat.Value)
Prix1.Value = Round(Pricers.BS_STD(TypeOption, S, K, r, sigma, Maturité()), 4)
End Sub
 
Un message me marquant Erreur avec débogage...
et me mets en jaune cette ligne
 
DateTexte = CStr(Jour.Value) & "/" & Mois.Value & "/" & CStr(Contenu_Année.Value)
 
 
 
qui provient de la fonction pour calculer la maturité suivante:
 
Public Function T()
 
DateTexte = CStr(Jour.Value) & "/" & Mois.Value & "/" & CStr(Contenu_Année.Value)
 
T = (CDate(DateTexte) - Date) / 365
 
End Function
 
Merci  de ton aide

n°1732927
ilan41
Posté le 16-05-2008 à 21:27:40  profilanswer
 

Sais tu d ou viens ce problème?? je suis pas un crack du VBA... Merci bcp

n°1732931
ilan41
Posté le 16-05-2008 à 21:38:52  profilanswer
 

Desole c'est ca la Fonction qui deconne...
 
Public Function Maturité()
 
DateTexte = CStr(Jour.Value) & "/" & Mois.Value & "/" & CStr(Contenu_Année.Value)
 
Maturité = (CDate(DateTexte) - Date) / 365
 
End Function

n°1733583
Xxxaaavvv
Posté le 19-05-2008 à 10:46:07  profilanswer
 

au moment ou ton programe met en jaune la ligne suivante :

Code :
  1. DateTexte = CStr(Jour.Value) & "/" & Mois.Value & "/" & CStr(Contenu_Année.Value)


 
peut tu balader ton curseur de souris sur les valeurs de Jour.Value, Mois.Value , puis Contenu_Année.Value ?
 
bref ou est ce que tu renseigne cette date necessaire pour le calcul de maturité ?
dans ton userform ?
si ton userform s'appele par exemple "frmParametre" peux tu tester rajouter son nom devant les valeurs :

Code :
  1. DateTexte = CStr(frmParametre.Jour.Value) & "/" & frmParametre.Mois.Value & "/" & CStr(frmParametre.Contenu_Année.Value)


 
@+


Message édité par Xxxaaavvv le 20-05-2008 à 15:42:55
n°1734574
ilan41
Posté le 20-05-2008 à 15:15:34  profilanswer
 

Salut Xav,
 
 
Merci bcp pour ton aide ca marche... Le pire c ke ce code faux etait dans un bouquin...
 
Mais bon c cool je te remercie infiniment...
 
A plus

n°1811459
jay18
Posté le 13-11-2008 à 10:30:20  profilanswer
 

Salut à tous,
 
J'ai acheté le même Livre qu'Ilan et je suis également bloqué au même niveau, sur la fonction utilisant CDate.
 
J'ai suivi les conseils de Xav mais le Debogage m'affiche cette fois ci une erreur sur la derniere ligne de la fonction.
 
Je reprends la fonction donnée par Ilan:
 
Public Function Maturité()  
 
DateTexte = CStr(UserForm.Jour.Value) & "/" & UserForm.Mois.Value & "/" & CStr(UserForm.Contenu_Année.Value)  
 
Maturité = (CDate(DateTexte) - Date) / 365  
 
End Function
 
La derniere ligne semble poser probleme: en cliquant sur CDate il m'affiche incompatibilité de type (erreur 13)
 
Voyez vous où pourrait se situer l'erreur??
 
Merci beaucoup de votre aide

n°1811594
olivthill
Posté le 13-11-2008 à 14:09:13  profilanswer
 

CDate() dépend du format régional des dates défini pour tout Windows. Parfois, il faut mettre le jour avant le mois, et parfois l'inverse, et peut-être aussi que parfois l'année devrait avoir 2 chiffres et parfois 4 chiffres.

n°1811628
jay18
Posté le 13-11-2008 à 15:03:57  profilanswer
 

Merci Olivthill de te pencher sur mon problème. Ca marche impecc!
 
Le poste que j'utilisais affiche les dates US mais il y avait un second probleme. J'avais attribué au combobox Mois les valeur Janvier...Décembre et je ne sais pas pourquoi mais ce n'est pas reconnu par la fonction. J'ai donc changé les par les nombres de 1 à 12.
 
Encore un grand merci :)

mood
Publicité
Posté le 13-11-2008 à 15:03:57  profilanswer
 

n°2183503
aminehero
Posté le 02-04-2013 à 02:46:28  profilanswer
 

bonjour, jai besoin de votre aides je suis entrain de chercher comment calculer la prime une option exotique de type Auto-call définie sur l'indice CAC40 dont la maturité ainsi que le payoff dépendent de la réalisation de certains événements ( un tableau de condition quoi) il est demander de calculer la prime de cette option en 1- Calculez la prime de l'option avec les différentes approches suivantes :  
a) Utilisation du générateur de variable gaussien d'Excel
b) Utilisation du générateur de Box muller  
c) Utilisation de b) + utilisation technique de réduction de variance par l'approche antithétique  
il faut programmer sur VBA
pouvez vous m'aider  

n°2183710
Xxxaaavvv
Posté le 02-04-2013 à 21:31:32  profilanswer
 

Non vu que la seule chose que j'ai compris de ton post c'est "VBA".

n°2183752
Fsalenko
Posté le 03-04-2013 à 09:32:58  profilanswer
 

Ouh le bel ennonce d'exercice :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Problème de calcul d'une maturité pour un pricer d'option

 

Sujets relatifs
[EXCEL/VBA] Totaux dynamiquesProbleme import csv
Probleme creation actionURL (portlet) avec XSLprobleme netbeans
C# probleme pour trouver mon System.IO.FileSQL Loader - problème d'encodage des caractères accentués
Problème javascript et css sur texte défilantProblème de droit copie d'un serveur à un autre
Probléme de téléchargement d'une archive probleme défilement image
Plus de sujets relatifs à : [VBA] Problème de calcul d'une maturité pour un pricer d'option


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR