Calcul d'une variable avec les puissances

Bonjour,

J'essaie de calculer dans le cadre d'un projet la variable suivante :

St+1=St + St * r * dt + (St)^1.5 * sigma * (dt)^0.5 * Zi

où Zi suit une loi normale centrée réduite.

Je dois le calculer sur VBA. voici mon script:

Sub trajectoire()

Worksheets(1).Activate

Dim r As Double

Dim sigma As Double

Dim n As Double

Dim So As Double

Dim i As Double

'declaration des paramètres'

r = InputBox("Saisissez le taux")

sigma = InputBox("Saisissez la volatilité")

n = InputBox("Saisissez le nombre de points")

So = InputBox("Saisissez la valeur initiale")

dt = InputBox("Saisissez le pas de discrétisation")

Cells(1, 1).Value = "St+1" 'On part de la valeur initiale'

Cells(2, 1).Value = So

For i = 2 To n

Cells(i + 1, 1).Value = Cells(i, 1).Value + Cells(i, 1).Value * r * dt + (Cells(i, 1).Value) ^ 1.5 * sigma * (dt) ^ 0.5 * Application.WorksheetFunction.Norm_Inv(Rnd(), 0, 1)

Next i

End Sub

Tout vas au début sauf que quand j'arrive au niveau de la boucle j'ai une erreur du type: " Argument ou appel de procédure incorrect "

Quelqu'un pourrait m'aider s'il vous plaît?


les Zi suivent une loi normale centrée reduite.

Bonsoir

Je n'y connais rien et même des mots me font peur

Je ne sais pas quelles valeurs il faut entrer

Mais j'ai eu un résultat pour quelques lignes en modifiant une variable

r = InputBox("Saisissez le taux")
sigma = InputBox("Saisissez la volatilité")
n = InputBox("Saisissez le nombre de points")
So = InputBox("Saisissez la valeur initiale")
Dt = Val(InputBox("Saisissez le pas de discrétisation"))

Merci pour ta reponse, je n'ai plus d'erreur dans mon script maintenant, sauf que ma boucle ne s'execute pas comme je voudrai, en effet toute ma colonne prend la valeur de So.

Voici les valeurs des paramètres qu'il faut rentrer:

r=0.1

sigma=0.2

n=50

So=100

dt=0.00001

As tu une idée?


j'ai fait une petite erreur, j'ai modifié c'est bon ca marche.

Merci.

oups non ca n'execute pas ma boucle. toute les valeurs de ma colonne prenne la valeur de So.

Sub trajectoire()

Worksheets(2).Activate

Dim r As Double

Dim sigma As Double

Dim n As Integer

Dim So As Integer

Dim i As Integer

'declaration des paramètres'

r = InputBox("Saisissez le taux")

sigma = InputBox("Saisissez la volatilité")

n = InputBox("Saisissez le nombre de points")

So = InputBox("Saisissez la valeur initiale")

dt = Val(InputBox("Saisissez le pas de discrétisation"))

Cells(1, 1).Value = "St+1" 'On part de la valeur initiale'

Cells(2, 1).Value = So

For i = 2 To n - 1

Cells(i + 1, 1).Value = Cells(i, 1).Value + Cells(i, 1).Value * r * dt + (Cells(i, 1).Value) ^ 1.5 * sigma * (dt) ^ 0.5 * Application.WorksheetFunction.Norm_Inv(Rnd(), 0, 1)

Next i

End Sub

peux tu executer stp?

Bonjour

La macro se déroule normalement après quelques modifications

Toutes les valeurs avec virgule sont récupérées avec Val(...)

A tester

Rechercher des sujets similaires à "calcul variable puissances"