Effectuer une macro VBA en fonction de l'heure pour un Backtest

tmsdpl

XLDnaute Nouveau
Bonjour,

Je suis sur un projet personnel assez important, je fait en fait un backtest pour une stratégie de trading.
J'ai fini de programmer les fonction, mais maintenant je doit effectuer quelque chose d'indispensable et je n'y arrive pas.
Je doit envelopper toute ma macro dans une condition qui gère l'heure.

Je m'explique.
Chaque ligne de mon excel représente une minute de la journée, et le tableau représente 8 mois de l'année (soit pas loin de 300 000 lignes)
Donc je doit effectuer un travail sur les lignes, seulement si l'heure est entre 9 et 22 heure.
donc une condition qui dit tout simplement:

SI heure > 9:00:00 ET heure < 22:00:00

CODE

FIN

voila, le problème est que la colonne qui représente l'heure indique aussi la date:
exemple d'une ligne:

02.01.2011 17:01:00

Voila.
Je voyait plusieurs solutions, mais le problème et qu'il y a la date. sinon il aurait fallu un moyen de supprimer les ":" pour que l'heure devienne un chiffre, dans ce cas la condition aurait été simple.
Y a t il un moyen de supprimer la partie date pour toute les case de la colonne?
Et un moyen pour enlever les ":"?

Sinon, les autres solution aurait été en fonction du numéro de ligne, l'autre problème est que, étant un backtest de trading, j'ai fait le signal d'ouverture, et il faut que je gère le signal de fermeture qui doit se faire à des heures précises. Donc la condition deviens très compliqué, et surtout très lourde.
Si j'arrive a modifier la case date par un chiffre, je pourrais y arriver simplement et facilement
exemple :
2.01.2011 17:01:00 ---> 170100
2.01.2011 17:02:00 ---> 170200
...

Voilà, merci encore, car la fonction principale, c'est aussi grâce a vous que j'ai réussi a l'écrire.
 

tmsdpl

XLDnaute Nouveau
Re : Effectuer une macro VBA en fonction de l'heure pour un Backtest

Merci beaucoup, pour enlever les ":" sa marche avec la fonction Replace(cells(x,x), ":", "")
mais je n'arrive pas a enlever la date....

Maintenant, j'ai bien 02.01.2011 170100, maintenant j'aimerais tronquer la date, est ce possible?
 

tmsdpl

XLDnaute Nouveau
Re : Effectuer une macro VBA en fonction de l'heure pour un Backtest

Merci de ton aide mais je ne comprend pas ce que tu a fait.

J'ai juste besoin de tronquer la moitié de la colonne.
De transformer
2.01.2011 17:01:00
en
17:01:00

je ne sais pas si c'est possible, par exemple en coupant, divisant la cellule a l'espace.
Et j'ai aussi besoin de la faire a toute le colonne, j'ai plus de 300 000 lignes...
 

eriiic

XLDnaute Barbatruc
Re : Effectuer une macro VBA en fonction de l'heure pour un Backtest

Bonjour,

en vba tu peux faire :
h = Hour([a2]) * 100 + Minute([a2]) pour hhmm
et
h = (Hour([a2]) * 100 + Minute([a2])) * 100 + Second([a2]) pour hhmmss

et pareil en formules sur une feuille...
eric
 

tmsdpl

XLDnaute Nouveau
Re : Effectuer une macro VBA en fonction de l'heure pour un Backtest

Gilbert, sa marche, mais je ne veut pas faire de modification dans le tableau, il faut que je passe par la VBA



Eric, ton code fonctionne, mais pas pour moi, car la date et sous le format JJ.MM.AAAA
ton code marche pour le format JJ/MM/AAAA

Il y a moyen de remplacer les "." par des "/"?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 712
Messages
2 081 802
Membres
101 819
dernier inscrit
lukumubarth