IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Appliquer fonction covariance à matrice de résultats d'une autre fonction!


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Par défaut Appliquer fonction covariance à matrice de résultats d'une autre fonction!
    Bonjour,

    Mon but : calculer la matrice de covariance d'un portefeuille dont je n'ai que les prix
    J'ai donc créé une fonction qui calcule les rendements : OK elle marche bien et renvoie la matrice de rendements dans excel quand on la teste
    Mon but est maintenant de créer la matrice covariance MAIS (car il y a toujours un mais) je suis obligée d'utiliser ici aussi comme paramètre de ma fonction les prix (cela fait partie d'un gros devoir et mon professeur impose cette difficulté.

    Je dois donc dans ma deuxième fonction, appeler la fonction rendement l'appliquer au prix puis appliquer aux résultats la fonction covariance. Vous vous doutez que si je suis là c'est que j'ai un petit bémol...

    J'arrive bien à appeler ma fonction rendement quand je teste cela sans ma boucle ça marche bien mais je n'arrive pas à appliquer ma fonction covariance à mon tableau temporaire... HELP PLEASE mon projet est à rendre urgemment...

    PS : quand je teste ma fonction covariance directement sur ma plage de prix elle fonctionne donc ce n'est pas la fonction elle-même le problème mais bien mon appellation

    Fonction rendements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    'fonction calculant la matrice des rendements du portefeuille
    Function ReturnMatrix(prices As Range) As Variant
     
    'permet la mise à jour lors d'une modification sur la feuille, comme une fonction excel normale
    Application.Volatile
     
    Dim res()
     
    Dim i As Integer, j As Integer
    Dim nombredelignes As Integer, nombredecolonnes As Integer
     
    nombredelignes = prices.Rows.Count
    nombredecolonnes = prices.Columns.Count
     
    'Formate la matrice de résultat selon la taille de la matrice de prix du départ
    ReDim res(nombredelignes, nombredecolonnes)
     
    For i = 1 To nombredelignes
       For j = 1 To nombredecolonnes
            res(i, j) = prices(i + 1, j) / prices(i, j) - 1
        Next j
    Next i
     
    ReturnMatrix = res
    End Function
    Fonction covariance qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Function covarmat(prices As Range) As Variant
     
    'permet la mise à jour lors d'une modification sur la feuille, comme une fonction excel normale
    Application.Volatile
     
    Dim matriceresultat()
    Dim temporaryreturn As Variant
    Dim x As Integer, y As Integer
    Dim nbredecolonnes As Integer
     
        'Compte le nombre de lignes
        nbredecolonnes = prices.Columns.Count
     
    'Formate la matrice de résultat en une matrice carrée
    ReDim matriceresultat(nbredecolonnes, nbredecolonnes)
     
        'applique la fonction rendement à la plage de prix
        temporaryreturn = ReturnMatrix(prices)
     
     
        For x = 1 To nbredecolonnes
          For y = 1 To nbredecolonnes
          'applique la covariance entre la colonne x et la colonne y des rendements retournés ci-dessus
          matriceresultat(x, y) = Application.WorksheetFunction.Covariance_P(temporaryreturn.Columns(x), temporaryreturn.Columns(y))
          Next y
        Next x
     
    covarmat = matriceresultat
    End Function
    J'ai vraiment besoin d'un sauveur

  2. #2
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Par défaut HELP
    J'ai vraiment besoin d'aide! Quelqu'un par ici?

Discussions similaires

  1. Résultat d'une fonction en argument d'une autre fonction.
    Par xess91 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/04/2009, 15h15
  2. [Oracle] Fonction pour lire le résultat d'une requête
    Par bsidy1 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/04/2009, 17h54
  3. [MySQL] Condition en fonction des lignes de résultat d'une requête
    Par darkloy dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/09/2008, 23h01
  4. Réponses: 34
    Dernier message: 24/05/2007, 16h19
  5. Réponses: 3
    Dernier message: 24/05/2007, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo