Mouvement Brownien Arithmétique sous VBA

Masterkint -  
 Paf -
Bonjour,

J'essaie de faire tourner cette sous-routine de mouvement brownien Arithmétique que j'ai pu découvrir dans un livre de finance, mais il me ressort que des 0 en résultats...
Quelqu'un peut il m'aider ?

Sub Brownarith()
a = 0.9
sigma = 0.3
T = 0.25
N = 100
dt = T / N
xt = 0
Range("stock").Offset(0, 0) = xt
For i = 1 To N
Randomize
eps = Application.WorksheetFunction.NormSInv(Rnd)
xt = xt + a * dt + sigma * eps * Sqr(dt)
Range("stock").Offset(i, 0) = xt
Next i

End Sub


Je ne comprends pas du tout pourquoi ?

Merci à tous par avance


2 réponses

Paf
 
bonsoir,

chez moi ça tourne en remplacant range("stock") par range ('"A1")

à quoi correspond stock ?

Bonne soirée
0
Masterkint
 
Bonsoir,

En fait effectivement j'ai réussi a le faire tourner, mais les valeurs affichées ne sont que des 0 ?

Dans le livre il nomme le range "stock" juste pour différencier par rapport aux autres routines..

Merci encore d'avance,

Quentin
0
Masterkint
 
Bonsoir,

Merci pour ta réponse, en fait j'appelle "stock" le range parce que cela correspond à ce qui était écrit dans le livre car c'est pour déterminer une colonne. c'est juste de manière a séparer les colonne pour différent essaies je pense.
Par contre je ne comprends pas car moi ca marche aussi mais cela ne me met que des 0 dans la colonne ?

Encore merci pour la réponse.

Quentin
0
Paf
 
re,
peut-être juste un format de cellule?
ci dessous un extrait du résultat en format de cellule standard :
0
0,004069571
-0,007210638
0,021887283
0,026467768
0,023981897
0,0135307
0,01448573
0,023107438
0,01889847
0,01441465
0,00811452
-0,020035625
-0,016100151
0,015441585
0,005915358
0
Masterkint
 
Pour moi aussi ca marche en fait quand je définis les variable "as variant".
J'avais mis "as integer" au départ... d'ailleurs pourquoi cela ne peut il pas fonctionner ?

Encore merci en tout cas pour la réponse.

Quentin
0
Paf
 
Ah ben oui!

integer comme son nom l'indique ne peut contenir que des entiers!
donc tous se qui se trouve après la virgule est "tronqué".
le type "variant" englobe tous types de variable
il existe d'autres types numeriques à utiliser suivant ce qu'on veux y mettre.
La différence c'est la taille occupée en mémoire.
A consulter l'aide VBA!

Bonne journée
0