Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

[ASTUCE MQL] Comment déterminer l'heure GMT automatiquement

  • furynick

    Ce code devrait avoir pas mal de succès chez les codeurs, il met à disposition la fonction TimeGMT() qui retourne l'heure GMT en se basant sur l'heure du broker, l'heure du PC et sa configuration de timezone (pour peu qu'elle soit correcte).

    Code
    #import "kernel32.dll" int GetTimeZoneInformation(int& a[]); #import int broker2gmt; // time offset from broker time to gmt in seconds //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- int tzdata[172]; int tzinfo = GetTimeZoneInformation(tzdata); broker2gmt = (3600.0 * MathRound((TimeLocal() - TimeCurrent()) / 3600)) + (60 * tzdata[0] - 3600 * (1 - tzinfo % 2)); } //+------------------------------------------------------------------+ //| return GMT time according to local computer timezone settings | //+------------------------------------------------------------------+ datetime TimeGMT() { return(TimeCurrent() + broker2gmt); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- Comment("GMT=", TimeToStr(TimeCurrent() + broker2gmt)); //---- return(0); }
  • furynick

    Vous aurez bien évidemment corrigé de vous même le commentaire dans la fonction start
    Code
    Comment("GMT=", TimeToStr(TimeGMT()));
  • Lorka85

    merci de ce ti bout de code fort sympatoche fury :)

    tien je vois que tu importe des fonction venant du noyaux windows via

    #import "kernel32.dll" int GetTimeZoneInformation(int& a[]);

    je sais pas si il existe une fonction pour faire sonner le BEEP du haut parleur intern du PC via MQ4 ? (pour en faire une alerte)

    http://msdn.microsoft.com/en-us/library/ms679277%28v=vs.85%29.aspx
    http://www.daniweb.com/software-development/c/code/216802

    faudrait importer un winapi je crois.

    ce qui fait bip quand vous lancez votre pc au demmarage :)
  • furynick

    Pour toi public :
    Code
    #import "kernel32.dll" bool Beep(int freq, int delay); #import int start() { Beep(2750, 350); }

    chez moi ça sort sur les écouteurs il doit y avoir un truc à activer dans Windows pour que ça sorte sur le beeper.
  • Lorka85

    merci fury, vraiment formidable, presque magique !!!

    je réalise qu'on peu faire un virus en mq4 une fois compilé en ex4,avec les fonctions windows kernel32 deletefile par exemple ^^
    idéal pour punir une personne en lui supprimant tous ses indicateurs mt4 :)

    vous en faites pas je mettrais tjs mes sources visible en mq4 hein :-D
  • furynick

    A partir du moment où un indic/ea/script utilise une DLL on peut même pousser le bouchon à envoyer des infos personnelles sur le Web !
  • jagaur1637 — en réponse à furynick dans son message #28797

    furynick, le 30/05/2011 dit :
    Ce code devrait avoir pas mal de succès chez les codeurs, il met à disposition la fonction TimeGMT() qui retourne l'heure GMT en se basant sur l'heure du broker, l'heure du PC et sa configuration de timezone (pour peu qu'elle soit correcte). Code#import "kernel32.dll" int GetTimeZoneInformation(int& a[]); #import int broker2gmt; // time offset from broker time to gmt in seconds //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- int tzdata[172]; int tzinfo = GetTimeZoneInformation(tzdata); broker2gmt = (3600.0 * MathRound((TimeLocal() - TimeCurrent()) / 3600)) + (60 * tzdata[0] - 3600 * (1 - tzinfo % 2)); } //+------------------------------------------------------------------+ //| return GMT time according to local computer timezone settings | //+------------------------------------------------------------------+ datetime TimeGMT() { return(TimeCurrent() + broker2gmt); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- Comment("GMT=", TimeToStr(TimeGMT()) ); //---- return(0); }

    Excellent