R
Reeaz
Guest
Bonjour,
j'essaie de créer une sorte de dichotomie, mais ca foire un peu!!
Voici mon code:
Sub Dicho()
K = 0.042
F = 0.03869454
t = 256
Contre = 2.4553
tenor = 1
b = 1
Amount = 27000000
Df = 0.98754242542
Dim SwapVar As Double
Dim sig As Variant
For sig = 0.0001 To 1 Step 0.001
d1 = (Log(F / K) + sig ^ 2 / 2 * t) / (sig * Sqr(t))
d2 = d1 - sig * Sqr(t)
'SwapVar = SwapVar + (Amount / tenor) * Df * b * (F0 * Norm(b * d1) - Rx * Norm(b * d2))
SwapVar = SwapVar + (Amount / tenor) * Df * b * (F0 * Norm(b * d1) - K * Norm(b * d2))
If SwapVar = Contre Then Range("A1").Value = sig
Next sig
End Sub
'Loi Normale que j'utilise ds la proc
Public Function Norm(x As Double) As Double
Norm = Application.WorksheetFunction.NormSDist(x)
End Function
En fait je fait varier sig ds ma formule swapvar qui me renvoie donc un certain nbre de valeur.
Je voudrai la comparer à une valeur que j'apelle Contre. Après si swapvar=Contre, je souhaiterai que le prog me retourne le sig utilisé.
Si qqun a une idée ce serait sympa.
Merci.
j'essaie de créer une sorte de dichotomie, mais ca foire un peu!!
Voici mon code:
Sub Dicho()
K = 0.042
F = 0.03869454
t = 256
Contre = 2.4553
tenor = 1
b = 1
Amount = 27000000
Df = 0.98754242542
Dim SwapVar As Double
Dim sig As Variant
For sig = 0.0001 To 1 Step 0.001
d1 = (Log(F / K) + sig ^ 2 / 2 * t) / (sig * Sqr(t))
d2 = d1 - sig * Sqr(t)
'SwapVar = SwapVar + (Amount / tenor) * Df * b * (F0 * Norm(b * d1) - Rx * Norm(b * d2))
SwapVar = SwapVar + (Amount / tenor) * Df * b * (F0 * Norm(b * d1) - K * Norm(b * d2))
If SwapVar = Contre Then Range("A1").Value = sig
Next sig
End Sub
'Loi Normale que j'utilise ds la proc
Public Function Norm(x As Double) As Double
Norm = Application.WorksheetFunction.NormSDist(x)
End Function
En fait je fait varier sig ds ma formule swapvar qui me renvoie donc un certain nbre de valeur.
Je voudrai la comparer à une valeur que j'apelle Contre. Après si swapvar=Contre, je souhaiterai que le prog me retourne le sig utilisé.
Si qqun a une idée ce serait sympa.
Merci.