Release Notes : MetaTrader 4

Plateforme de Trading pour le Forex MetaTrader 4

19 mai 2017
MetaTrader 4 build 1090
La nouvelle version comporte certaines améliorations de l'utilisation du terminal client.
12 mai 2017
MetaTrader 4 build 1080

Microsoft a publié il y a un mois une importante mise à jour de leur système d'exploitation Windows 10 Creators Update (Version 1703). Après avoir installé cette mise à jour, certains utilisateurs ne peuvent plus exécuter de programmes MQL4 dans leurs terminaux. Ce problème a été corrigé dans le nouveau build 1080 de la plateforme MetaTrader 4. Les Expert Advisors et les indicateurs s'exécutent maintenant correctement sur les graphiques, et aucune recompilation avec MetaEditor mis à jour n'est nécessaire.

Le support des versions du terminal client MetaTrader 4 inférieures à 1065 sera stoppé le 1er octobre 2017. Les versions non supportées du terminal ne pourront plus se connecter aux nouvelles versions du serveur. Nous vous recommandons fortement de mettre à jour vos terminaux en avance.


23 mars 2017
MetaTrader 4 build 1065

Dans la nouvelle version, une erreur liée au redémarrage des Expert Advisors sur les graphiques après le changement de période a été corrigée. Maintenant, les Expert Advisors ne s'arrêtent plus et sont correctement réinitialisés.

3 février 2017
MetaTrader 4 build 1045

La mise à jout de la plateforme MetaTrader 4 correspondant à la publication du Windows 10 Insider Preview build 15007. En raison des mises à jour de sécurité dans la nouvelle version du système Windows 10, les terminaux clients MetaTrader 4 peuvent échouer à démarrer de façon occasionnelle.

Installez la nouvelle version de la plateforme pour préparer l'arrivée de la prochaine mise à jour de Windows 10.

16 décembre 2016
MetaTrader 4 build 1031
La mise à jour de la plateforme MetaTrader 4 sera publiée le 16 décembre 2016. Nous avons corrigé plusieurs bugs rapportés avec les journaux des crash.
14 octobre 2016
MetaTrader 4 Android build 996
  1. Ajout du chat permettant aux traders de discuter avec d'autres membres de la MQL5.community. Spécifiez les noms des utilisateurs désirés dans les destinataires du message pour envoyer un message directement sur leurs appareils mobiles.

  2. Ajout de la possibilité d'éditer les niveaux des indicateurs.
  3. Ajout de la traduction de l'interface en indonésien et en hindi.
30 août 2016
MetaTrader 4 iOS build 975
  1. Une nouvelle conception des messages. Les messages MQL5.community et les notifications push depuis la plateforme de bureau sont maintenant affichés comme des discussions des messageries populaires sur mobiles.

  2.  Il est maintenant possible de basculer dans l'une des 22 langues disponibles directement depuis la plateforme. Si vous préférez utiliser l'interface en anglais pendant que vous trader, vous pouvez le choisir dans les "Paramètres" ("A Propos" sur iPad) sans changer les paramètres de langue de votre appareil.

18 août 2016
MetaTrader 4 Build 1010 : Les nouvelles possibilités de MQL4

Terminal

  1. Correction d'une erreur qui empêchait l'exécution d'applications dans MQL4 sur les terminaux fonctionnant sous Windows 10, 32-bit, build 1607.
  2. Correction des affichages erronés occasionnels des boutons de Recherche et de Chat.
  3. Correction des courriels de bienvenue délivrés occasionnellement en double au terminal lors de l'ouverture d'un compte de démonstration.

MQL4

  1. Ajoute des nouvelles indications vide pour permettre aux utilisateurs de créer des collections abstraites d’objets. Une indication vers un objet de n’importe quelle catégorie peut être sauvegardée sur ce type de variable. Il est recommandé d'utiliser l'opérateur dynamic_cast<class name *>(indication vide *) afin de récupérer l’argent. Si la conversion n'est pas possible, le résultat est NULL.
    class CFoo { };
    class CBar { };
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       void *vptr[2];
       vptr[0]=new CFoo();
       vptr[1]=new CBar();
    //---
       for(int i=0;i<ArraySize(vptr);i++)
         {
          if(dynamic_cast<CFoo *>(vptr[i])!=NULL)
             Print("CFoo * object at index ",i);
          if(dynamic_cast<CBar *>(vptr[i])!=NULL)
             Print("CBar * object at index ",i);
         }
       CFoo *fptr=vptr[1];  // Will return an error while casting pointers, vptr[1] is not an object of CFoo
      }
    //+------------------------------------------------------------------+

  2. Support supplémentaire pour l’opérateur [ ] pour les libellés. L'opérateur permet aux utilisateurs d’obtenir un symbole à partir d'un libellé par index. Si l’index spécifique est en dehors du libellé, le résultat est 0.
    string text="Hello"; ushort symb=text[0];  // Renverra le code du symbole 'H'
  3. La fonction CopyXXX qui copie l’historique et coche les données est plus rapide.
  4. Correction de l’annulation des objets graphiques multiples avec le préfixe spécifique en utilisant la fonction ObjectDeleteAll. Avant la mise à jour, les objets restants pouvaient être affichés dans le mauvais ordre après l’exécution de cette fonction.
  5. Correction de l’ordre incorrect occasionnel de l’affichage des objets graphiques après la modification de l'échéancier.

Hébergement

  1. Pendant la synchronisation du terminal avec le serveur virtuel, les graphiques sans le Conseiller Expert sont maintenant ignorés, même si les indicateurs standard fonctionnent sur ces graphiques. Si vous devez migrer un indicateur standard, faites-le sur le graphique dans Conseiller Expert « vide » qui n’effectue aucune opération. Ce Conseiller Expert peut être facilement généré avec l’assistant MQL4 dans MetaEditor en sélectionnant le modèle Conseiller Expert. Cette mise à jour garantit que les indicateurs sont migrés intentionnellement.
  2. Vous pouvez maintenant synchroniser les Conseillers Experts et les indicateurs standard dont les noms contiennent des caractères non latin (à savoir les caractères cyrilliques ou chinois)

Correction des erreurs signalées dans les journaux de crash.

1 juillet 2016
MetaTrader 4 build 985 : Chat MQL5.Community Intégré

Terminal

  1. Nouveau chat intégré. Les traders peuvent maintenant discuter avec leurs amis de la MQL5.community et leurs collègues trades directement depuis la plateforme. Le chat conserve l'historique des discussions et affiche également le nombre de messages non lus. Pour démarrer une discussion, connectez-vous à votre compte MQL5 directement depuis la fenêtre du chat ou via les paramètres de la plateforme : 'Outils' -> 'Options' -> 'Community'.




  2. Lecture optimisée de la base de données interne des mails lors du démarrage du terminal.

MQL4

  1. Ajout d'une option pour afficher/cacher les échelles des prix et du temps sur n'importe quel graphique. Dans les versions précédentes, une application MQL4 ne pouvait changer les propriétés CHART_SHOW_PRICE_SCALE et CHART_SHOW_DATE_SCALE du graphique sur lequel elle s'exécutait.
  2. Nouvelle propriété MODE_CLOSEBY_ALLOWED pour la fonction MarketInfo. TRUE signifie que l'opération Close By (fermeture par une position opposée) est autorisée pour le symbole financier spécifié.
  3. Correction du passage d'argument de type String pour le point d'entrée OnChartEvent. L'erreur pouvait générer une valeur erronée du paramètre. OnChartEvent permet de suivre les évènements du graphique : évènements d'appui sur une touche, mouvement de la souris et autres.
  4. Implémentation d'une suppression plus rapide de plusieurs objets graphiques en utilisant la fonction ObjectsDeleteAll.

Signaux

  1. Amélioration de la correspondance automatique des paires de devises contenant RUB et RUR.

Tester

  1. Correction de la fixation de l'heure de création d'un objet graphique pendant le test. Dans les versions précédentes, l'heure actuelle du terminal était ajoutée au lieu de celle du test.

MetaEditor

  1. MetaEditor : Correction du placement du focus dans le champ du texte de remplacement lors de l'ouverture une boîte de dialogue de recherche/remplacement.
  2. MetaEditor : Correction du remplacement de plusieurs occurences de texte lors de la recherche vers le haut depuis la position actuelle.
  3. Correction d'erreurs reportées dans les journaux de crash.


3 juin 2016
MetaTrader 4 Build 970 : Ouverture simplifiée des comptes de démo et caractéristiques MQL4 améliorées

Terminal

  1. Fenêtre simplifiée de création d'un compte de démo, ajout de la possibilité de crér des comptes de couverture. Vous n'avez plus à remplir le long formulaire. Spécifiez simplement les données de base et sélectionnez les paramètres de trading : type du compte, dépôt, effet de levier et possibilité de couverture.




MQL4

  1. Le format des fichiers exécutables EX4 a changé pour implémenter les nouvelles caractéristiques du langage MQL4. Toutes les applications EX4 compilées dans des versions antérieures de MetaEditor continueront à fonctionner normalement après la mise à jour. La compatibilité ascendante est donc complétement conservée.

    Les programmes EX4 compilés sur le build 970 et supérieur ne fonctionneront pas sur les anciennes versions du terminal - la compatibilité descendante n'est pas supportée.

  2. Ajout du support des classes abstraites et des fonctions virtuelles pures.

    Les classes abstraites sont utilisées pour créer des entités génériques, que vous that you souhaitez utiliser pour créer des classes dérivées spécifiques. Une classe abstraite ne peut être utilisée que comme classe de base pour d'autres classes, c'est pourquoi il est impossible de créer un objet d'une classe abstraite.

    Une classe qui contient au moins une fonction virtuelle pure est abstraite. Les classes dérivées d'une classe abstraite doivent donc implémenter toutes ses fonctions virutelles pures, autrement elles seront également des classes abstraites.

    Une fonction virtuelle est déclarée comme "pure" en utilisant la syntaxe du spécificateur pure. Considérons l'exemple de la classe CAnimal, qui n'est créée que pour fournir des fonctions communes – les objets de type CAnimal sont trop générales pour être utilisées en pratique. CAnimal est donc un bon exemple pour une classe abstraite :
    class CAnimal
      {
    public:
                          CAnimal();     // Constructeur
       virtual void       Sound() = 0;   // Une fonction virtuelle pure
    private:
       double             m_legs_count;  // Le nombre de jambes de l'animal
      };
    
    Ici Sound() est une fonction virtuelle pure, car elle est déclarée avec le spécificateur de fonction virtuelle pure PURE (=0).

    Les fonctions virtuelles pures sont uniquement celles déclarées avec le spécificateur PURE : (=NULL) ou (=0). Exemple de déclaration et d'utilisation d'une classe abstraite :
    class CAnimal
      {
    public:
       virtual void       Sound()=NULL;   // méthode PURE, doit être surchargée dans la classe dérivée, CAnimal est maintenant abstraite et ne peut pas être créée
      };
    //--- Dé"rivée d'une classe abstraite
    class CCat : public CAnimal
     {
    public:
      virtual void        Sound() { Print("Myau"); } // PURE est surchargée, CCat n'est pas abstraite et peut être créée
     };
    
    //--- exemples de mauvaises utilisation
    new CAnimal;         // Erreur de 'CAnimal' - le compilateur retourne l'erreur "ne peut pas instancier une classe abstraite"
    CAnimal some_animal; // Erreur de 'CAnimal' - le compilateur retourne l'erreur "ne peut pas instancier une classe abstraite"
    
    //--- exemples d'utilisations correctes
    new CCat;  // aucune erreur - la classe CCat n'est pas abstraite
    CCat cat;  // aucune erreur - la classe CCat n'est pas abstraite
    
    Restrictions sur les classes abstraites
    Si le constructeur d'une classe abstraite appelle une fonction virtuelle pure (directement ou indirectement), le résultat est indéfini.
    //+------------------------------------------------------------------+
    //| Une classe de base abstraite                                           |
    //+------------------------------------------------------------------+
    class CAnimal
      {
    public:
       //--- une fonction virtuelle pure
       virtual void      Sound(void)=NULL;
       //--- fonction
       void              CallSound(void) { Sound(); }
       //--- constructeur
       CAnimal()
        {
         //--- un appel explicite à la méthode virtuelle
         Sound();
         //--- un appel implicite (en utilisant une troisième fonction)
         CallSound();
         //--- un constructor et/ou un destructeur appelle toujours ses propres fonctions,
         //--- même si elles sont virtuelles et surchargées par une fonction appelée dans une classe dérivée
         //--- si la fonction appelée est virtuelle pure
         //--- l'appel générera l'erreur d'exécution critique "appel à une fonction virtuelle pure"
        }
      };
    
    Cependant, les constructeurs et les destructeurs des classes abstraites peuvent appeler d'autres fonctions membres.

  3. Ajout du support des pointeurs de fonctions pour simplifier l'organisation des modèles d'évènements.

    Pour déclarer un pointeur de fonction, spécifiez le type "pointeur vers une fonction", par exemple :
    typedef int (*TFunc)(int,int);
    Maintenant, TFunc est un type, et il est possible de déclarer une variable comme un pointeur vers la fonction :
    TFunc func_ptr;
    La variable func_ptr peut stocker le pointeur vers une fonction pour la déclarer plus tard :
    int sub(int x,int y) { return(x-y); }
    int add(int x,int y) { return(x+y); }
    int neg(int x)       { return(~x);  }
    
    func_ptr=sub;
    Print(func_ptr(10,5));
    
    func_ptr=add;
    Print(func_ptr(10,5));
    
    func_ptr=neg;           // erreur : neg n'est pas du type   int (int,int) type
    Print(func_ptr(10));    // erreur : il devrait y avoir deux paramètres
    
    Le pointeurs de fonctions peuvent être stockés et passés comme paramètres. Vous ne pouvez pas avoir un pointeur vers une méthode de classe non statique.

  4. Ajout de la valeur TERMINAL_SCREEN_DPI à l'énumération ENUM_TERMINAL_INFO_INTEGER de la propriété du terminal client — la résolution d'affichage des données est mesurée en points par pouce (dots per inch - DPI). La connaissance de ce paramètre permet de spécifier la taille des objets graphiques, afin qu'ils paraissent identiques sur des écrans avec des résolutions différentes.
  5. Ajout de la valeur TERMINAL_PING_LAST aux propriétés ENUM_TERMINAL_INFO_INTEGER du terminal client — la dernière valeur du ping au serveur de trading en microsecondes. Une seconde est faite d'un million de microsecondes.
  6. Les buffers DRAW_NONE (aucun construction graphique) ne participe plus aux calculs du minimum et du maximum d'une fenêtre d'un graphique dans les indicateurs personnalisés.
  7. Correction de la génération des évènements relatifs aux mouvements de la souris et aux appuis sur les boutons de la souris sur les types d'objet OBJ_LABEL et OBJ_TEXT. Avant, les évènements étaient générés incorrectement s'ils étaient inclus dans d'autres objets de type OBJ_RECTANGLE_LABEL et OBJ_RECTANGLE.
  8. Correction de l'affichage des barres d'histogramme de taille zéro dans les indicateurs personnalisés. Avant, ces barres n'étaient pas affichées, elles ont maintenant une taille de 1 pixel.

Signaux

  1. Correction de la recherche des symboles de trading lors de la comparaison des symboles de trading d'un fournisseur de signaux et de l'abonné.

Tester

  1. Correction de l'utilisation du spread dans un fichier fxt si le spread courant est utilisé dans les paramètres du test.

Market

  1. Correction de quelques erreurs d'affichage dans la vitrine du Market.

MetaEditor

  1. Correction de la recherche de mots dans les fichiers dans le mode "Mot Entier Uniquement".
  2. Ajout du déplacement d'un fichier en double cliquant sur la ligne du résultat de la compilation du fichier.
  3. Correction de l'affichage de certains éléments de contrôle sous Windows XP.

Corrections d'erreurs rapportées dans les journaux de crash.

18 mai 2016
MetaTrader 4 Android build 952
  1. Ajout d'une fenêtre pop-up avec les informations détaillées des transactions. Voyez les heures d'ouverture et de clôture des ordres, naviguez parmi les commentaires de vos positions, et trouvez la commission de votre courtier en un seul clic.
  2. Ajout d'une ligne rouge correspondant au prix Ask de la dernière barre et vous permettant de gérer vos trading de façon plus précise.
  3. Gestion améliorée des nouvelles. Sélectionnez et ne lisez que les nouvelles que vous trouvez réellement utiles et ajouter ce que vous voulez aux favoris.
  4. Tous les changements de paramètres des objets d'analyse sont sauvegardés à la fermeture de l'application.
6 mai 2016
MetaTrader 4 iOS build 947

Vous pouvez maintenant définir un code PIN pour accéder à l'application. Il fournira à vos comptes une protection supplémentaire même si vous perdez votre appareil. Activez l'option "Verrouiller l'écran" dans les paramètres de l'application. Par défaut, le code PIN est identique à celui utilisé pour accéder au générateur de mot de passe à usage unique (OTP).

La nouvelle version inclut également différentes améliorations et corrections mineures.

23 février 2016
Plateforme Web MetaTrader 4 : Ensemble complet d'indicateurs techniques et 38 langues

La nouvelle version de la plateforme web MetaTrader 4 comporte l'ensemble complet d'indicateurs pour l'analyse technique. La plateforme web contient dorénavant 30 outils d'analyse techniques parmi les plus populaires fournis par la version de bureau de MetaTrader 4 :

Accelerator Oscillator
DeMarker Moyenne Mobile
Accumulation/Distribution  Enveloppes Moyenne Mobile d'un Oscillateur
Alligator Force Index
On Balance Volume
Average Directional Movement Index Fractals Parabolic SAR 
Average True Range
Gator Oscillator Relative Strength Index 
Awesome Oscillator Ichimoku Kinko Hyo Relative Vigor Index
Bears Power
MACD Standard Deviation
Bandes de Bollinger
Market Facilitation Index
Stochastic Oscillator
Bulls Power
Momentum Volumes
Commodity Channel Index
Money Flow Index Williams' Percent Range

L'interface de la plateforme web est maintenant disponible en 38 langues. 14 nouvelles langues ont été ajoutées récemment :

hollandais
lithuanien croate
grec roumain tchèque
hébreux serbe
suédois
italien slovène
estonien
letton
finlandais



Lancez la plateforme web dès maintenant et testez les nouvelles fonctionnalités!

15 février 2016
La Plateforme Web MetaTrader 4 dispose dorénavant des indicateurs de Bill Williams

La nouvelle version de la Plateforme Web MetaTrader 4 dispose de performances améliorées des graphiques, qui sont fournies par l'utilisation de la nouvelle technologie WebGL — maintenant, même avec plusieurs indicateurs en cours d'exécution, la plateforme web maintient des performances optimales.

La plateforme web dispose maintenant d'indicateurs techniques. Les indicateurs de Bill Williams suivants ont déjà été ajoutés :

  1. Alligator
  2. Fractals
  3. Market Facilitation Index
  4. Awesome Oscillator
  5. Accelerator Oscillator
  6. Gator Oscillator
L'interface de la plateforme web a également été traduite en hindi, ouzbek et ukrainien.
15 janvier 2016
MetaTrader 4 iOS build 945
  • Ajout du mode portrait pour iPad. Désormais, vous pouvez plus facilement parcourir de longues listes d'opérations de trading, ainsi que lire votre courrier et les nouvelles financières.
  • Ajout du support natif pour iPad Pro.
  • Ajout de la langue coréenne.
23 décembre 2015
MetaTrader 4 build 950: Vidéo intégrée et améliorations des performances

Hébergement Virtuel

  1. Ajout d'un lien vers le tutoriel vidéo "Comment louer une plateforme virtuelle" dans la boîte de dialogue Assistant d'Hébergement Virtuel. Regardez la vidéo de deux minutes pour apprendre à lancer facilement un robot de trading ou copier des signaux 24/7.


    Cette vidéo, ainsi que beaucoup d'autres, est disponible sur la chaîne YouTube officielle de MetaQuotes Software Corp. .

Terminal

  1. Correction du tri des programmes MQL4 dans les sous-dossiers de la fenêtre du Navigateur. Les programmes sont triés par nom.
  2. Correction du dessin de l'indicateur de statut de la connexion au réseau sur les écrans ultra-haute définition (4K).
  3. Correction de l'affichage de la fenêtre d'aperçu avant impression dans la section Nouvelles.
  4. Une fonction complète de recherche a été ajoutée à la visionneuse du journal du terminal, des Expert Advisor, du Strategy Tester et de l'Hébergement Virtuel. Vous pouvez effectuer des recherches vers l'avant ou vers l'arrière, rechercher des mots entiers ou activer la sensibilité à la casse.

MetaEditor

  1. Ajout d'un lien vers le tutoriel vidéo "Comment assembler un robot de trading" dans le MQL4 Wizard. Regardez la vidéo de trois minutes et développez un robot de trading sans écrire une seule ligne de code.


    Cette vidéo, ainsi que beaucoup d'autres, est disponible sur la chaîne YouTube officielle de MetaQuotes Software Corp. .

MQL4

  1. Correction de la valeur retournée par la fonction SignaBaseTotal. Dans certains cas, la fonction pouvait retourner 0 au lieu du nombre total de signaux disponibles dans le terminal.
  2. Correction de l'édition de la visibilité des objets graphiques sur différentes périodes dans les programmes MQL4. Dans certains cas, l'objet pourrait être invisible sur un graphique après avoir changé cette propriété.

Testeur

  1. Correction de l'affichage des valeurs de prix et des niveaux de TP/SL dans les résultats des tests.
Correction des erreurs rapportées dans les journaux des crash.
11 décembre 2015
MetaTrader 4 build 940: Optimisé pour un affichage en ultra-haute résolution (4K)

Terminal

  1. L'interface du terminal a été complètement adaptée pour un affichage en ultra-haute résolution (4K). Tous les éléments de l'interface utilisateur sont parfaitement affichés sur de grands écrans. Sur de petits écrans, les éléments de l'interface utilisateur sont automatiquement agrandis pour une meilleure lisibilité.




MQL4

  1. Correction d'un bug qui pouvait parfois causer l'erreur "Erreur d'écriture EX4" lors de la compilation dans Windows 10.
  2. Correction d'un bug qui pouvait parfois causer des erreurs lors du chargement des DLL externes dans les scripts et les Expert Advisors.

Hébergement Virtuel

  1. Correction de la migration de l'environnement de trading avec un indicateur personnalisé contenant un appel à une bibliothèque EX4, si l'indicateur est appelé à partir d'un Expert Advisor.

Signaux

  1. Correction des notifications d'erreur sur la page d'abonnement au signal. Par exemple, les notifications sur l'absence des symboles requis pour la copie, sur les différentes conditions de trading, etc.

MetaEditor

  1. Correction de l'arrangement des fenêtres ouvertes, si l'une d'entre elles est maximisée. Les fichiers ouverts peuvent être mis sous forme de tuiles (tiled), en cascade, disposés verticalement et horizontalement à l'aide des commandes correspondantes du menu Fenêtre.


Correction des erreurs rapportées dans les journaux des crash.
26 novembre 2015
MetaTrader 4 build 920: Exploitation plus rapide et gestion d'un test visuel à partir du fichier de configuration

Terminal

  1. Correction du scan initial et périodique des serveurs de trading dans la boîte de dialogue d'ouverture du compte de trading. Désormais, la disponibilité et les pings sont définis de manière planifiée sans avoir recours au scan manuel.




  2. Fonctionnement du terminal client optimisé et accéléré.
  3. De plus, l'interface du terminal a été adaptée pour les écrans en haute résolution (4K).

MQL4

  1. Correction du téléchargement d'indicateurs personnalisés à partir des ressources des applications MQL4. Les indicateurs sont inclus dans les ressources via la directive #resource. Cela permet la création d'applications "tout-en-un" qui sont beaucoup plus faciles à distribuer.
  2. Correction de la précision de l'affichage de la valeur du niveau des indicateurs personnalisés. Auparavant, la précision était toujours composée de 4 décimales, alors que maintenant cela dépend de la précision des valeurs d'un indicateur personnalisé correspondant.
  3. Correction de la vérification de la possibilité de réduire un objet d'un type vers un autre type, comme étant le résultat de l'héritage lors du passage de l'objet comme un paramètre de méthode/fonction.
  4. Correction du recalcul des indicateurs standards sur un buffer spécifié (iIndicatorOnArray) dans le cas où les données sont définies par un tableau de taille fixe. Auparavant, l'indicateur n'était pas recalculé.
  5. Correction d'erreurs dans les modèles de classe.

Testeur

  1. Ajout de la possibilité de gérer le mode de visualisation lors du lancement du testeur à partir du fichier ini de configuration. Le nouveau paramètre TestVisualEnable (true/false) a été implémenté pour cela. Si le paramètre n'est pas spécifié, le paramètre actuel est utilisé.
  2. Correction d'une erreur dans les fonctions de type CopyXXX qui occasionnnait le retour des données réelles de l'historique, au lieu des données de l'historique de test.
  3. Correction de la lecture des paramètres de test depuis le fichier ini de configuration passé depuis la ligne de commande.
  4. Correction de la désallocation excessive de la mémoire après la fermeture du graphique du test visuel, ce qui rendait les données d'historique occasionnellement indisponible pour les opérations des Expert Advisors.

Correction des erreurs rapportées dans les journaux des crash.

12 novembre 2015
MetaTrader 4 build 910: Base de Code améliorée et interface améliorée pour Windows 10

Code Base

  1. Correction et accélération du téléchargement des programmes MQL4 à partir de la Base de Code. Téléchargez les codes sources gratuits des robots de trading et des indicateurs directement depuis la plateforme.

Terminal

  1. Correction du déchargement des prix d'historique de la mémoire. Une erreur est survenue précédemment en cas de mémoire insuffisante.
  2. Correction de l'affichage de certains éléments de l'interface utilisateur sous Windows 10.
  3. Correction de la suppression des objets graphiques du graphique à l'aide de la touche Retour Arrière.

Signaux

  1. Traductions de la vitrine des signaux de trading corrigées et améliorées.

MQL4

  1.  Ajout de la propriété en lecture seule SYMBOL_VISIBLE dans l'énumération ENUM_SYMBOL_INFO_INTEGER.
  2. Correction du modèle d'opération.
  3. Correction du comportement de la fonction ArrayCopy lors de la copie d'un tableau de string dans le cas où la zone des données de la source et celle du receveur se chevauchent entièrement ou partiellement.

Testeur

  1. Ajout d'une limitation lors du test des versions de démonstration des indicateurs et des Expert Advisros du MQL5 Market. Désormais, le test des versions de démonstration des produits se termine obligatoirement une semaine avant la date actuelle du terminal.

MetaEditor

  1. Correction des conflits occasionnels entre les infobulles et d'autres applications.


Correction des erreurs rapportées dans les journaux des crash.
22 octobre 2015
MetaTrader 4 Build 900: Modèles de classes dans MQL4 et Utilisation Optimisée de la Mémoire

Terminal

  1. Correction du changement de mot de passe pour un compte inactif (non connecté).




  2. Utilisation et libération optimisées de la mémoire lors de l'utilisation de grandes quantités de données historiques.
  3. Correction et optimisation du travail avec un grand nombre de catégories de nouvelles.

Signaux

  1. Correction du désabonnement aux signaux via le menu contextuel de la fenêtre du Navigateur.



MQL4

  1. Ajout de modèles de classes vous permettant de créer des classes paramétrées comme en C++. Cela permet une plus grande abstraction et la capacité d'utiliser le même code pour travailler avec des objets de différentes classes de manière uniforme. Exemple d'utilisation :
    //+------------------------------------------------------------------+
    //|                                                    TemplTest.mq5 |
    //|                        Copyright 2015, MetaQuotes Software Corp.  |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2015, MetaQuotes Software Corp."
    #property link      "https://www.mql5.com"
    #property version   "1.00"
    //+------------------------------------------------------------------+
    //| Declaration d'un modele de classe                                |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArray
      {
    protected:
       T                 m_data[];
    
    public:
    
       bool              Append(T item)
         {
          int new_size=ArraySize(m_data)+1;
          int reserve =(new_size/2+15)&~15;
          //---
          if(ArrayResize(m_data,new_size,reserve)!=new_size)
             return(false);
          //---
          m_data[new_size-1]=item;
          return(true);
         }
       T                 operator[](int index)
         {
          static T invalid_index;
          //---
          if(index<0 || index>=ArraySize(m_data))
             return(invalid_index);
          //---
          return(m_data[index]);
         }   
      };
    //+------------------------------------------------------------------+
    //| Modèle de classe d'un tableau de pointeurs. Dans le destructeur, il supprime |
    //| les pointeurs vers lesquels ils étaient stockés dans le tableau. |
    //|                                                                  |
    //| Noter l'heritage du modele de classe TArray                      |
    //+------------------------------------------------------------------+
    template<typename T>
    class TArrayPtr : public TArray<T *>
      {
    public:
       void             ~TArrayPtr()
         {
          for(int n=0,count=ArraySize(m_data);n<count;n++)
             if(CheckPointer(m_data[n])==POINTER_DYNAMIC)
                delete m_data[n];
         }
      };
    //+------------------------------------------------------------------------+
    //| Declaration de la classe.  Les pointeurs des objets seront stockés dans le tableau |
    //+------------------------------------------------------------------------+
    class CFoo
      {
       int               m_x;
    public:
                         CFoo(int x):m_x(x) { }
       int               X(void) const { return(m_x); }
      };
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    TArray<int>     ExtIntArray;   // instancie le modele TArray (specialise le modele TArray avec le type int)
    TArray<double>  ExtDblArray;   // instancie le modele TArray (specialise le modele TArray avec le type double)
    TArrayPtr<CFoo> ExtPtrArray;   // instancie le modele TArrayPtr (specialise le modelete TArrayPtr avec le type CFoo)
    //+------------------------------------------------------------------+
    //| Fonction de demarrage du programme du script                     |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- remplit les tableaux avec les donnees
       for(int i=0;i<10;i++)
         {
          int integer=i+10;
          ExtIntArray.Append(integer);
          
          double dbl=i+20.0;
          ExtDblArray.Append(dbl);
          
          CFoo *ptr=new CFoo(i+30);
          ExtPtrArray.Append(ptr);
         }
    //--- affiche le contenu du tableau
       string str="Int:";
       for(i=0;i<10;i++)
          str+=" "+(string)ExtIntArray[i];      
       Print(str);   
       str="Dbl:";
       for(i=0;i<10;i++)
          str+=" "+DoubleToString(ExtDblArray[i],1);
       Print(str);   
       str="Ptr:";
       for(i=0;i<10;i++)
          str+=" "+(string)ExtPtrArray[i].X();      
       Print(str);
    //--- Lest objets CFoo crees avec new ne doivent pas etre supprimes car ils sont supprimes dans le destructeur de l'objet TArrayPtr<CFoo>  
      } 
    Résultat d'exécution :
    TemplTest EURUSD,M1: Ptr: 30 31 32 33 34 35 36 37 38 39
    TemplTest EURUSD,M1: Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
    TemplTest EURUSD,M1: Int: 10 11 12 13 14 15 16 17 18 19
  2. Correction de la réallocation mémoire dans la fonction ArrayCopy qui pouvait générer des crashs des programmes MQL4 occasionnellement.

Testeur

  1. Correction d'une erreur qui annulait occasionnellement les variables déclarées au niveau global avec le test d'un indicateur.
  2. Correction du test lorsque la connexion à un serveur de trading est perdue.

MetaEditor

  1. Correction de la définition d'un nom de fonction dans MetaAssist en cas de cast de type.
  2. Correction de l'ouverture de gros fichiers.
  3. Ajout du raccourci clavier F pour appeler la fonction de recherche depuis l'onglet Code Base, mais aussi différentes astuces dans la barre de statut pour les commandes utilisant un code : ajout/suppression de l'indentation, navigation, changement de la casse, etc.


Correction des erreurs rapportées dans les journaux des crash.
123456