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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  code pour le calcul d'une fonction à partir d'une matrice

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

code pour le calcul d'une fonction à partir d'une matrice

n°2074346
simajdou
Posté le 06-05-2011 à 15:23:41  profilanswer
 

bonjour, je dois calculer une fonction dont les données sont plusieurs,
mes données sont par exemple comme suit:
 
durée\ delta= 10        15       20
7              10,97    11,20   10,89
15             11,3     10,54   10,65
21            10,67    11,45    11,10
30            10,97    11,34    10,93
les valeurs à l'intérieur sont les volatilités
 
je dois avoir un tableau similaire mais au lieu des volatilité il me faut les valeurs d'un strike dont j'ai l'expression en fonction de la durée le dela et la volatilité, donc pour chaque durée, delta et volatilité il me faut un strike.
 
durée delta =10
7 volatilité=10,97 ==> strike
voiçi le code que j'ai utilisé mais ça marche pas
 
Sub strikevol()
Dim db As Database, rs As Recordset, r As Long
    Set db = OpenDatabase("C:\Users\Siham\Desktop\function.mdb" )
    Set rs = db.OpenRecordset("siham1", dbOpenTable)
 
    For r = 3 To 14
    With rs
.AddNew
.fields("10" ) = Range("B" & r).Value
.fields("15" ) = Range("C" & r).Value
.fields("20" ) = Range("D" & r).Value
.fields("25" ) = Range("E" & r).Value
.fields("30" ) = Range("F" & r).Value
.fields("35" ) = Range("G" & r).Value
.fields("40" ) = Range("H" & r).Value
.Update
 End With
   
Dim taux_domestique As Double
Dim taux_etranger As Double
Dim r As Integer
Dim i As Integer
Dim j As Integer
Dim duree(12) As Double
Dim volatilite(12, 7) As Double
CP = "call"
Spot = 1.4449
        i = 1
        Dim ObjCell1 As Range
         
        For Each ObjCell In Range("A3:A14" ).Cells
            duree(i) = ObjCell.Value
            i = i + 1
        Next
         
        Dim ObjCell3 As Range
        i = 1
        j = 1
        For Each ObjCell3 In Range("A3:H14" ).Cells
            If j <= 12 And i <= 12 Then
              volatilite(i, j) = ObjCell3.Value
            End If
             
            If j > 12 And i <= 12 Then
                j = 1
                i = i + 1
            End If
        Next
 
For i = 1 To 12
For j = 1 To 7
taux_domestique = InterpoleTx(Range("A17:A26" ), Range("B17:B26" ), duree(i)) And taux_etranger = InterpoleTx(Range("A29:A42" ), Range("C29:C42" ), duree(i))
 
Range("B" & r).Value = Spot * Exp(((taux_domestique - taux_etranger + (0.5 * volatilite(i, j) * volatilite(i, j))) * (duree(i) / 365)) - (volatilite(i, j) * Sqr(2 * (duree(i) / 365) * Log(1 / (0.1 * Sqr(2 * 22 / 7))))))
Range("C" & r).Value = Spot * Exp(((taux_domestique - taux_etranger + (0.5 * volatilite(i, j) * volatilite(i, j))) * (duree(i) / 365)) - (volatilite(i, j) * Sqr(2 * (duree(i) / 365) * Log(1 / (0.15 * Sqr(2 * 22 / 7))))))
Range("D" & r).Value = Spot * Exp(((taux_domestique - taux_etranger + (0.5 * volatilite(i, j) * volatilite(i, j))) * (duree(i) / 365)) - (volatilite(i, j) * Sqr(2 * (duree(i) / 365) * Log(1 / (0.2 * Sqr(2 * 22 / 7))))))
Range("E" & r).Value = Spot * Exp(((taux_domestique - taux_etranger + (0.5 * volatilite(i, j) * volatilite(i, j))) * (duree(i) / 365)) - (volatilite(i, j) * Sqr(2 * (duree(i) / 365) * Log(1 / (0.25 * Sqr(2 * 22 / 7))))))
Range("F" & r).Value = Spot * Exp(((taux_domestique - taux_etranger + (0.5 * volatilite(i, j) * volatilite(i, j))) * (duree(i) / 365)) - (volatilite(i, j) * Sqr(2 * (duree(i) / 365) * Log(1 / (0.3 * Sqr(2 * 22 / 7))))))
Range("G" & r).Value = Spot * Exp(((taux_domestique - taux_etranger + (0.5 * volatilite(i, j) * volatilite(i, j))) * (duree(i) / 365)) - (volatilite(i, j) * Sqr(2 * (duree(i) / 365) * Log(1 / (0.35 * Sqr(2 * 22 / 7))))))
Range("H" & r).Value = Spot * Exp(((taux_domestique - taux_etranger + (0.5 * volatilite(i, j) * volatilite(i, j))) * (duree(i) / 365)) - (volatilite(i, j) * Sqr(2 * (duree(i) / 365) * Log(1 / (0.4 * Sqr(2 * 22 / 7))))))
Next j
Next i
Next
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
End Sub

mood
Publicité
Posté le 06-05-2011 à 15:23:41  profilanswer
 


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

  code pour le calcul d'une fonction à partir d'une matrice

 

Sujets relatifs
heuteur de div auto en fonction des autresMatrice de struct en paramètre
XSLT: utilisation de la fonction position() dans <for-each> imbriquésFonction strstr, question sur ce qu'elle renvoit.
fonction exec()Zone texte html agissant sur code source
Fonction Recherche sur une plage de donnéesException code in C ???
Code C-Lecture de fichiers à partir d'un dossier. 
Plus de sujets relatifs à : code pour le calcul d'une fonction à partir d'une matrice


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