Bonsoir,
j'ai essayé d'établir un pricer en codage vba (il s'agit du tiers de mon pricer je ne l'ia pas encore terminé), mais je ne comprends pas pourquoi il ne fonctionne pas. pouvez vous m'aider à résoudre ce problème s'il vous plaît?
Merci
Version imprimable
Bonsoir,
j'ai essayé d'établir un pricer en codage vba (il s'agit du tiers de mon pricer je ne l'ia pas encore terminé), mais je ne comprends pas pourquoi il ne fonctionne pas. pouvez vous m'aider à résoudre ce problème s'il vous plaît?
Merci
bonsoir,
utilise les balises de code ( bouton # , [code] [/code])
pour poster la partie de code qui te cause problème n'oublie pas de nous dire ce que devrais faire ton code et ce qu'il fait ..
Bonjour,
Veuillez m'en excuser. Je pensais que mon fichier excel était bien rattaché à mon message.
voici le code+ le fichier excel pour peut être mieux visualiser
Mon problème est que j'essaie d'établir un pricer dans le cadre d'un modèle de diffusion avec saut.Code:
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
40
41
42 Option Explicit Sub macro1() 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 End Sub Sub macro2() 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 End Sub
J'ai utilisé la formule de Black and scoles dans un premier temps, mais mon pricer ne fonctionne pas.
Je ne sais pas s'il manque des éléments au niveau d'excel, ou en VBA. sachant que je dois présenter ce fichier très prochainement . cela m'inquiète énormément car je n'arrive pas à comprendre ce problème.
Merci pour votre aide
Bien cordialemnt
Bonjour.
Tu trouveras des exemples du "Black-Scholes" sur cette page.
Bonjour,
Tu ne peux pas avoir un Function à l'intérieur d'un Sub.
ericCode:
1
2
3
4
5
6
7 sub machin() '... End Sub Function truc () '... End Function
Bonjour,
Il y était hier, mais quelqu'un en autorité l'a zigouillé. (Et j'en suis content, parce que les fichiers-joints avec la première question sont une vraie peste.)
Pour savoir pourquoi, va voir le texte Pierre Fauconnier.
Bonjour Éric,
Je lui ai déjà donné la même explication dans le vide, ou dans le beurre, c'est au goût, dans son premier fil sur le me même sujet. Pourtant, c'est depuis les tous du débuts du BASIC (sur un "mainframe" et un terminal) qu'une FUNCTION doit retourner une valeur, et qu'une valeur doit être associée à une variable.Citation:
Tu ne peux pas avoir un Function à l'intérieur d'un Sub.
Code:
1
2
3 sub machin() '... End Sub
ericCode:
1
2
3 Function truc () '... End Function
Même que si j'étais modérateur, je fermerais ici et je renverrais tout le monde à la question d'origine :
http://www.developpez.net/forums/d15...a/#post8297671
P.S Quand j'ai vu que j'avais répondu dans le vide, je l'avais envoyée au diable. Mais là avec deux fils différents, et des répondeurs différents, c'est parti pour prendre le temps de beaucoup de monde pour rien; et j'ai eu des remords. Mais, de toute évidence, elle veut le code sur un plateau d'argent. Mais, ce n'est pas la politique du Forum et c'est une méthode de broche à foin pour apprendre.
Mouais. Pas très rigoureux pour une matheuse tout ça.
Déjà rien que poser la question sans même mettre de code était mauvais signe.
On va aller voir les gens plus sérieux...
eric
Bonjour,
Je m'étais concentrée sur mon projet, et j'avais donc pris beaucoup de temps là dessus, d'où le fait que je n'étais plus revenue sur le forum.
Et par la même occasion , pour vous informer que j'avais résolu mon problème .
Sauf que je viens de lire le fil de la discussion et ...
Que dire.... j'ai trouvé la solution toute seule . Donc non , je ne cherchais pas à avoir un code sur un plateau d'argent....
De plus Clementmarcotte "l'exemple " que vous aviez posté ne m'avais pas été utile , mais m'avait plus perdue qu'autre chose. (d'où le fait que je n'y avais pas répondu (peut être oublié d'y répondre du fait que j'étais dans une période très prenante), si ça aurait été pour dire que le commentaire posté ne m'aidait en aucun cas...).
Donc merci aux mauvaises langues.
Pour information, nous ne sommes pas tous des professionnels en programmation, (je me considère plus comme une autodidacte, vu que j'ai eu très peu d'heures de cours de vba au cours de ma formation) donc à l'avenir merci d'éviter de juger les membres hâtivement. (n'est ce pas eriiic)
Bien à vous