Accueil > Forum > > > > GROS problème d'agregation, j'ai besoin d'AIDE, SVP !!!!
GROS problème d'agregation, j'ai besoin d'AIDE, SVP !!!!
vendredi 1 septembre 2006 à 16:13:21 |
GROS problème d'agregation, j'ai besoin d'AIDE, SVP !!!!

eupeup
|
Bonjour à tous, j'ai un gros problème avec un algo d'agregation àfaire en VBA sous Excel Dans une feuille excel j'ai une liste avec une colonne comprenant des heures, une colonne comprenant des données (cours d'action), et une troisième colonne comprenant d'autres données (les volumes traités) : 04:45:36.145 85.4 150 04:45:36.141 85.4 260 04:45:36.139 85.3 320 04:45:36.138 85.2 140 04:45:36.134 85.1 169 Le but est d'agréger les trades de la manière suivante : Tous les trades distants de moins d'un dixième de seconde sont agrégés en un seul trade si le cours est identiques entre les trades ou si l'évolution du cours est monotone. Le volume obtenu pour chaque agrégation se calcule en faisant la somme des volumes des trades agrégés. Et le cours obtenu pour chaque agrégation se calcule en faisant une moyenne pondérée des cours par les volumes et en arrondissant au centième. Voila un exemple de ce que je souhaiterai obtenir : 04:45:36.145 85.4 150 04:45:36.141 85.4 260 04:45:36.139 85.3 320 04:45:36.138 85.2 140 04:45:36.136 85.1 169 04:45:36.124 85.1 150 04:45:36.046 85.1 260 04:45:36.040 85.1 320 04:45:36.039 85.2 140 04:45:36.027 85.2 169 04:45:36.023 85.3 260 04:45:36.019 85.1 320 04:45:36.017 85.1 140 04:45:35.920 85.1 169 Ainsi on va agrègé les 7 premiers trades ensembles puisqu'ils sont dans le même dixième de seconde et que les cours évoluent dans le même sens On agrège ensuite les 4 trades suivant pour les mêmes raisons. Enfin on agrege ensemble les trois derniers trades puisque l'évolution du cours a changé de sens (on est passé à une baisse du cours) et que ces trades sont compris dans le même dixième de seconde. On obtient alors : 04:45:36.145 85.24 1449 04:45:36.040 85.20 889 04:45:36.019 85.1 629 Donc le premier problème est que Excel ne gère pas les millisecondes, donc j'ai codé une petite macro qui transforme les heures en secondes et je travaille directement avec les secondes. L'exemple sur lequel je travaille est le suivant : | 09:31:13.142 | 34273.142 | 0.82 | 68 | | 09:31:13.141 | 34273.141 | 0.83 | 105 | | 09:31:13.140 | 34273.14 | 0.83 | 88 | | 09:31:10.139 | 34270.139 | 0.84 | 99 | | 09:31:09.138 | 34269.138 | 0.85 | 189 | | 09:31:09.137 | 34269.137 | 0.85 | 75 | | 09:31:08.136 | 34268.136 | 0.84 | 203 | | 09:31:03.135 | 34263.135 | 0.84 | 19 | | 09:31:02.134 | 34262.134 | 0.84 | 58 | | 09:31:01.133 | 34261.133 | 0.84 | 108 | | 09:30:56.132 | 34256.132 | 0.83 | 3 | | 09:30:56.131 | 34256.131 | 0.84 | 7 | | 09:30:55.130 | 34255.13 | 0.84 | 72 | | 09:30:55.129 | 34255.129 | 0.84 | 34 | | 09:30:54.128 | 34254.128 | 0.85 | 6 | | 09:30:52.127 | 34252.127 | 0.85 | 63 | | 09:30:52.126 | 34252.126 | 0.85 | 23 | | 09:30:49.125 | 34249.125 | 0.85 | 25 | | 09:30:48.124 | 34248.124 | 0.85 | 7 | | 09:30:46.123 | 34246.123 | 0.85 | 34 | | 09:30:46.122 | 34246.122 | 0.85 | 20 | | 09:30:46.121 | 34246.121 | 0.85 | 31 | | 09:30:46.120 | 34246.12 | 0.85 | 1 | | 09:30:45.119 | 34245.119 | 0.85 | 14 | | 09:30:45.118 | 34245.118 | 0.85 | 4 | | 09:30:44.117 | 34244.117 | 0.87 | 18 | | 09:30:43.116 | 34243.116 | 0.87 | 39 | | 09:30:43.115 | 34243.115 | 0.87 | 27 | | 09:30:42.114 | 34242.114 | 0.85 | 23 | | 09:30:42.113 | 34242.113 | 0.85 | 3 | | 09:30:42.112 | 34242.112 | 0.86 | 13 | Bon voila le problème, je galere dessus depuis pas mal de temps, donc si quelqu'un peut m'aider ce serait super sympa. Merci à tous !!! Peupeu
|
|
samedi 2 septembre 2006 à 16:16:22 |
Re : GROS problème d'agregation, j'ai besoin d'AIDE, SVP !!!!

Kobaya
|
bonjour Peupeu,
il faut d'abord qur tu définisses "monotone" : est-ce 1/10e du cours, plus, moins ?
pour la gestion des secondes, j'ai Excel 200 et windows 2000 SP4, et en utilisant le format "hh:mm:ss.00", on voit jusqu'au 1/100e, donc à priori c'est bon, non ?
prends comme référence Dep = heure de départ + 1 seconde (ex. : =A1+"00:00:01"). Parcours ensuite la liste, et tant que l'heure est inférieure à Dep, tu agrèges.
|
|
samedi 2 septembre 2006 à 17:51:03 |
Re : GROS problème d'agregation, j'ai besoin d'AIDE, SVP !!!!

Dowin
|
Réponse acceptée !
Salut J'ai essayé un truc a toi de voir si ca marche chez toi et surtout si c'est ce que tu cherches.
Sur la feuille 1 j'ai les trades et un CommandButton1 et la feuille 2 affiche l'agrégation. Voila le code :
Dim IndexHeure As Integer Dim Ligne As Integer Dim LigneAffichage As Integer Dim CoursMontant As Boolean Dim CoursDescendant As Boolean Dim CoursMonotone As Boolean Private Sub AnalyseCours() Do If Worksheets(1).Cells(Ligne, 2) <> Worksheets(1).Cells(Ligne - 1, 2) Then If Worksheets(1).Cells(Ligne, 2) > Worksheets(1).Cells(Ligne - 1, 2) Then CoursMontant = True CoursMonotone = False If CoursMontant = CoursDescendant Then If CoursMonotone = False Then Agregation IndexHeure = Ligne End If End If CoursDescendant = False Else CoursDescendant = True CoursMonotone = False If CoursMontant = CoursDescendant Then If CoursMonotone = False Then Agregation IndexHeure = Ligne End If End If CoursMontant = False End If Else CoursMonotone = True End If AnalyseHeure Ligne = Ligne + 1 Loop Until Worksheets(1).Cells(Ligne, 1) = "" Agregation End Sub Private Sub AnalyseHeure() If (Worksheets(1).Cells(IndexHeure, 1) * 24 * 60 * 60) - (Worksheets(1).Cells(Ligne, 1) * 24 * 60 * 60) > 0.1 Then Agregation IndexHeure = Ligne CoursMontant = False CoursDescendant = False CoursMonotone = True End If End Sub Private Sub CommandButton1_Click() CoursMontant = False CoursDescendant = False CoursMonotone = True IndexHeure = 1 Ligne = 2 LigneAffichage = 1 AnalyseCours End Sub Private Sub Agregation() For i = IndexHeure To Ligne - 1 Volume = Volume + Worksheets(1).Cells(i, 3) Cours = Cours + (Worksheets(1).Cells(i, 2) * Worksheets(1).Cells(i, 3)) Next i Worksheets(2).Cells(LigneAffichage, 1) = Worksheets(1).Cells(IndexHeure, 1) Worksheets(2).Cells(LigneAffichage, 2) = Format(Cours / Volume, "########0.00") Worksheets(2).Cells(LigneAffichage, 3) = Volume LigneAffichage = LigneAffichage + 1 End Sub
j'ai les fichiers excel que je peux t'envoyer par mail si tu veux. Dorian
|
|
lundi 4 septembre 2006 à 09:39:20 |
Re : GROS problème d'agregation, j'ai besoin d'AIDE, SVP !!!!

eupeup
|
Merci les gars pour votre aide. Dowin merci pour ton code, je vais le tester de suite, par contre si'il ya moyen de me filer ta feuille excel, ca le ferait grave ( je t'ai envoyé mon adresse par message privé)
Et pour Kobaya, je crains que ca le fasse pas avec les centièmes car je dois gérer des heures qui sont précises au millième. Sinon monotone signifie que dans le même dixième de seconde si le cours évolue, il doit évoluer dans le même sens (augmenter ou baisser). Par exemple si dans un même dixième le cours baisse, et qu'à l'instant suivant (toujours dans le même dixième) le cours se met à grimper, alors l'évolution n'est plus monotone, du coup on débute une nouvelle agrégation.
J'espère que j'ai été assez clair. Sinon dans l'exemple que j'ai filé dans mon premier message, on peut voir que les 7 dernières lignes sont situées dans le même dixième, pourtant on va égréger les lignes en deux groupes. Un premier contiendra les quatres premières lignes (car le cours évolue de manière croissante) et le second contiendra les trois derniers (car le cours s'est mis à baisser).
Voila, merci et Dowin si tu peux m'envoyer ta feuille excel ce serait mortel.
++
Peupeu
|
|
lundi 4 septembre 2006 à 10:46:18 |
Re : GROS problème d'agregation, j'ai besoin d'AIDE, SVP !!!!

eupeup
|
Dowin, je viens de tester ton code, et je crois bien que c'est exactement ce que je cherchais, donc c'est nikel nikel. Je vais vérifier tous les ptits détails, mais je crois avoir bien compris comment t'as fait, donc je devrais pouvoir m'en sortir. Si je galere je re posterai un message.
Merci beaucoup !!!
|
|
Cette discussion est classée dans : problème, cours, gros, agregation, trades
Répondre à ce message
Sujets en rapport avec ce message
Aidez-moi, SVP, gros problème pour un novice [ par clonevince ]
Voilà, j'ai crée un programme qui permet de supprimer les raccourcis du bureau.Je désire lancer un jeu quand je clique sur un bouton.Il veut bien le l
Gros problème avec les vbrun Urgent!!!!!! [ par Cyber117 ]
Je distribut gratuitement mes programmes sur internet mais les gens me disent qu'ils leur marque les vbrun. (lorsque qu'il lance le jeux une fenetre a
Gros problème...Résultat opération.... [ par Chricl ]
je suis débutant et je rencontre le problème suivant:d = Text1.Textintschilling = dschilling = intschilling / 200.482schillingue = schilling * 6.55957
HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP ! HELP [ par MyC ]
Salut,J'ai un gros problème, lorsque je suis sur intenet explorer et que je voyage sur le net, tant que je suis sur ma fenêtre principale, il n'y a pa
Gros problème avec les personnages [ par Rodolf ]
Comment on fait pour que quand un agent (génie ou autre)de microsoft lise ou comprend ce que vous dites ce soit en francais !!Sinou le e correspond au
GROS problème avec winsock [ par Rodolf ]
J' ai créé 2 applications avec winsock pour dialoguer.Si je les mets tous les 2 sur le même ordinateur et je rentre son IP, ca marche.Mais si j' exécu
J'ai un super gros problème. elle s'appel erreur 3360 [ par Nitocris ]
Je créer une requête via vb pour ACCESS 2000.Cette requette est trop "longue" et cette erreur surviens.Comment contourner ce problème????
J'ai un super gros problème. elle s'appel erreur 3360 [ par Nitocris ]
Je créer une requête via vb pour ACCESS 2000.Cette requette est trop "longue" et cette erreur surviens.Comment contourner ce problème????
Gros problème avec set Item dans Collection [ par fio ]
Bonjour,J'ai un gros problème avec ma collection, pour laquelle j'ai défini :Public Function Item(Mot As Variant) As clsMots On Error Resume Next
Gros problème avec VB .NET!!! [ par FAS ]
Bonjour,Je me suis mis il y a qqes jour au vb .Net. J'ai téléchargé qqes programmes, mais VB .Net me retourne toujours une erreur quand il essaie de l
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|