Mises à jour : MetaTrader 5

L'historique des mises à jour des plateformes de bureau, mobile et web

29 janvier 2026
Nouvelle version MetaTrader 5 build 5572 : ONNX et amélioration du rendu des graphiques

Terminal

  1. Correction du rendu du texte sur les graphiques dans les environnements macOS et Linux utilisant Wine.
  2. Correction du dessin des indicateurs affichés sous forme de lignes de couleurs variables.
  3. Correction du rendu des objets de type étiquette de texte et bouton.
  4. Correction du formatage de certaines statistiques dans les rapports de trading, qui pouvaient auparavant être arrondies de manière incorrecte.
  5. Correction du calcul du "bénéfice total" et de la "perte totale" dans les rapports de trading. Ces valeurs incluent désormais les commissions et les swaps.
  6. Correction de la sauvegarde de l'état de la barre d'outils pour les graphiques flottants. Les barres d'outils cachées pouvaient réapparaître après le redémarrage de la plateforme.
  7. Correction du chargement des paramètres des instruments de trading personnalisé à partir de fichiers JSON. En particulier, les paramètres de swap, les sessions de trading et les valeurs des ticks peuvent être importés de manière incorrecte.
  8. Ajout de l'affichage de l'instrument et de la période dans le titre de la fenêtre lors de l'exécution d'un script sur un graphique.



    Ajout de l'affichage de l'instrument et de la période dans le titre de la fenêtre lors de l'exécution d'un script sur un graphique.


  9. Correction de la duplication des instruments de trading dans l'infobulle affichée lors de la recherche d'instruments dans le Market Watch.
  10. Correction du rendu des polices Wingdings dans les graphiques.
  11. Correction du rendu des indicateurs affichés sous forme de chandeliers colorés (DRAW_COLOR_CANDLES) et de lignes colorées (DRAW_COLOR_LINE).
  12. Terminal : Ajout de la sortie d'un message de journal indiquant que le serveur du courtier utilise une version obsolète. Si la version du serveur est inférieure à la version 5200, publiée il y a 6 mois, un avertissement s'affiche :
    outdated server build - must be at least 5200, contact your broker please
    Le message est affiché à titre d'information uniquement et n'affecte pas la capacité à se connecter au serveur.
  13. Mise à jour des traductions de l'interface utilisateur.

MQL5

  1. La bibliothèque ONNX se charge désormais lors de la première exécution d'un programme MQL5 qui utilise ONNX, plutôt qu'avec la plateforme. Les mises à jour de la bibliothèque se font automatiquement.
  2. Ajout du support de CUDA pour ONNX. Si votre carte graphique prend en charge cette technologie, les performances de l'inférence du modèle seront considérablement améliorées. Nous recommandons vivement de mettre à jour les pilotes NVIDIA pour améliorer la stabilité et les performances.
    Les autorisations d'utilisation de CUDA peuvent être gérées dans les paramètres de la plateforme : 


    Gestion de CUDA dans les paramètres de la plateforme


  3. Mise à jour des flags dans l'énumération ENUM_ONNX_FLAGS. Ces indicateurs sont utilisés lors de la création et de l'exécution des modèles ONNX :

    Logs
    Au lieu de l'ancien ONNX_DEBUG_LOGS, les flags de logging suivants sont maintenant utilisés :

    • ONNX_LOGLEVEL_VERBOSE — enregistre tous les messages.
    • ONNX_LOGLEVEL_INFO — enregistre les messages d'information, les avertissements et les erreurs. Remplace l'ancien ONNX_DEBUG_LOGS.
    • ONNX_LOGLEVEL_WARNING — enregistre les avertissements et les erreurs. Utilisé par défaut.
    • ONNX_LOGLEVEL_ERROR — enregistre uniquement les erreurs.

    CUDA et Gestion des GPU
    L'indicateur ONNX_CUDA_DISABLE a été supprimé. Utilisez maintenant le nouveau flag ONNX_USE_CPU_ONLY. Lorsque cette option est activée, seul le processeur central (CPU) est utilisé pour l'exécution du modèle.

    Des flags ont été ajoutés pour sélectionner le périphérique GPU sur lequel le modèle sera exécuté :

    • ONNX_GPU_DEVICE_0
    • ONNX_GPU_DEVICE_1
    • ONNX_GPU_DEVICE_2
    • ONNX_GPU_DEVICE_3
    • ONNX_GPU_DEVICE_4
    • ONNX_GPU_DEVICE_5
    • ONNX_GPU_DEVICE_6
    • ONNX_GPU_DEVICE_7

    Utilisez ces flags si le système possède deux périphériques CUDA ou plus. Si plusieurs flags sont spécifiés, le périphérique ayant l'indice le plus bas sera sélectionné.

    Profilage du Modèle
    Nous avons ajouté l'option ONNX_ENABLE_PROFILING pour activer le profilage d’un modèle ONNX.

    Lorsqu'un modèle est démarré avec ce flag activé, un fichier de rapport de profilage portant le nom : [nom du fichier EX5]_[date]_[heure].json sera créé dans le dossier /MQL5/Files/OnnxProfileReports/.

  4. Augmentation de la limite des fichiers pouvant être inclus dans un programme en tant que ressource. La nouvelle limite est de 1 Go, ce qui vous permet d'inclure des modèles ONNX de grande taille dans des projets. 
  5. Amélioration de la stabilité des opérations OpenCL.
  6. Ajout de la méthode ReplaceToZero. Elle remplace les petites valeurs d'une matrice ou d'un vecteur par des valeurs nulles et renvoie le nombre d'éléments remplacés.
  7. Ajout de nouvelles méthodes OpenBLAS :

    • FactorizationLDLComplexSyRaw — calcule la factorisation d'une matrice complexe en utilisant la méthode de pivotement diagonal de Bunch-Kaufman.
    • LDLComplexSyLinearEquationsSolution — résout un système d'équations linéaires A * X = B avec une matrice indéfinie symétrique complexe en utilisant la factorisation A = U**T * D * U ou A = L * D * L**T calculée par FactorizationLDLComplexSyRaw, avec plusieurs côtés droits.
    • LDLComplexSyInverse — calcule l'inverse d'une matrice indéfinie symétrique complexe en utilisant la factorisation A = U**T * D * U ou A = L * D * L**T calculée par FactorisationLDLComplexSyRaw.
    • LDLComplexSyCondNumReciprocal — estime la réciproque du nombre de condition d'une matrice indéfinie réelle symétrique ou complexe hermitienne A, en utilisant la factorisation LDLT calculée par FactorizationLDLRaw.

  8. Ajout de la fonction ColorToPRGB. Elle convertit le type de couleur en uint pour obtenir une représentation des couleurs PRGB. Ce format est utilisé lors de la création de ressources graphiques, du rendu de texte et dans la classe CCanvas de la bibliothèque standard lors de l'utilisation du format de couleur COLOR_FORMAT_ARGB_RAW.
    uint  ColorToPRGB(
       color  clr,          // the color to be converted, in 'color' format
       uchar  alpha=255     // the alpha channel that controls color transparency
    );
    La couleur PRGB est calculée à l'aide de la formule suivante :
    R = R * A / 255
    G = G * A / 255
    B = B * A / 255
    A = A
  9. Correction du réglage du texte dans le code pour les objets OBJ_LABEL, OBJ_TEXT, OBJ_BUTTON et OBJ_EDIT. Le texte peut ne pas s'afficher dans certaines conditions.
  10. Correction de la définition des couleurs pour les objets graphiques utilisant ObjectSetInteger. La valeur clrNONE pouvait auparavant être ignorée.
  11. Correction du blocage de la fonction Bars lorsqu'aucun historique des prix n'est disponible sur le serveur.
  12. Correction de la recherche de variables globales dans les champs d'application. Auparavant, les variables à l'intérieur d'un espace de noms ne pouvaient pas avoir les mêmes noms que les variables de niveau global.
  13. Correction du fonctionnement de l'attribut final. La tentative de remplacement d'une fonction marquée comme "final" produit désormais correctement une erreur de compilation.
  14. Correction de faux avertissements du compilateur qui se produisaient lors de l'utilisation de déclarations de fonctions dans des fichiers *.mqh inclus sans la directive #import. Le compilateur gère désormais correctement ces déclarations et ne requiert pas #import si les fonctions ne sont pas importées d'une DLL.

    Exemple

    Fichier utils.mqh : 
    // Function forward declaration
    double CalcLot(double risk, double stop);
    Fichier expert.mq5 :
    #include "utils.mqh"
    
    double CalcLot(double risk, double stop)
      {   
       return risk / stop;
      }
    Auparavant, le compilateur pouvait émettre un avertissement indiquant que la fonction CalcLot dans utils.mqh ne comportait pas la directive #import, même si la fonction est définie par l'utilisateur et implémentée dans le code du projet. Ce code se compile désormais sans avertissement. La directive #import n'est requise que pour les fonctions effectivement importées de DLL externes. 

MetaEditor

  1. Correction des erreurs de mémoire insuffisante lors de l'utilisation de fichiers sources volumineux (mégaoctets).
  2. Correction de l'affichage des valeurs et des noms d'énumération dans la fenêtre du Market Watch pendant le débogage.

Testeur

  1. Correction de la fin des tests pour les Experts Advisors en boucle. Même en cas de boucle infinie, le fait d'appuyer sur "Stop" interrompt désormais immédiatement l'exécution.
  2. Correction de l'appel à EventChartCustom lors des tests visuels. Auparavant, l'événement pouvait être envoyé deux fois par erreur.
  3. Correction de la vérification du niveau de gel (SYMBOL_TRADE_FREEZE_LEVEL) lors de la suppression d'ordres en attente nouvellement placés.
  4. Correction de l'export des données de tests préalables. Lors de l'export d'un test n'utilisant pas le mode en avant (forward), les données des tests en avant précédents pouvaient parfois être sauvegardées.

Terminal Web

  1. Ajout de l'affichage du profit/de la perte approximatif(le) en monnaie lors de la définition du Stop Loss ou du Take Profit sur le graphique.


    Ajout de l'affichage du profit/perte approximatif en monnaie


  2. Affichage fixe des spécifications des symboles pour les instruments comportant des caractères spéciaux.
  3. Correction de l'affichage des prix négatifs dans les boîtes de dialogue des trades.
  4. Correction de l'affichage des métriques financières du compte dans les cas où la devise de dépôt a une précision supérieure à 2 décimales.

13 novembre 2025
Nouvelle plateforme MetaTrader 5 Build 5430 : Graphiques améliorés grâce à Blend2D

Terminal

  1. Mise à jour du noyau de rendu des graphiques. L'ancien framework GDI a été remplacé par le moteur moderne Blend2D.

    De meilleures performances
    Blend2D utilise une architecture de rendu moderne et exploite efficacement les processeurs multicœurs, ce qui garantit un rendu fluide des graphiques et des indicateurs, même avec un grand nombre d'objets.

    Accélération matérielle et optimisation du processeur
    Optimisé pour les jeux d'instructions modernes (SSE, AVX), Blend2D accélère considérablement la visualisation par rapport à GDI, qui ne prend pas en charge ces optimisations.

    Graphiques nets et fluides
    L'anticrénelage avancé et la gestion précise des couleurs permettent d'obtenir des lignes fluides, des transitions douces et des graphiques visuellement nets, ce qui est particulièrement visible lors des zooms ou de l'utilisation d'écrans haute résolution (HiDPI, 4K).

    Effets modernes et transparence
    Blend2D prend en charge la composition alpha et les opérations avancées sur les couleurs, ce qui permet d'obtenir des éléments semi-transparents, des ombres et d'autres effets graphiques modernes.

    Rendu unifié et stable
    Blend2D offre un rendu cohérent sur tous les systèmes, indépendamment de la version du système d'exploitation ou de la configuration du pilote vidéo.


    Les graphiques sont maintenant rendus en utilisant le nouveau moteur Blend2D


MQL5

  1. Ajout de méthodes matricielles permettant d'effectuer des calculs d'algèbre linéaire de niveau 2 (matrice-vecteur) : BLAS niveau 2 :

    • BlasL2GeMV — produit matrice-vecteur
    • BlasL2GeR — mise à jour du rang 1
    • BlasL2GeRC — Mise à jour conjuguée de rang 1
    • BlasL2SyMV — produit matrice-vecteur pour une matrice symétrique
    • BlasL2SyR — mise à jour de rang 1 d'une matrice symétrique
    • BlasL2SyR2 — mise à jour de rang 2 d'une matrice symétrique
    • BlasL2HeMV — produit matrice-vecteur pour une matrice hermitienne
    • BlasL2HeR — mise à jour conjuguée de rang 1 d'une matrice hermitienne
    • BlasL2HeR2 — mise à jour conjuguée de rang 2 d'une matrice hermitienne
    • BlasL2TrMV — un produit matrice-vecteur utilisant une matrice triangulaire

  2. Ajout de méthodes matricielles permettant d'effectuer des calculs d'algèbre linéaire de niveau 3 (matrice-vecteur) : BLAS niveau 3:

    • BlasL3GeMM — produit matrice-matrice pour les matrices générales
    • BlasL3SyMM — produit matrice-matrice lorsque la matrice d'entrée A est symétrique
    • BlasL3HeMM — produit matrice-matrice où la matrice d'entrée A est hermitienne
    • BlasL3TrMM — produit matrice-matrice où la matrice d'entrée A est triangulaire
    • BlasL3SyRK — mise à jour symétrique du rang-k
    • BlasL3HeRK — mise à jour du rang-k hermitien
    • BlasL3SyR2K — mise à jour symétrique de rang 2k
    • BlasL3HeR2K — mise à jour du rang 2k hermitien

  3. Correction d'un problème de WebRequest qui pouvait, dans certains cas, entraîner l'interruption de la connexion avec un hôte distant.
  4. Correction d'un crash rare qui pouvait se produire lorsque les variables n'étaient pas initialisées.
  5. Correction d'un crash rare qui pouvait se produire lors de l'utilisation de la fonction IntegerToString.

Testeur

  1. Correction de la duplication des événements personnalisés lorsque EventChartCustom était appelé lors des tests visuels.
  2. Correction du comportement de IsStopped lors de l'arrêt forcé d'un test.

Terminal Web

  1. Ajout de la possibilité de changer le mode d'affichage du volume dans le carnet d’ordres. Le bouton situé sur le panneau supérieur permet de visualiser les volumes en lots ou en unités.


    Changement du mode d'affichage du volume dans le carnet d’ordres


  2. Correction du gel lors de l'affichage du carnet d'ordres sur les appareils mobiles.
  3. Correction de l'affichage du prix actuel dans la boîte de dialogue de trading lorsqu'une opération échoue (par exemple, fonds insuffisants). Auparavant, un prix nul pouvait être indiqué dans ce cas.
  4. Amélioration de la sécurité du stockage des données dans le navigateur. 
16 octobre 2025
Mise à jour de la plateforme MetaTrader 5 Build 5370 : Améliorations du Terminal Web

Terminal Web MetaTrader 5

  1. Ajout de l'affichage des dates de début et de fin de contrat dans les spécifications de l'instrument :


    Dates de début et de fin de contrat


  2. Correction de l'indication retard du prix dans la section "Cotations". Sur les appareils mobiles, il se peut que l'icône correspondante n'apparaisse pas en mode d'affichage étendu.


    Cotations retardées


  3. Correction de l'affichage du menu de sélection des périodes. Le problème se produit en vue horizontale sur les appareils mobiles.
  4. Correction de l'affichage des types de comptes disponibles dans la fenêtre de création d'un compte de démo.
  5. Correction des problèmes de localisation dans la fenêtre de connexion au compte. Certains éléments pourraient n'apparaître qu'en anglais.
3 octobre 2025
Plateforme MetaTrader 5 Build 5326 : Améliorations et corrections

Terminal

  1. Ajout d'une vérification de la longueur du mot de passe lors de la connexion à un compte pour la première fois après la migration depuis MetaTrader 4. Le système vérifie désormais correctement la complexité du nouveau mot de passe.
  2. Correction de l'affichage de la colonne "ID" (identifiant dans un système externe) dans la liste des positions ouvertes. La colonne n'apparaîtra désormais que si au moins une des opérations de la liste possède un identifiant associé.

MQL5

  • Résolution d'un problème avec la génération de constructeurs implicites et d'opérateurs de copie pour les structures et les classes. Dans certains cas, cela pouvait conduire à des échecs critiques dans les programmes MQL.
25 septembre 2025
Mise à jour de la plateforme MetaTrader 5 Build 5320 : Services dans CodeBase et opérations de saisie améliorées dans MQL5
Le build 5320 est la dernière mise à jour à prendre en charge Windows 7, Windows 8, Windows 8.1 et Windows Server 2008. À partir de la prochaine version, les plateformes de bureau exécutées sur ces systèmes d'exploitation ne recevront plus de mises à jour. La seule exception concerne les plateformes fonctionnant sous Wine.


Terminal

  1. Ajout de la prise en charge des programmes de type Service MQL5 dans la base de code.

    Contrairement aux Expert Advisors, aux indicateurs et aux scripts, les services ne sont pas attachés à un graphique spécifique. Ils s'exécutent en arrière-plan et démarrent automatiquement au lancement du terminal. Grâce aux services, vous pouvez implémenter des flux de données de prix personnalisés pour la plateforme, et aussi effectuer un large éventail de tâches auxiliaires.

    Ces programmes disposent désormais d’une catégorie dédiée. Les développeurs peuvent partager leurs codes dans la CodeBase :


    Partagez votre code dans la bibliothèque


    Les utilisateurs peuvent facilement les télécharger directement depuis la plateforme ou MetaEditor. Une fois téléchargé, le programme est placé dans le bon dossier, compilé automatiquement et prêt à être exécuté :


    Téléchargez les codes directement depuis la plateforme


  2. Correction d'un problème où les fichiers des graphiques fermés (supprimés) étaient déplacés vers le mauvais répertoire. De ce fait, les utilisateurs ne pouvaient pas restaurer ces graphiques via le menu « Fichier \ Ouvrir les éléments supprimés ».

MQL5

  1. Ajout de la prise en charge d'une nouvelle syntaxe pour les paramètres d'entrée. Vous pouvez désormais définir explicitement un nom visible à afficher dans les propriétés du programme. Auparavant, cela n’était possible que via les commentaires.

    Au lieu de la syntaxe obsolète :
    input int InpVar;  /*visible name*/ // some comment
    Utilisez le nouveau format :
    input(name="visible name") int InpVar;  // some comment
    Le nom de la variable visible est défini dans le paramètre « name », qui accepte uniquement des chaînes de caractères.

    Lorsque la nouvelle syntaxe d'entrée est utilisée, tous les commentaires suivant la déclaration de variable sont ignorés. L'ancienne syntaxe reste prise en charge et n'est pas obsolète. Vous pouvez continuer à l'utiliser et le compilateur ne générera pas d'avertissements.

  2. Correction d'une erreur où le compilateur pouvait produire de manière incorrecte le message « la fonction doit avoir un corps ».

MetaEditor

Testeur

  • Correction d'une erreur lors du test des indicateurs. Le processus pouvait ne pas démarrer si le nom de l’indicateur correspondait au nom d’un modèle de graphique.

Terminal Web

  1. Ajout de traductions roumaines et hébraïques pour l'interface utilisateur ; traductions améliorées dans la fenêtre de connexion au compte.
  2. Correction de l'affichage du menu des objets dans la version mobile.
  3. Correction de l'affichage du volume minimum et de l'étape de volume dans les spécifications du contrat.
5 septembre 2025
Nouvelle version de la Plateforme MetaTrader 5 Build 5260 : Améliorations dans Algo Forge et nouvelles règles d'héritage dans MQL5

Terminal

  1. Correction de l'affichage des paramètres de marge dans les spécifications des symboles de trading. Auparavant, en cas d'utilisation d'un effet de levier flottant (par exemple, calculé sur la base du volume de la position du compte), les paramètres de marge dans les spécifications du contrat pouvaient être affichés de manière incorrecte.
  2. Correction du tri du carnet d'ordres pour les symboles dont les prix négatifs sont autorisés. Les ordres avec des prix positifs, négatifs et nuls sont désormais affichés correctement et dans l'ordre. 
  3. Le guide de l'utilisateur du terminal comprend désormais une nouvelle section Comment le Testeur télécharge les données historiques. Il résume les points clés nécessaires pour comprendre comment le Testeur de Stratégie fonctionne avec l'historique de trading. Pour garantir la stabilité des calculs, le testeur charge toujours une "mémoire tampon de l'historique avant le démarrage" :
    • D1 et moins — à partir du début de l'année civile précédente. Cela permet de disposer d'un historique d'au moins 1 an. Exemple : si la date de début du test est le 01/03/2023, le terminal téléchargera depuis le terminal les données depuis le 01/01/2022. Cela équivaut à 14 mois avant le début du test.
    • W1 — au moins 100 barres hebdomadaires (~2 ans).
    • MN1 — au moins 100 barres mensuelles (~8 ans).

    Si l'historique disponible est insuffisant, le testeur avance automatiquement la date de début réelle au point le plus proche répondant aux exigences.

    Dans ce cas, les tests commencent plus tard que la date spécifiée par l'utilisateur. Le journal du testeur affichera un message correspondant, par exemple :

    start time changed to 2024.03.15 00:00 to provide data at beginning


MQL5 

  1. Ajout de 5 nouvelles méthodes OpenBLAS dans la section Matrix Balance, élargissant la fonctionnalité pour les matrices carrées. Le nouvel ensemble de fonctions fournit :
    • L’équilibrage des matrices pour une meilleure précision dans les calculs des valeurs propres
    • Les transformations arrière des vecteurs propres
    • La réduction à la forme de Hessenberg et à la décomposition de Schur, y compris la génération de matrices orthogonales

    Ces méthodes offrent aux développeurs un cycle de transformation complet, de la préparation préliminaire de la matrice au calcul précis et stable du spectre.

    Les méthodes sont basées sur des algorithmes LAPACK (GEBAL, GEBAK, GEHRD, ORGHR, HSEQR), ce qui garantit des performances et une fiabilité élevées :

    • MatrixBalance : Équilibre une matrice réelle ou complexe générale en permutant les lignes et les colonnes et en appliquant des transformations de similarité diagonale. L'équilibrage peut réduire la norme 1 de la matrice et améliorer la précision des valeurs propres et/ou des vecteurs propres calculés (fonction LAPACK GEBAL).
    • EigenVectorsBackward : Forme les vecteurs propres de droite ou de gauche d'une matrice générale réelle ou complexe par transformation à rebours des vecteurs propres calculés de la matrice équilibrée (fonction LAPACK GEBAK). 
    • ReduceToHessenbergBalanced : Réduit une matrice équilibrée générale réelle ou complexe à la forme de Hessenberg supérieure par une transformation de similarité orthogonale (fonction LAPACK GEHRD).
    • ReflectHessenbergBalancedToQ : Génère la matrice orthogonale Q qui est définie comme le produit des réflecteurs élémentaires d'ordre n générés par la réduction à la forme de Hessenberg (fonction LAPACK ORGHR).
    • EigenHessenbergBalancedSchurQ : Calcule les valeurs propres d'une matrice de Hessenberg et les matrices T et Z de la décomposition de Schur ; en option, calcule la factorisation de Schur d'une matrice d'entrée réduite à la forme de Hessenberg (fonction LAPACK HSEQR).


  2. Ajout de 2 nouvelles méthodes dans la section Valeurs propres. Les deux fonctions calculent efficacement les vecteurs propres après la décomposition de Schur, complétant ainsi l'ensemble des outils d'algèbre linéaire de MQL5 :

    • EigenVectorsTriangularZ : Calcule les vecteurs propres d'une matrice réelle quasi-triangulaire supérieure ou triangulaire supérieure complexe (forme de Schur). Utilise la décomposition A = Q - T - Qᴴ (fonction LAPACK TREVC). Offre une grande précision.
    • EigenVectorsTriangularZBlocked : Version en bloc pour le calcul des vecteurs propres d'une matrice réelle quasi-triangulaire supérieure ou triangulaire supérieure complexe (fonction LAPACK TREVC3). Plus rapide mais moins précis.


  3. Introduction d'un changement important dans l'héritage avec la nouvelle règle de dissimulation des méthodes

    Auparavant, si une classe ou une structure dérivée définissait une méthode portant le même nom que dans la classe de base, la surcharge était effectuée : toutes les versions (du parent et de l'enfant) étaient disponibles dans la classe dérivée. Or, les méthodes portant le même nom dans une classe dérivée cachent les méthodes de la classe de base (method hiding).

    Pour appeler une méthode cachée de la classe de base, vous devez spécifier explicitement sa portée lors de l'appel :
    class Base
      {
    public: 
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");    // call of Derived::Print(string)
       d.Print(10);        // ATTENTION! Calling Derived::Print(string) since Base::Print is hidden (inaccessible)
       d.Base::Print(10);  // explicit call to hidden parent method
      }
    Depuis un certain temps, le compilateur MQL5 émet un avertissement si une méthode de base cachée correspond mieux aux paramètres de l'appel que la méthode dérivée disponible. Exemple pour le code ci-dessus d.Print(10) :
    call resolves to 'void Derived::Print(string)' instead of 'void Base::Print(int)' due to new rules of method hiding
       see declaration of function 'Derived::Print'
       see declaration of function 'Base::Print'
    implicit conversion from 'number' to 'string'

  4. Ajout de l'opérateur using pour restaurer les surcharges des méthodes de la classe de base.

    Pour contrôler ce nouveau comportement, MQL5 introduit l'opérateur 'using'. Il permet de "tirer" toutes les surcharges d'une méthode du type de base dans la portée d'une classe ou d'une structure :
    class Base
      {
    protected:
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
       using Base::Print;  // return Print overloads from Base
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");   // Derived::Print(string)
       d.Print(42);       // Base::Print(int)
       d.Print(3.14);     // Base::Print(double)
      }
    Si "using Base::Print ;" est supprimé, les appels à d.Print(42) et d.Print(3.14) seront indisponibles ; seul Derived::Print(string) subsistera.

    Dans cet exemple, vous pouvez également voir que les méthodes protégées de la classe de base deviennent accessibles dans la classe dérivée (leur visibilité passe de protégée à publique).

    Les développeurs disposent ainsi d'un contrôle plus souple et plus prévisible sur les hiérarchies de classes, ce qui leur permet de définir précisément quelles surcharges de méthodes de la classe de base doivent rester accessibles dans les types dérivés.

MetaEditor

  1. Calculs de hachage SHA-1 accélérés pour les opérations Git dans Algo Forge. L'amélioration des performances est supérieure à 40% pour les opérations en masse.
  2. Correction des vérifications de modification de fichiers pour les opérations Git. Si seule l'heure de modification change mais que le contenu du fichier reste le même, le fichier n'est plus considéré comme modifié. Cela permet d'éliminer les fausses détections et d'éviter les conflits avec les dépôts distants.


Algo Forge

Publication du Guide de l'Utilisateur MQL5 Algo Forge. Il met en évidence tous les avantages clés de Git sans complexité inutile :
  1. un stockage fiable de l'historique des versions et des branchements,
  2. l'expérimentation rapide et la fusion sûre des modifications,
  3. créer votre propre dépôt ou forker les projets d'autres développeurs en un seul clic,
  4. une collaboration transparente au sein de l'équipe avec un suivi des contributions,
  5. un catalogue de projets ouverts offrant la possibilité d'apprendre des autres.


    Cloner le projet d'un autre développeur
    Ouvrez le projet que vous souhaitez cloner sur forge.mql5.io et cliquez sur Fork. Saisissez un nom et une description pour le fork et enregistrez.

    Cloner un projet

    Dans MetaEditor, en utilisant le même compte MQL5, exécutez la commande Rafraîchir dans le Navigateur. Votre fork apparaîtra dans le dossier Projets partagés. Téléchargez-le depuis Algo Forge en utilisant Git Clone. Vous recevrez non seulement les fichiers du projet, mais aussi l'historique complet des livraisons et toutes les branches. Cela signifie que vous pouvez continuer à travailler sur le fork tout en conservant l'historique complet du projet cloné.  

    Commande Git Clone dans Algo Forge


Terminal Web

  1. Correction de l'affichage des sessions de trading et de cotation dans les spécifications des symboles.
  2. Correction de l'affichage des titlehttps://www.metatrader5.com/fr/terminal/help/trading/market_watch#specificationtitleparamètres de marge dans les spécifications des symboles.
  3. Correction de l'affichage des sessions de trading et de cotation dans les spécifications des symboles.
  4. Ajout de la prise en charge du type de compte Championnat. Ces comptes sont affichés en bleu, alors que les comptes de démonstration apparaissent en vert.
  5. Correction de l'exactitude des calculs de marge de l'effet de levier dans certaines conditions. 
  6. Correction d'un problème lors de l'ouverture d'un nouveau compte où le bouton "Suivant" ne permettait pas toujours de passer à l'étape suivante.
  7. Correction d'un problème où il n'était pas possible de placer un ordre limité entre les prix Bid et Ask pour une exécution en Bourse.
  8. Correction de l'affichage des prix d'exécution des ordres. Une fois l'ordre envoyé, les résultats de son exécution apparaissent dans la fenêtre : une opération réussie ou la raison pour laquelle l'ordre n'a pas été exécuté. Dans certains cas, le prix d'exécution était incorrectement indiqué comme étant "0".
  9. Correction d'un problème où le bouton de fermeture de la position rapide ne s'affichait pas.

    Bouton de fermeture de position

  10. Correction de l'affichage des devises des comptes de trading dans la fenêtre de sélection des comptes.
31 juillet 2025
Nouvelle version de la Plateforme MetaTrader 5 Build 5200 : Prise en charge étendue d'OpenBLAS et contrôle amélioré dans MQL5

Terminal

  1. Ajout de la possibilité d'appliquer automatiquement le thème clair ou sombre en fonction de vos paramètres Windows. Pour l'activer, sélectionnez la nouvelle option : Affichage \ Thèmes de couleurs \ Système. À chaque lancement de la plateforme, elle détectera le thème de votre système et s'ajustera en conséquence.


    Ajout de la possibilité d'appliquer automatiquement le thème clair ou sombre en fonction de vos paramètres Windows


  2. Correction des problèmes d'affichage avec les barres d'outils détachées de la fenêtre principale.
  3. Correction du calcul de la valeur de liquidation du portefeuille dans la section Actifs. Dans certains cas, les positions de certains instruments n’étaient pas comptabilisées.
  4. Correction de l'affichage des prix négatifs dans le Marketing Depth. Ceux-ci sont désormais triés correctement.
  5. Correction de l'import de l'historique des prix fixes pour les symboles personnalisés. Pour les instruments situés dans le dossier racine, les commandes correspondantes pouvaient auparavant être indisponibles.
  6. Mise à jour des traductions de l'interface utilisateur.

MQL5

  1. Ajout de nouvelles méthodes OpenBLAS :

    Réductions de Matrice

    • ReduceToHessenberg — réduit une matrice générale n-par-n réelle ou complexe A à la forme de Hessenberg supérieure B par une transformation de similarité orthogonale : Q**T * A * Q = H. Fonction LAPACK GEHRD.
    • ReflectHessenbergToQ — génère une matrice orthogonale Q qui est définie comme le produit de n-1 réflecteurs élémentaires d'ordre n, comme renvoyé par ReduceToHessenberg : Q = H(1) H(2) . . . H(n-1). Fonction LAPACK ORGHR.

    Valeurs propres et vecteurs propres

    • EigenHessenbergSchurQ — calcule les valeurs propres d'une matrice de Hessenberg H et des matrices T et Z à partir de la décomposition de Schur H = Z T Z**T, où T est une matrice quasi-triangulaire supérieure (la forme de Schur) et Z est la matrice orthogonale des vecteurs de Schur. Fonction LAPACK HSEQR.

    Equations Linéaires

    • SylvesterEquationTriangular — résout l'équation de Sylvester pour les matrices quasi-triangulaires réelles ou triangulaires complexes : op(A)*X + X*op(B) = scale*C ou op(A)*X - X*op(B) = scale*C où op(A) = A ou A**T ou A**H, et A et B sont tous deux triangulaires supérieurs. Fonction LAPACK TRSYL.
    • SylvesterEquationTriangularBlocked — résout l'équation de Sylvester pour les matrices quasi-triangulaires réelles ou triangulaires complexes : op(A)*X + X*op(B) = scale*C ou op(A)*X - X*op(B) = scale*C où op(A) = A ou A**T ou A**H, et A et B sont tous deux triangulaires supérieurs. Fonction LAPACK TRSYL3. Il s'agit de la version bloc (BLAS niveau 3) de TRSYL. Jusqu'à 5 fois plus rapide mais pas aussi précis.

    Calculs factorisés

    • SylvesterEquationSchur — résout l'équation de Sylvester pour les matrices quasi-triangulaires réelles ou triangulaires complexes : A*X + X*B = C où A et B sont tous deux triangulaires supérieurs. A est de dimensions m par m et B est de dimensions n par n ; le côté droit C et la solution X sont de dimensions m par n. Fonction LAPACK TRSYL.
    • SylvesterEquationSchurBlocked — résout l'équation de Sylvester pour les matrices quasi-triangulaires réelles ou triangulaires complexes : A*X + X*B = C où A et B sont tous deux triangulaires supérieurs. A est de dimensions m par m et B est de dimensions n par n ; le côté droit C et la solution X sont de dimensions m par n. Fonction LAPACK TRSYL3. Il s'agit de la version bloc (BLAS niveau 3) de TRSYL. Jusqu'à 5 fois plus rapide mais pas aussi précis.

    Calculs de normes matricielles

    • MatrixNorm — renvoie la valeur de la norme 1, de la norme infinie, de la norme de Frobenius ou la plus grande valeur absolue de tout élément d'une matrice rectangulaire générale. Fonction LAPACK LANGE.
    • MatrixNormGeTrid — renvoie la valeur de la norme 1, de la norme infinie, de la norme de Frobenius ou la plus grande valeur absolue de tout élément d'une matrice tridiagonale générale. Fonction LAPACK LANGT.
    • MatrixNormHessenberg — renvoie la valeur de la norme 1, de la norme infinie, de la norme de Frobenius ou la plus grande valeur absolue de tout élément d'une matrice de Hessenberg supérieure. Fonction LAPACK LANHS.
    • MatrixNormSy — renvoie la valeur de la norme 1, de la norme infinie, de la norme de Frobenius ou la plus grande valeur absolue de tout élément d'une matrice hermitienne symétrique ou complexe réelle. Fonctions LAPACK LANSY, LANHE.
    • MatrixNormComplexSy — renvoie la valeur de la norme 1, de la norme infinie, de la norme de Frobenius ou la plus grande valeur absolue de tout élément d'une matrice symétrique complexe (non hermitienne). Fonction LAPACK LANSY.
    • MatrixNormSyTrid — renvoie la valeur de la norme 1, de la norme infinie, de la norme de Frobenius ou la plus grande valeur absolue de tout élément d'une matrice tridiagonale hermitienne symétrique ou complexe réelle. Fonctions LAPACK LANST, LANHT.
    • MatrixNormTriangular — renvoie la valeur de la norme 1, de la norme infinie, de la norme de Frobenius ou la plus grande valeur absolue de tout élément d'une matrice trapézoïdale m par n ou triangulaire. Fonction LAPACK LANTR.

    Classification matricielle

    • IsSymmetric — vérifie si une matrice carrée est symétrique.
    • IsHermitian — vérifie si une matrice complexe carrée est hermitienne.
    • IsUpperTriangular — vérifie si une matrice carrée est triangulaire supérieure.
    • IsLowerTriangular — vérifie si une matrice carrée est triangulaire inférieure.
    • IsTrapezoidal — vérifie si une matrice rectangulaire (et non carrée) m par n est trapézoïdale supérieure ou inférieure.
    • IsUpperHessenberg — vérifie si une matrice carrée est une matrice de Hessenberg supérieure.
    • IsLowerHessenberg — vérifie si une matrice carrée est une matrice de Hessenberg inférieure.
    • IsTridiagonal — vérifie si une matrice carrée est tridiagonale.
    • IsUpperBidiagonal — vérifie si une matrice carrée est bidiagonale supérieure.
    • IsLowerBidiagonal — vérifie si une matrice carrée est bidiagonale inférieure.
    • IsDiagonal — vérifie si une matrice carrée est diagonale.
    • IsScalar — vérifie si une matrice carrée est une matrice scalaire.

  2. Ajout de la méthode Conjugate pour les matrices et vecteurs complexes. Cette méthode change le signe de la partie imaginaire d'un nombre complexe et renvoie la matrice ou le vecteur modifié.
  3. Méthode renforcée masquant les règles. Lorsqu'une classe dérivée contient une méthode portant le même nom qu'une méthode de la classe de base, la version de la classe dérivée est désormais appelée par défaut. Pour appeler explicitement la méthode de la classe de base, un qualificateur est désormais requis :
    struct A
      {
       int y;
      
       string func(double x)
         {
          return(__FUNCSIG__);
         }
      };
      
    struct B : public A
      {
       string func(int x)   // the method hides A::func
         {
          return(__FUNCSIG__);
         }
      };
      
    void OnStart(void)
      {
       B b;
       b.func(M_PI);          // according to new rules, it is a call to B::func
       b.A::func(M_PI);       // call the hidden method A::func
      }
    Ce changement simplifie la lisibilité du code et élimine l’ambiguïté qui n’était auparavant accompagnée que d’un avertissement du compilateur.

    Auparavant, la compilation générait un avertissement :
    deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
    Ce changement est désormais effectif.

    Pour un certain nombre de builds, un avertissement apparaîtra toujours dans le journal si une méthode cachée plus appropriée est disponible en fonction des paramètres :
    call resolves to 'string B::func(int)' instead of 'string A::func(double)' due to new rules of method hiding
       see declaration of function 'B::func'
       see declaration of function 'A::func'
    truncation of constant value from 'double(3.141592653589793)' to 'int(3)'
  4. Les noms en double au sein d'une même portée sont désormais interdits. Par exemple, il était auparavant possible de déclarer un paramètre d’entrée et une fonction portant le même nom dans un seul fichier. Une telle duplication n'est plus autorisée :
    input int somename=42;
    
    int somename(int x)
      {
       return(42);
      }
  5. Ajout d'une vérification de type stricte pour les valeurs par défaut dans les énumérations. Pour les paramètres de fonction acceptant une énumération, non seulement la valeur mais également le type exact doivent désormais correspondre :
    int somename(ENUM_TIMEFRAMES TF=PERIOD_CURRENT);
    
    int somename(ENUM_TIMEFRAMES TF=0)   // error, type mismatch for the default parameter value, despite having the same value
      {
       return(42);
      }
  6. Les identifiants identiques sont désormais interdits dans différentes énumérations. Un identifiant déclaré dans une énumération ne peut plus être réutilisé dans une autre au sein de la même portée :
    enum A
      {
       Value
      };
      
    enum B
      {
       Value  // error, name 'Value' is already used in enumeration A
      };
      
    void OnStart(void)
      {
       enum C
         {
          Value // OK, 'Value' is not used within the OnStart scope
         };
      }
    Les noms correspondant peuvent toutefois être utilisés dans différentes portées.

  7. Introduction d’exigences plus strictes pour les fonctions d’initialisation de modèle. Lors de la création de matrices/vecteurs à l'aide de fonctions d'initialisation, les fonctionnalités suivantes sont désormais désactivées :

    • Déduction automatique de type dans les templates de fonctions
    • Valeurs des paramètres par défaut

    Tous les paramètres et arguments du modèle doivent désormais être spécifiés explicitement : 
    template<typename T>
    void Initializer(matrix<T>& mat,int method=0);
    
    matrix<double> A(10,10,Initializer,42);          // error, Initializer must be explicitly typed
    matrix<double> A(10,10,Initializer<double>);     // error, missing 'method' parameter (default values no longer supported)
    matrix<double> A(10,10,Initializer<double>,42);  // OK
  8. Amélioration de la prise en charge ONNX. Ajout d'une conversion implicite des types signés lors du passage de tableaux ulong aux fonctions, simplifiant l'intégration MQL5 avec les modèles ONNX.
    OnnxSetInputShape( … , ulong_array );
    OnnxSetOutputShape( … , ulong_array );
  9. Affichage fixe des types dans les avertissements du compilateur liés aux conversions de chaînes implicites.
  10. Package d'intégration Python mis à jour. Pour installer la mise à jour, exécutez la commande :
    pip install --upgrade MetaTrader5

MetaEditor

  1. Correction de la commande « Revenir à la révision » utilisée avec MQL5 Storage. L'évaluation des conflits entre les versions qui peuvent survenir lors d'une pération de restauration est désormais effectuée avant le début de l'opération. Si le retour en arrière n’est pas possible, l’opération est annulée.
  2. Mise à jour des traductions de l'interface utilisateur.

Testeur

  1. Correction de la fonction OrderCalcMarginpour les comptes avec le mode de calcul Exchange.
  2. Correction du basculement entre les graphiques lors des tests visuels des Expert Advisors multidevises.

Terminal Web

  1. Correction de la vérification de l'e-mail pendant l'enregistrement d’un compte préliminaire ou de démonstration. Dans certains cas, le champ de saisie du code de confirmation n'était pas affiché.
  2. Correction des problèmes de connexion de compte lors de l'utilisation du navigateur sur les appareils Huawei.
  3. Correction de la connexion aux comptes lors de l'utilisation de mots de passe à usage unique. Dans certains cas, le champ de saisie de l'OTP était manquant lors de la première tentative de connexion.
27 juin 2025
Nouveau MetaTrader 5 pour iPhone/iPad : Rapport de trading et indicateurs supplémentaires

Les dernières versions de l'application mobile MetaTrader 5 pour iOS introduisent une série de nouvelles fonctionnalités conçues pour aider les traders à rester au courant des marchés financiers où qu'ils soient.

  1. Ajout du rapport représentant les résultats des transactions dans un format visuel pratique. Il aide à évaluer les performances de trading, à optimiser les portefeuilles et à trouver des méthodes permettant de réduire les risques ainsi que d'améliorer la stabilité du trading. Pour analyser votre stratégie, accédez à la section Historique et appuyez sur l'icône de sélection de la période. Ensuite, sélectionnez la période et appuyez sur "Créer un rapport de transaction".


    Nouveau rapport d'activité


    Le rapport est divisé en onglets, chacun fournissant des informations agrégées :

    • Résumé — un aperçu du trading au fil du temps : profits et pertes globaux, montants des dépôts et des retraits, graphiques de solde, de croissance et de dividendes et autres résultats de trading.
    • Profit/perte — données sur les transactions gagnantes ou perdantes. Le paramètre est divisé en fonction des types d'opérations (manuelles, algorithmiques et par copie). Les résultats peuvent être analysés en termes de transactions ou d'argent par mois et par année.
    • Long/Short — ratio dynamique des achats et des ventes à des périodes déterminées, ainsi que la rentabilité des achats et des ventes.
    • Symboles — analyse des transactions par instruments financiers. Vous y verrez les symboles sur lesquels vous gagnez ou perdez, la fréquence à laquelle vous les négociez, les graphiques des transactions et les volumes monétaires pour ces symboles.
    • Risques — principales caractéristiques de risque de votre stratégie : graphiques de retrait et de rechargement de votre dépôt, ainsi que le ratio de transactions gagnantes et perdantes.

  2. Ajout des indicateurs ZigZag et Market Profile, ainsi que d'un nouveau type de graphique — le Heikin Ashi. Ces outils permettront d'améliorer l'analyse du marché et l'identification des tendances.

    Pour ajouter de nouveaux indicateurs, ouvrez le menu graphique, appuyez sur Fenêtre principale et sélectionnez-les dans la liste. ZigZag se trouve sous les indicateurs de tendance, et Market Profile appartient aux indicateurs de volume.


    Indicateurs Market Profile et ZigZag


    Pour afficher le graphique Heikin Ashi, appuyez sur le graphique et accédez aux paramètres.


    Graphique Heikin Ashi


  3. Ajout d'informations sur les transactions dans la Fenêtre des Données. Lorsque le pointeur est placé sur une barre contenant des transactions, la Fenêtre des Données affiche des informations générales sur la transaction : direction, ticket, volume, prix et résultat financier, ainsi que les prix et les valeurs des indicateurs.


    Fenêtre des données améliorée


  4. Ajout du mode rapide pour l'affichage de la Fenêtre des Données sur le graphique. Appuyez sur le graphique principal pendant plus d'une seconde pour activer le mode réticule ainsi que la Fenêtre des Données. Dès que vous relâchez votre doigt, le graphique revient en mode normal. Cela permet de visualiser rapidement les valeurs exactes des barres, des indicateurs et des transactions sans avoir à passer en mode réticule via le panneau supérieur.
  5. Ajout d'une commande distincte pour redimensionner et réorganiser les fenêtres d'indicateurs supplémentaires. La même action peut être effectuée en appuyant longuement sur la sous-fenêtre de l'indicateur sur le graphique. Le mode d'édition des sous-fenêtres a également été amélioré par l'ajout d'icônes pour plus de clarté.


    Nouvelle commande pour redimensionner et réorganiser les sous-fenêtres de l'indicateur


  6. Affichage optimisé de l'historique des transactions sur le graphique. L'application peut désormais afficher des milliers de transactions sans dégradation significative des performances.

    Installez la dernière version de l'application et débloquez des fonctionnalités de trading étendues :


    12 juin 2025
    Mise à jour de la plateforme MetaTrader 5 Build 5120 : Améliorations et corrections

    Terminal

    1. Correction des problèmes d'affichage de l'interface graphique lors de l'exécution sous Linux et sous macOS.
    2. Amélioration du mécanisme de mise à jour de la plateforme. La bibliothèque standard MQL5 ne sera plus entièrement écrasée lors des mises à jour : seuls les fichiers qui ont réellement changé seront remplacés.
    3. Ajout de la réinitialisation automatique du mode d'affichage plein écran au redémarrage de l'application. L'interface complète sera désormais affichée à chaque lancement.

    MQL5

    1. Activation du passage de tableaux avec un typage signé/non signé dans les fonctions suivantes :

      • ArraySwap
      • WebRequest
      • CryptEncode
      • CryptDecode
      • StringToCharArray
      • CharArrayToString
      • StringToShortArray
      • ShortArrayToString
      • StructToCharArray
      • CharArrayToStruct

    2. Correction de la récupération des états clés pour les programmes MQL sur le graphique actif à l'aide de la fonction TerminalInfoInteger.
    3. Correction de l’exécution de la fonction ArrayInitialize pour les tableaux d'énumération.

    MetaEditor

    1. Modèles disponibles mis à jour pour l’AI Assistant. Tous les modèles GPT-4.1 et 04-mini sont désormais pris en charge.
    2. Activation de la vérification stricte de l'état des fichiers dans le stockage MQL5 Storage. Les hachages de fichiers sont désormais vérifiés pour éviter les fausses indications. Auparavant, les fichiers sans modifications locales réelles par rapport à la version du référentiel pouvaient être marqués à tort avec une icône rouge.
    3. Mise à jour des traductions de l'interface utilisateur.

    5 juin 2025
    Nouvelle version de la Plateforme MetaTrader 5 Build 5100 : Passage à Git et au hub de développement MQL5 Algo Forge, thème sombre et améliorations de l'interface

    MetaEditor

    • Nous avons entièrement revu le stockage MQL5 Storage, en remplaçant Subversion par Git comme système de contrôle de version. Git est la norme mondiale pour les développeurs, offrant une fiabilité et une flexibilité accrues dans la gestion du code.

      • Branchements et merge flexibles – créez des branches distinctes pour les nouvelles fonctionnalités ou les expériences et fusionnez-les facilement avec la version principale du projet.
      • Opérations de dépôt plus rapides – contrairement à Subversion, Git stocke toutes les données localement, ce qui rend les validations, les changements de version et les comparaisons de modifications beaucoup plus rapides.
      • Possibilité de travailler hors ligne – pas besoin d'une connexion constante au serveur : validez les modifications localement et transférez-les dans un référentiel en ligne quand cela vous convient.
      • Suivi avancé des modifications – consultez facilement l'historique des versions, suivez les modifications à l'aide des timestamps et des auteurs, et revenez aux versions précédentes sans complications.
      • Fonctionnalité de fusion (merge) supérieure – des outils de comparaison et de fusion avancés permettent de minimiser les conflits et de rationaliser le développement collaboratif.

      Un nouveau niveau de développement collaboratif
      Avec la transition vers Git, nous introduisons MQL5 Algo Forge, un nouveau portail en ligne pour la gestion de projets. Plus qu'une simple liste de projets, il s'agit d'un véritable réseau social pour les développeurs – essentiellement GitHub pour les traders algorithmiques. Suivez des développeurs intéressants, créez des équipes et collaborez à des projets sans effort.




      Affichez les détails du projet : structure, fichiers, commits, branches, etc. Suivez les contributions individuelles, créez de la documentation et partagez les projets en ligne.




      Surveillez tous les changements de code : détecter les lignes nouvelles, modifiées et supprimées. En cas de problème, confiez les tâches aux développeurs directement au sein du projet.




      Pour améliorer la convivialité de Git, nous avons redessiné le Navigateur et la fenêtre active d'édition du code. Nous avons également introduit un menu Git dédié dans la barre d'outils de MetaEditor :




      Une documentation complète sur Git sera bientôt disponible.

    Terminal

    1. Ajout de la prise en charge d'un schéma de couleurs sombres pour tous les composants, y compris le terminal de trading, MetaEditor et le testeur visuel. Le thème sombre offre une expérience de développement plus confortable la nuit. Utilisez le menu Affichage pour passer d'un mode à l'autre :




      Tout en adaptant l'interface à différents thèmes, nous avons apporté de nombreuses améliorations à l'affichage des boîtes de dialogue, des menus, des panneaux et des boutons pour une expérience utilisateur plus confortable. Dans MetaEditor, les informations sur la position du curseur et l'indicateur du mode de saisie du texte (INS/OVR) sont désormais affichés dans le coin supérieur droit. La barre d'état inférieure a été supprimée pour économiser l'espace de travail.

    2. Ajout d'une option de location de VPS pour 12 mois. En achetant d'emblée un hébergement à long terme, vous économisez un tiers du coût total.


      Ajout d'une option de location de VPS pour 12 mois.


    3. Utilisation optimisée de la mémoire. Le terminal consomme désormais moins de ressources système, ce qui améliore ses performances.
    4. Affichage optimisé de l'historique des transactions du compte. La plateforme peut désormais afficher correctement des millions d'enregistrements.
    5. Ajout de la commande "Rétablir les paramètres par défaut" dans le menu Fenêtres. Il réinitialise tous les éléments de l'interface, y compris les graphiques, le Navigateur, le Testeur de Stratégie et d'autres, à leur position d'origine.
    6. Correction d'une erreur provoquant le blocage de la boîte de dialogue de modification de la position dans certaines conditions.
    7. Calcul de la valeur fixe pour les positions ouvertes avec des prix négatifs.
    8. Calculs de taux de marge fixes dans les spécifications de symboles de trading avec des prix négatifs.
    9. Correction du calcul des valeurs MFE et MAE actuelles et de l'affichage de leurs graphiques dans les rapports de trading.
    10. Correction de l'échelle des oscillateurs dans les sous-fenêtres graphiques. L'échelle verticale des oscillateurs est désormais affichée correctement.
    11. Correction de la visibilité des carnets d’ordres et des tableaux d'options lors du passage en mode plein écran.
    12. Ajout de l'affichage des tickets de position dans l'historique des transactions du compte. Utilisez le menu contextuel pour activer la colonne concernée.
    13. Correction du calcul de la valeur de liquidation dans l'onglet Exposition pour les contrats à terme et les options.
    14. Correction d'un problème lié à la copie dans le presse-papiers des données d'un compte nouvellement créé. Lors de la dernière étape de l'enregistrement d'un compte de démonstration ou préliminaire, l'utilisateur reçoit les détails de son compte : login, mots de passe, etc. Ils peuvent être copiés dans le presse-papiers pour être enregistrés dans un fichier séparé. La commande correspondante fonctionne désormais correctement sur macOS.
    15. Correction de l'affichage de la section "Journal VPS". La page pouvait afficher une erreur dans certaines conditions.
    16. Correction de la prise en charge des moniteurs HiDPI sous Linux.
    17. Mise à jour des traductions de l'interface utilisateur.

    MQL5

    1. Ajout de l'opérateur de multiplication de matrice @. Il suit les règles de l'algèbre linéaire et permet la multiplication des matrices et des vecteurs, ainsi que les produits scalaires (point) des vecteurs.

      Multiplication matricielle (matrice × matrice)
      matrix A(2, 3);
      matrix B(3, 2);
      matrix C = A @ B; // Result: Matrix C of size [2,2]
      Multiplication matricielle (matrice × vecteur)
      matrix M(2, 3);
      vector V(3);
      vector R = M @ V; // Result: Vector R of 2 elements
      Multiplication matricielle (vecteur x matrice)
      matrix M(2, 3);
      vector V(1, 2);
      vector R = V @ M; // Result: Vector R of 3 elements
      Multiplication scalaire (vecteur × vecteur)
      vector V1(1, 3), V2(1, 3);
      double r = V1 @ V2; // Result: Scalar
    2. Ajout du paramètre 'ddof' dans les méthodes Std, Var et Cov. Ce paramètre définit le nombre de degrés de liberté soustrait du dénominateur lors du calcul de l'écart-type. Pour Std et Var, le paramètre par défaut est 0, pour Cov il est 1.

      Comment ddof affecte le calcul :

      • Par défaut, ddof=0, ce qui signifie que l'écart-type de la population est calculé.
      • Si ddof=1, la fonction calcule l'écart type de l'échantillon, qui tient compte des tailles d'échantillon finies, couramment utilisé en statistique lors de l'analyse d'un sous-ensemble de données.

    3. Ajout de nouvelles méthodes OpenBLAS :

      Valeurs propres et vecteurs propres

      • EigenTridiagonalDC – calcule les valeurs propres et les vecteurs propres d'une matrice tri-diagonale symétrique à l'aide de l'algorithme de division et de conquête (fonction LAPACK STEVD).
      • EigenTridiagonalQR – calcule les valeurs propres et les vecteurs propres d'une matrice tri-diagonale symétrique à l'aide de l'algorithme QR (fonction LAPACK STEV).
      • EigenTridiagonalRobust – calcule les valeurs propres et les vecteurs propres d'une matrice tri-diagonale symétrique en utilisant l'algorithme MRRR (Multiple Relatively Robust Representations) (fonction LAPACK STEVR).
      • EigenTridiagonalBisect – calcule les valeurs propres et les vecteurs propres d'une matrice tri-diagonale symétrique à l'aide de l'algorithme de bissection (fonction LAPACK STEVX).
      • ReduceToBidiagonal – réduit une matrice générale réelle ou complexe m-par-n A à la forme bi-diagonale supérieure ou inférieure B par une transformation orthogonale : Q**T * A * P = B. Si m≥n, B est une matrice bi-diagonale supérieure ; sinon, B est bi-diagonale inférieure. (fonction LAPACK GEBRD).
      • ReflectBidiagonalToQP – génère les matrices orthogonales Q et P**T (ou P**H pour les types complexes) déterminées par la méthode ReduceToBidiagonal lors de la réduction d'une matrice réelle ou complexe A à la forme bi-diagonale : A = Q * B * P**T. Q et P**T sont définis comme des produits de réflecteurs élémentaires H(i) ou G(i) respectivement (fonctions LAPACK ORGBR, UNGBR).
      • ReduceSymmetricToTridiagonal – réduit une matrice symétrique réelle ou hermitienne complexe A à la forme tri-diagonale B par une transformation de similarité orthogonale : Q**T * A * Q = B (fonctions Lapack SYTRD, HETRD).
      • ReflectTridiagonalToQ – génère une matrice orthogonale Q définie comme le produit de n-1 réflecteurs élémentaires d'ordre n, tel que renvoyé par ReduceSymmetricToTridiagonal.

      • LinearEquationsSolution – calcule la solution du système d'équations linéaires avec une matrice à coefficients carrés A et plusieurs côtés droits.
      • LinearEquationsSolutionTriangular – calcule la solution du système d'équations linéaires avec une matrice de coefficient triangulaire carrée A et plusieurs côtés droits.
      • LinearEquationsSolutionSy – calcule la solution du système d'équations linéaires avec une matrice A conjuguée symétrique ou hermitienne et plusieurs côtés droits.
      • LinearEquationsSolutionComplexSy – calcule la solution du système d'équations linéaires avec une matrice symétrique complexe A et plusieurs côtés droits.
      • LinearEquationsSolutionGeTrid – calcule la solution du système d'équations linéaires avec une matrice A symétrique ou hermitienne conjuguée à définition positive et plusieurs côtés droits.
      • LinearEquationsSolutionSyPD – calcule la solution du système d'équations linéaires avec une matrice tri-diagonale générale (non symétrique) à coefficients A et plusieurs côtés droits.
      • LinearEquationsSolutionSyTridPD – calcule la solution du système d'équations linéaires avec une matrice symétrique tri-diagonale à coefficients définis positifs A et plusieurs côtés droits.
      • FactorizationQR – calcule la factorisation QR d'une matrice générale m par n : A = Q * R (fonction LAPACK GEQRF).
      • FactorizationQRNonNeg – calcule la factorisation QR d'une matrice générale m par n : A = Q * R, où R est une matrice triangulaire supérieure avec des entrées diagonales non négatives (fonction LAPACK GEQRFP).
      • FactorizationQRPivot – calcule la factorisation QR d'une matrice générale m par n avec pivotement des colonnes : A * P = Q * R (fonction LAPACK GEQP3).
      • FactorizationLQ – calcule la factorisation LQ d'une matrice générale m par n : A = L * Q (fonction LAPACK GELQF).
      • FactorisationQL – calcule la factorisation QL d'une matrice générale m par n : A = Q * L (fonction LAPACK GEQLF).
      • FactorizationRQ – calcule la factorisation RQ d'une matrice générale m par n : A = R * Q (fonction LAPACK GERQF).
      • FactorizationPLU – calcule une factorisation LU d'une matrice générale M par N A en utilisant le pivotement partiel avec des changements de ligne (fonction LAPACK GETRF).
      • FactorizationPLUGeTrid – calcule une factorisation LU d'une matrice tri-diagonale générale (non symétrique) N par N A en utilisant l'élimination avec pivotement partiel et les changements de ligne (fonction LAPACK GTTRF).
      • FactorizationLDL – calcule la factorisation d'une matrice réelle symétrique ou complexe hermitienne A en utilisant la méthode de pivotement diagonal de Bunch-Kaufman (fonctions LAPACK SYTRF et HETRF).
      • FactorisationLDLSyTridPD – calcule la factorisation d'une matrice tri-diagonale symétrique à définition positive ou, pour les données complexes, hermitienne à définition positive A (fonction LAPACK PTTRF).
      • FactorisationCholesky – calcule la factorisation d'une matrice réelle symétrique ou complexe hermitienne à définition positive A (fonction LAPACK POTRF).
      • FactorizationCholeskySyPS – calcule la factorisation de Cholesky avec pivotement complet d'une matrice réelle symétrique (hermitienne complexe) semi-définie positive n-par-n (fonction LAPACK PSTRF).

    4. Ajout de la fonction Random et de la méthode pour remplir les vecteurs et les matrices avec des valeurs aléatoires. Des valeurs aléatoires sont générées uniformément dans la plage spécifiée.
      static vector vector::Random(
        const ulong   size,       // vector length
        const double  min=0.0,    // min value
        const double  max=1.0     // max value
         );
      
      static matrix matrix::Random(
        const ulong   rows,       // number of rows
        const ulong   cols        // number of columns
        const float   min=0.0,    // min value
        const float   max=1.0     // max value
         );
    5. Ajout de la prise en charge d'alias supplémentaires pour les types entiers. Cela simplifiera le portage du code à partir d'autres langages tels que C et C++.

      Ces alias n'introduisent pas de nouveaux types mais fournissent des noms alternatifs pour les types existants dans MQL5. Ils peuvent être utilisés dans tous les contextes où les types de base sont applicables.

      • int8_t
      • uint8_t
      • int16_t
      • uint16_t
      • int32_t
      • uint32_t
      • int64_t
      • uint64_t

    6. Ajout de nouvelles fonctions pour détecter le schéma de couleurs du terminal :

      • Une nouvelle propriété TERMINAL_COLORTHEME_NAME a été ajoutée à l'énumération ENUM_TERMINAL_INFO_STRING. Utilisez cette propriété avec la fonction TerminalInfoString pour demander le schéma de couleurs du terminal. Valeurs possibles : Clair et Sombre.
      • De nouvelles propriétés THEME_COLOR_* ont été ajoutées à l'énumération ENUM_TERMINAL_INFO_INTEGER. Utilisez-les avec la fonction TerminalInfoInteger pour récupérer les couleurs d'éléments spécifiques de l'interface utilisateur.

      Pour détecter un changement de schéma de couleurs, utilisez le gestionnaire OnChartEvent. Lorsque le thème change, l'événement CHARTEVENT_CHART_CHANGE est déclenché 2 fois.

    7. Correction d'un bug qui provoquait le plantage de MetaEditor lors de la compilation de code contenant la méthode Array::Reserve. La méthode "Reserve" ne modifie pas la taille du tableau mais réserve de l'espace pour le nombre d'éléments spécifié afin d'éviter une réallocation de la mémoire lors de l'ajout de nouveaux éléments.
    8. Correction du comportement de la méthode Array::Push, qui ajoute de nouveaux éléments à la fin d'un tableau. Le problème s'est produit dans les tableaux dont l'espace tampon est pré-alloué.
    9. Résolution de problèmes dans les fonctions pour travailler avec OpenCL.

    MetaTester

    1. Accélération de l'optimisation des stratégies de trading.
    2. Correction d'un bug qui, dans certains cas, entraînait une utilisation excessive de la mémoire par les agents de test lors de l'exécution de tâches à partir du réseau MQL5 Cloud Network.

    Terminal Web

    1. Correction de l'option de sauvegarde du mot de passe dans la boîte de dialogue de connexion au compte.
    2. Correction des boutons de déplacement des graphiques. Dans certains cas, l'utilisation de ces boutons a fait disparaître le graphique.
    3. Correction de la validation du champ "Second prénom" dans le formulaire d'enregistrement d'un compte réel. Elle est désormais facultative.
    4. Correction de l'ouverture des comptes de démo. Dans certains cas, les utilisateurs ont été redirigés à tort vers le site web du courtier.
    5. Correction de la visibilité des boutons d'ouverture des comptes de démo et des comptes réels. Ces boutons sont désormais masqués si la fonction correspondante est désactivée par le courtier.
    6. Correction du comportement du champ "Dépôt" dans le formulaire d'ouverture de compte de démo.
    7. Correction de l'affichage du champ "Trading" dans la spécification du contrat.
    8. Correction du champ de recherche de symboles dans la fenêtre du "Market Watch". Le bouton "X" apparaît maintenant correctement pour quitter le mode de recherche.
    9. Correction de l'affichage d'une info-bulle pour le champ du code de confirmation de l'email dans le formulaire d'ouverture de compte.
    18 mars 2025
    MetaTrader 5 pour iPhone et iPad : Règle, objets texte pour les graphiques, et minuterie des barres

    Les dernières versions de l'application mobile MetaTrader 5 pour iOS introduisent une série de fonctionnalités graphiques pratiques, ainsi que d'importantes améliorations de la stabilité pour une expérience utilisateur plus fluide.

    1. Ajout d'un objet texte pour créer des étiquettes personnalisées sur les graphiques. Ouvrez le menu des objets graphiques et appuyez sur "Ajouter un texte". Saisissez ensuite le texte que vous souhaitez et sélectionnez un point sur le graphique pour placer l'étiquette. Un objet possède deux points : l'un pour se déplacer et l'autre pour ajuster la direction.



      Objet texte pour la création d'étiquettes personnalisées sur les graphiques



      Nous avons également ajouté un petit menu d'objets sur le graphique, qui apparaît en bas de l'écran immédiatement après la création d'un objet. Vous pouvez désormais modifier les propriétés les plus importantes sans avoir à naviguer dans le menu complet des objets.

    2. Ajout d'un compte à rebours qui affiche le temps restant jusqu'à la fermeture de la barre actuelle. Il fonctionne sur toutes les échelles de temps, de la minute à la journée. Cette fonction sera particulièrement utile aux traders dont les stratégies dépendent des ouvertures et fermetures de barres.

      Pour activer la minuterie, allez dans les paramètres du graphique. Le compte à rebours est affiché sur l'échelle verticale sous le prix actuel.


      Compte à rebours qui affiche le temps restant jusqu'à la fermeture de la barre actuelle



    3. Amélioration du mode réticule – il peut désormais être utilisé comme une règle. Activez le réticule et placez-le au point de départ souhaité. Touchez ensuite le point d'arrivée pour mesurer la distance. L'infobulle affiche la différence de prix, le pourcentage et le nombre de barres.


      Mode réticule amélioré – il peut maintenant être utilisé comme règle



    4. Ajout de l'affichage des tickets des positions dans l'historique des transactions.


      Ajout de l'affichage des tickets de positions dans l'historique des transactions



    5. Indication améliorée du délai des cotations s’il est utilisé pour un instrument de trading. Ces informations sont désormais affichées sur le graphique, et l'icône de la section Market Watch est mise en évidence.



      Amélioration de l'affichage des délais des cotations



    6. Ajout d'un support pour les nouveaux fournisseurs dans le système de paiement intégré.
    7. Ajout d'un champ pour la saisie de la date de naissance lors de l'ouverture d'un compte de démonstration.
    8. Amélioration des chats : Correction des problèmes d'affichage des avatars, ajout d'une visionneuse de documents, prise en charge des images *.webp et amélioration de la fonctionnalité de recherche.

    Téléchargez la dernière version de l'application et améliorez votre expérience de trading :

    MetaTrader 5 sur l'App Store
    13 décembre 2024
    MetaTrader 5 Build 4755 : Améliorations générales
    Cette mise à jour corrige une erreur dans le calcul des swaps triples dans le testeur de stratégie, qui se produisait dans certaines combinaisons de conditions de test. Un certain nombre d'améliorations et de corrections mineures ont également été mises en œuvre pour améliorer encore la stabilité de la plateforme.
    6 décembre 2024
    MetaTrader 5 Build 4730 : Prise en charge étendue d'OpenBLAS et optimisation générale des performances

    Terminal

    1. Terminal : Modification des calculs pour les valeurs d’une position, d'un ordre et d’une transaction. Les valeurs sont désormais affichées dans la devise de dépôt du compte plutôt que dans la devise de base du symbole de trading :

      La valeur des positions, des ordres et des transactions est maintenant affichée dans la devise de dépôt du compte.

    2. Terminal : Ajout d'un champ pour la saisie de la date de naissance lors de l'ouverture d'un compte de démonstration.

      Ajout d'un champ pour la saisie de la date de naissance lors de l'ouverture de comptes de démonstration


    3. Terminal : Correction de l'échelle des indicateurs affichés dans la sous-fenêtre du graphique. Pour certains oscillateurs, les valeurs minimales et maximales de l'échelle pouvaient auparavant être sélectionnées de manière incorrecte.
    4. Terminal : Optimisation et accélération de la décompression des données des ticks de l'historique des prix, ce qui augmentera la vitesse de chargement des graphiques.
    5. Terminal : Correction de l'édition de la couleur du texte dans la fenêtre de composition d’un email interne.
    6. Terminal : Mise à jour des traductions de l'interface utilisateur.

    MQL5

    1. Ajout de nouvelles méthodes OpenBLAS :

      • EigenSolver2 – calcule les valeurs propres et les vecteurs propres généralisés pour une paire de matrices carrées ordinaires (fonction lapack GGEV).
      • EigenSolverX – calcule les valeurs propres et les vecteurs propres d'une matrice carrée régulière en mode expert, c'est-à-dire avec la possibilité d'influencer l'algorithme de calcul et d'obtenir les données de calcul correspondantes (fonction lapack GEEVX).
      • EigenSolver2X - calcule les valeurs propres et les vecteurs propres pour une paire de matrices carrées régulières en mode expert, c'est-à-dire avec la possibilité d'influencer l'algorithme de calcul et d'obtenir les données de calcul correspondantes (fonction lapack GGEVX).
      • EigenSolverShur – calcule les valeurs propres, la matrice triangulaire supérieure sous forme de Schur et la matrice des vecteurs de Schur (fonction lapack GEES).
      • EigenSolver2Shur – calcule les valeurs propres, les vecteurs propres généralisés, les formes de Schur généralisées et les vecteurs de Schur gauche et droit pour une paire de matrices carrées régulières (fonction lapack GGES).
      • EigenSolver2Blocked – calcule les valeurs propres et les vecteurs propres généralisés pour une paire de matrices carrées régulières à l'aide d'un algorithme par blocs (fonction lapack GGEV3).
      • EigenSolver2ShurBlocked – pour une paire de matrices carrées régulières, calcule les valeurs propres, les vecteurs propres généralisés, les formes de Schur généralisées et les vecteurs de Schur gauche et droit à l'aide d'un algorithme par blocs (fonction lapack GGES3).
      • EigenSymmetricRobust – calcule les valeurs propres et les vecteurs propres d'une matrice symétrique ou hermitienne (conjugué complexe) en utilisant l'algorithme MRRR (Multiple Relatively Robust Representations, MRRR) (fonctions lapack SYEVR, HEEVR).
      • EigenSymmetricBisect – calcule les valeurs propres et les vecteurs propres d'une matrice symétrique ou hermitienne (conjuguée complexe) en utilisant l'algorithme de bi-section (fonctions lapack SYEVX, HEEVX).

    2. Ajout de nouvelles méthodes pour les matrices complexes :

      • TransposeConjugate – crée une matrice transposée conjuguée.
        matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;
        La méthode renvoie une nouvelle matrice conjuguée-transposée dans laquelle les éléments de la matrice originale sont transposés et convertis en leurs conjugués complexes.

        En cas d'erreur, une matrice vide est renvoyée. Utilisez la fonction GetLastError pour obtenir le code d'erreur.

      • CompareEqual – comparaison absolue de deux matrices.
        int matrix<T>::CompareEqual(const matrix<T>& mat) const
        Les valeurs de retour sont les suivantes :

        • -1 – si l'élément de la matrice A est inférieur à l'élément correspondant de la matrice B.
        • 0 – si tous les éléments des matrices A et B sont identiques.
        • 1 – si l'élément de la matrice A est supérieur à l'élément correspondant de la matrice B.

        La méthode peut également renvoyer des erreurs si les données d'entrée ne sont pas valides. Pour obtenir le code d'erreur, utilisez la fonction GetLastError.

    3. Ajout de la prise en charge de Python jusqu'à la version 3.13 pour le package d'intégration correspondant. Pour mettre à jour le package, exécutez la commande suivante :

      pip install --upgrade MetaTrader5

    4. Correction de l'omission du premier événement de l’évènement Timer. Une erreur s'est produite si une minuterie a été démarrée dans le gestionnaire OnTimer.

    MetaEditor

    • Correction du calcul des valeurs des variables d'entrée en mode debug. Dans certains cas, le message "identifiant inconnu" s'affichait à la place de la valeur.

    Testeur

    • Correction de la recherche des taux de change requis pour la conversion des devises lors des tests d'applications utilisant des instruments de change.

    Terminal Web

    1. Ajout de la prise en charge du type d'exécution Request pour les ordres à gros volume.
    2. Ajout de la prise en charge d'une description étendue de la raison des demandes rejetées par un courtier.
    3. Formulaire d'ouverture de compte fixe. Les informations sont maintenant demandées en fonction des paramètres du courtier.
    4. Correction de la détection du pays lors de l'enregistrement des comptes de démonstration.
    5. Correction de l'alignement dans la boîte de dialogue affichant l'avertissement relatif au trading en-un-clic.
    11 octobre 2024
    Mise à jour de la plateforme MetaTrader 5 Build 4610 : Correction des bugs de MQL5 et nouvelles méthodes OpenBLAS

    Terminal

    1. Correction d'une erreur qui entraînait le renvoi d'un historique des ticks incomplet dans certaines conditions.
    2. Correction de l'autocomplétion lors de la sélection de symboles dans des langues autres que l'anglais. Lorsque vous saisissez un nom de symbole dans le champ de recherche, le système propose automatiquement des possibilités en fonction des caractères saisis. La fonction de recherche fonctionne désormais correctement et sans tenir compte de la casse dans tous les pays.

    MQL5

    1. Les descriptions des nouvelles méthodes OpenBLAS ont été ajoutées à la documentation MQL5. Actuellement, 15 nouvelles méthodes pour les matrices et les vecteurs sont disponibles, et d'autres seront bientôt ajoutées.
      OpenBLAS est une solution open-source efficace pour le calcul à haute performance, en particulier lorsque l'on travaille avec des ensembles de données.

      Fonction

      Action

      SingularValueDecompositionDC

      Décomposition en valeurs singulières, algorithme de division et de conquête ; considéré comme le plus rapide parmi les autres algorithmes SVD (fonction lapack GESDD).

      SingularValueDecompositionQR

      Décomposition en valeurs singulières, algorithme QR ; considéré comme un algorithme SVD classique (fonction lapack GESVD).

      SingularValueDecompositionQRPivot

      Décomposition en valeurs singulières, QR avec algorithme de pivotement (fonction lapack GESVDQ).

      SingularValueDecompositionBisect

      Décomposition en valeurs singulières, algorithme de bissection (fonction lapack GESVDX).

      SingularValueDecompositionJacobiHigh

      Décomposition en valeurs singulières, algorithme de Jacobi de haut niveau (fonction lapack GEJSV).

      SingularValueDecompositionJacobiLow

      Décomposition en valeurs singulières, algorithme de Jacobi de bas niveau (fonction lapack GESVJ). La méthode calcule les petites valeurs singulières et leurs vecteurs singuliers avec beaucoup plus de précision que les autres routines SVD dans certains cas.

      SingularValueDecompositionBidiagDC

      Décomposition en valeurs singulières, algorithme de division et de conquête pour les matrices bi-diagonales (fonction lapack BDSVDX).

      SingularValueDecompositionBidiagBisect

      Décomposition en valeurs singulières, algorithme de bissection pour les matrices bi-diagonales (fonction lapack BDSVDX).

      EigenSolver

      Calcul des valeurs propres et des vecteurs propres d'une matrice carrée régulière à l'aide de l'algorithme classique (fonction lapack GEEV).

      EigenSymmetricDC

      Calcul des valeurs propres et des vecteurs propres d'une matrice symétrique ou hermitienne (conjuguée complexe) en utilisant l'algorithme de division et de conquête (fonctions lapack SYEVD, HEEVD).

      SingularSpectrumAnalysisSpectrum

      Calcul des contributions relatives des composantes spectrales sur la base de leurs valeurs propres

      SingularSpectrumAnalysisForecast

      Calcul des données reconstruites et prédites en utilisant les composantes spectrales de la série temporelle d'entrée.

      SingularSpectrumAnalysisReconstructComponents

      Calcul des composantes reconstruites de la série temporelle d'entrée et leurs contributions.

      SingularSpectrumAnalysisReconstructSeries

      Une fonction de méthode pour calculer la série temporelle reconstruite à l'aide des component_count premiers composants.

    2. Correction d'erreurs lors de l'exécution d'anciennes versions de fichiers de programme MQL5 exécutables (.ex5) qui utilisent les méthodes matrix::CopyRates. Ces erreurs ne se sont pas produites dans les fichiers compilés sous les nouvelles versions.
    3. Correction de la vérification des types d'ordres autorisés dans une union.

    MetaTester

    • Correction des crashs qui pouvaient se produire dans certaines conditions lors de la dé-initialisation des indicateurs personnalisés.

    9 octobre 2024
    MetaTrader 5 Build 4585 : Amélioration des performances

    Terminal

    • Correction des crash qui pouvaient se produire dans certaines conditions lors de l'arrêt du profilage des programmes MQL5.

    MetaEditor

    • Correction des fuites de mémoire lors de la compilation des programmes MQL5 et lors de l'utilisation des fonctions de gestion intelligente du code.

    MetaTester

    • Correction des crash qui se produisaient dans certaines conditions lors de la ré-exécution de tests à une seule passe.
    27 septembre 2024
    MetaTrader 5 Build 4570 : Amélioration de la version Web et intégration d'OpenBLAS dans MQL5

    Terminal

    1. Accès restreint aux fonctions de trading et d'historique de MQL5 si le compte est abonné à un signal.

      Lorsqu'un abonnement à un signal est détecté sur le compte (que la copie soit activée ou non dans le terminal actuel), tout appel à une fonction de trading de MQL5 est interdit, y compris la réception d'ordres et de positions ouvertes, la réception de l'historique et l'exécution d'opérations de trading. Un avertissement correspondant est enregistré dans le journal :
      'XXX': signal subscription detected, trading and history access functions in MQL5 and Python disabled
      Les restrictions s'appliquent également aux fonctions de trading en Python : positions_total, positions_get, orders_total, orders_get, history_orders_total, history_orders_get, history_deals_total, history_deals_get, order_check et order_send.

      Si un abonnement au signal est annulé sur le compte ou si vous vous connectez à un autre compte sans abonnement au signal, la restriction est levée et le message suivant est retourné :
      'XXX': no signal subscription detected, trading and history access functions in MQL5 and Python enabled
      Si la restriction est active sur le compte, les fonctions MQL5 renverront les codes de réponse suivants :

      • OrderSend et OrderSendAsync renvoient RET_REQUEST_AT_DISABLED_CLIENT
      • OrdersTotal et PositionsTotal renvoient 0
      • PositionGetSymbol, PositionSelect, PositionSelectByTicket et PositionGetTicket renvoient ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
      • OrderGetTicket et OrderSelect renvoient ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
      • HistorySelect renvoie ERR_MQLAPI_TRADE_DEAL_NOT_FOUND

    2. Correction, optimisation et accélération de la demande de l'historique des ticks et de l'export vers des fichiers CSV\HTML.
    3. Ajout de la prise en charge de Microsoft Edge WebView2 pour l'affichage de contenu HTML dans la plateforme de trading sur macOS. Par rapport à l'ancien MSHTML, le nouveau composant élargit considérablement les capacités d'affichage du contenu en donnant accès aux technologies modernes. Le passage à WebView2 améliore l'apparence des sections MarKet, Signaux, VPS et autres, en augmentant leur performance et en créant des interfaces plus réactives.

    4. Correction du menu contextuel dans la fenêtre d'envoi de courrier interne.
    5. Correction du filtrage dans la boîte de dialogue de sélection des instruments de trading. Il n'est plus nécessaire de saisir d'abord le nom des instruments pour masquer les instruments périmés.
    6. Correction du calcul des exigences de marge dans la fenêtre de spécification du contrat. L'erreur s'est produite pour les instruments d'échange d'actions et d'obligations.
    7. Amélioration de la fonction de clôture des positions en masse pour les comptes de type FIFO. Les types d'opérations incompatibles ne sont plus affichés pour ces comptes, y compris la fermeture de toutes les positions gagnantes/perdantes, les positions de même direction et les positions opposées.
    8. Correction d'un problème où les utilisateurs ne pouvaient pas placer des ordres en attente opposés sur des comptes où la clôture de la position suit la règle FIFO.
    9. Correction du calcul de la valeur de liquidation pour les comptes avec des positions sur des instruments Exchange Futures.
    10. Correction des calculs de bénéfices flottants pour les positions sur les instruments d'échange d'obligations et d'échange d'obligations MOEX.
    11. Désactivation de la création automatique de comptes de démonstration lorsque la plateforme est lancée sans comptes ajoutés au préalable.
    12. Amélioration de la validation du nom et de l'adresse électronique lors de l'enregistrement des comptes.
    13. Correction du calcul de la marge pour les positions couvertes. L'erreur peut se produire dans certains cas lors de l'utilisation d'une marge flottante sur le compte (calculée sur la base du volume/de la valeur des positions actuelles).
    14. Correction de la mise à jour de l'état du bouton "Suivant" dans la boîte de dialogue d'ouverture du compte de démonstration. Après avoir saisi le code de confirmation par téléphone ou par courrier électronique, le bouton peut rester inactif dans certaines conditions.
    15. Mise à jour des traductions de l'interface utilisateur.

    MQL5

    1. Intégration native avec la bibliothèque de calcul matriciel OpenBLAS.

      OpenBLAS est une bibliothèque d'algèbre linéaire open-source de haute performance qui implémente BLAS (Basic Linear Algebra Subprograms) et certaines fonctions LAPACK. OpenBLAS est conçu pour améliorer les performances de calcul, en particulier dans les opérations matricielles et vectorielles, qui sont souvent utilisées dans des tâches scientifiques et d'ingénierie telles que l'apprentissage automatique, les méthodes numériques et les simulations.

      Caractéristiques principales d'OpenBLAS :

      • Prise en charge du multi-threading : OpenBLAS peut utiliser efficacement plusieurs cœurs de processeur pour des calculs parallèles, ce qui accélère considérablement les opérations sur les systèmes multiprocesseurs.
      • Optimisation des architectures de processeurs : OpenBLAS comprend des versions optimisées pour différents processeurs tels que Intel, AMD, ARM et autres. La bibliothèque détecte automatiquement les caractéristiques du processeur (jeux d'instructions pris en charge comme AVX/AVX2/AVX512) et sélectionne les implémentations de fonctions les plus appropriées.
      • Prise en charge étendue des opérations BLAS : OpenBLAS met en œuvre les fonctions BLAS de base, notamment les opérations vectorielles (par exemple, l'addition vectorielle et le produit point), les opérations matricielles (multiplication) et les opérations vecteur-matrice.
      • Compatibilité LAPACK : La bibliothèque prend en charge les fonctions LAPACK (Linear Algebra PACKage) pour les opérations d'algèbre linéaire plus complexes, telles que la résolution de systèmes d'équations linéaires, le calcul des valeurs propres des matrices, etc.
      • Haute Performance : Par rapport à d'autres bibliothèques BLAS, OpenBLAS donne souvent de meilleurs résultats grâce à des optimisations réalisées à la main pour des architectures de processeurs spécifiques.

      OpenBLAS est largement utilisé dans les applications impliquant des calculs numériques :

      • Formation de réseaux neuronaux et autres tâches d'apprentissage automatique.
      • Calcul scientifique (par exemple, modélisation de processus physiques).
      • Traitement et analyse de grandes quantités de données.

      Les méthodes suivantes sont actuellement disponibles dans MQL5 :

      Singular value decomposition (Décomposition en Valeur Singulière) (SVD) :

      • SingularValueDecompositionDC – algorithme de type divide-and-conquer, considéré comme le plus rapide parmi les autres algorithmes SVD (fonction lapack GESDD).
      • SingularValueDecompositionQR – algorithme QR, considéré comme un algorithme SVD classique (fonction lapack GESVD).
      • SingularValueDecompositionQRPivot – algorithme QR avec pivot (fonction lapack GESVDQ).
      • SingularValueDecompositionBisect – algorithme de bisection (fonction lapack GESVDX).
      • SingularValueDecompositionJacobiHigh – algorithme de Jacobi de haut niveau (fonction lapack GEJSV).
      • SingularValueDecompositionJacobiLow – algorithme de Jacobi de bas niveau (fonction lapack GESVJ). La méthode calcule les petites valeurs singulières et leurs vecteurs singuliers avec beaucoup plus de précision que les autres routines SVD dans certains cas.
      • SingularValueDecompositionBidiagDC – algorithme de division et de conquête pour les matrices bidiagonales (fonction lapack BDSVDX).
      • SingularValueDecompositionBidiagBisect - algorithme de bissection pour les matrices bidiagonales (fonction BDSVDX).

      Méthodes propres :

      • EigenSolver – calcule les valeurs propres et les vecteurs propres d'une matrice carrée régulière à l'aide de l'algorithme classique (fonction lapack GEEV).
      • EigenSymmetricDC – calcule les valeurs propres et les vecteurs propres d'une matrice symétrique ou hermitienne (conjuguée complexe) en utilisant l'algorithme de division et de conquête (fonctions lapack SYEVD, HEEVD).

      Une documentation détaillée sera fournie prochainement.

    2. Ajout de la valeur SYMBOL_SWAP_MODE_CURRENCY_PROFIT dans l'énumération ENUM_SYMBOL_SWAP_MODE. Si SymbolInfoInteger renvoie cette valeur, les swaps sur le compte sont facturés dans la devise de calcul du profit.
    3. Support étendu du Runtime ONNX. Ajout de nouveaux types d'opérations d'apprentissage automatique, permettant d'exécuter des modèles neuronaux plus avancés.
    4. Nous poursuivons la transition vers un compilateur MQL5 plus efficace, qui est déjà utilisé pour certaines fonctions. La transition permettra de nouvelles optimisations et une exécution plus rapide des programmes.
    5. Ajout de nouveaux types de données pour supporter la bibliothèque OpenBLAS :

      • complexf – nombre complexe représenté par des données flottantes
      • vectorcf – vecteur contenant des éléments de type complexf
      • matrixcf – matrice contenant des éléments de type complexf

    6. Amélioration des opérations WebRequest lors de l'utilisation de sites web qui ne respectent pas les règles de formatage des URL, contiennent des erreurs de redirection ou ont de longues listes de noms DNS alternatifs.
    7. Correction de l'affectation simultanée de types de matrices ou de vecteurs à plusieurs variables.

    MetaEditor

    1. Mise à jour des modèles disponibles pour l'Assistant AI. Le GPT-4o mini, plus avancé, remplace désormais le GPT-3.5 Turbo. Le modèle 01-mini a également été ajouté.
    2. Correction d'une erreur du débogueur à cause de laquelle les valeurs des variables pouvaient ne pas être mises à jour dans la fenêtre de surveillance.
    3. Mise à jour des traductions de l'interface utilisateur.

    MetaTester

    1. Correction de l'enregistrement des coefficients de marge dans les paramètres des symboles personnalisés.
    2. Correction des fuites de mémoire qui pouvaient se produire entre les passes de test dans certaines conditions.

    Terminal Web

    1. Ajout du mode Croix pour la visualisation de valeurs précises et la mesure de distances sur les cartes.

      Activez le mode en cliquant sur le bouton correspondant dans le panneau de gauche. Déplacez le pointeur sur n'importe quel point du graphique pour voir la date et le prix sur les axes respectifs. Pour mesurer la distance, cliquez sur n'importe quel point de la carte et faites glisser le curseur vers un autre point tout en maintenant le bouton de la souris enfoncé.


      .


      Vous pouvez également utiliser des raccourcis : appuyez sur le bouton du milieu de la souris pour activer le réticule et utilisez Esc ou le clic droit pour le désactiver.

    2. Ajout d'un graphique linéaire simple construit sur les prix de clôture des barres :




    3. Dans la vue mobile, ajout de la possibilité d'afficher des colonnes supplémentaires dans la section Market Watch. Pour configurer, passez en mode tableau et cliquez sur "..." :




    4. Ajout de raccourcis clavier :

      • Accueil - permet d'aller au début du graphique (date la plus ancienne)
      • Fin - défilement jusqu'à la fin du graphique (date la plus récente)
      • Page précédente - fait défiler le graphique d'un écran à l'autre
      • Page précédente - fait défiler le graphique d'un écran à l'autre

    5. Amélioration de la sécurité des données pour le stockage des connexions de compte.
    6. Amélioration de la fonctionnalité de défilement, de glissement et de mise à l'échelle des graphiques.
    7. Chargement initial accéléré de la plateforme web sur la page.
    8. Chargement optimisé des barres.
    9. Correction des calculs de bénéfices flottants pour les positions sur les instruments d'échange d'obligations et d'échange d'obligations MOEX.
    10. Correction de la saisie du volume dans le panneau de trading en un clic sur les graphiques.
    11. Correction d'une erreur dans la mise à jour des volumes d'ordres dans le Market Depth. La mise à jour des valeurs a pu être retardée dans certaines conditions.
    12. Correction de la vérification du volume d'échange minimum autorisé lors du passage d'ordres.
    13. Correction du calcul de la marge pour les positions couvertes. L'erreur peut se produire dans certains cas lors de l'utilisation d'une marge flottante sur le compte (calculée sur la base du volume/de la valeur des positions actuelles).
    14. Correction d'une erreur où les boutons d'achat et de vente sur le panneau de trading en un clic pouvaient devenir inactifs jusqu'à ce que le volume soit modifié.
    21 juin 2024
    MetaTrader 5 Build 4410 : Amélioration des performances
    MetaTrader 5 build 4410: улучшения в работе

    Terminal

    1. Correction d'un crash de terminal qui pouvait survenir au démarrage des tests dans certaines conditions.

    MQL5

    1. Correction du fonctionnement de la propriété MQL_PROGRAM_NAME pour les applications de service. La propriété pouvait renvoyer une instance de service incorrecte.

    Terminal Web

    1. Correction de la validation de la compatibilité du navigateur avec le terminal web. Dans certains cas, les utilisateurs peuvent avoir reçu par erreur un message indiquant que leur navigateur n'était pas pris en charge.
    2. Correction de l'ouverture des comptes de démo.
    3. Corrections et améliorations mineures.

    La mise à jour sera disponible via le système Live Update.

    MetaTrader 5 Android

    1. Interface entièrement repensée pour les versions sur tablettes. Elle arbore désormais un design moderne, déjà éprouvé sur les versions iOS et web de la plateforme. Les sections principales sont désormais situées en bas de l'écran et les commandes des opérations sur le graphique apparaissent sur la gauche.




    2. Ajout d'un menu contextuel à la section historique des positions , permettant un accès rapide à la boîte de dialogue de trading ou au graphique du symbole correspondant.
    3. Désactivation pour les symboles non échangeables de la commande passant à la boîte de dialogue de trading.
    4. Correction du fonctionnement avec le serveur MetaQuotes-Demo.

    Mettez à jour vos applications mobiles via Google Play, Huawei AppGallery ou en téléchargeant le fichier APK.

    7 juin 2024
    MetaTrader 5 Build 4380 : Amélioration des performances

    Terminal

    1. Correction d'erreurs pouvant entraîner un fonctionnement incorrect du système Live Update dans certaines conditions.
    2. Ajout d'une nouvelle touche de raccourci, Alt+X, pour ouvrir la liste des Expert Advisors.
    3. Correction des erreurs rapportées dans les journaux de crash.

    MetaTester

    1. Correction d'erreurs dans la définition de certaines propriétés de l'objet graphique Bitmap.
    2. La connexion des agents de test au réseau MQL5 Cloud Network est désormais interdite lorsqu'ils opèrent dans des environnements virtuels et lorsque le processeur ne prend pas en charge le jeu d'instructions AVX.

    Terminal Web

    1. Correction d'une erreur dans le fonctionnement du panneau de trading en-un-clic sur le graphique.
    2. Correction de la boîte de dialogue d'avertissement qui s'ouvre lorsque vous activez le panneau de trading en-un-clic sur le graphique.
    31 mai 2024
    MetaTrader 5 Build 4350: Encore plus d'objets d’analyse dans la plateforme Web et une page d'Accueil dans MetaEditor

    MetaEditor

    1. Ajout d'une page d'accueil pour aider les utilisateurs à se lancer dans le trading algorithmique et le développement d'applications.



      Matériel pour les débutants
      La section "Introduction" présente le matériel pédagogique disponible sur MQL5.com: documentation sur le langage, livres, articles, forums de développeurs et bibliothèque de base de code. Elle présente également des services où vous pouvez appliquer et monétiser vos connaissances : le marché des applications, les freelances et les signaux de trading.

      Dans les sections documentation et livres, vous trouverez une description plus détaillée des supports de formation disponibles.

      Fonctionnalités utiles pour les développeurs
      La section "Quoi de neuf" propose un ensemble d'informations essentielles pour tenir les développeurs au courant de l'évolution de la situation :


      Vous trouverez également ici une liste des fichiers récemment ouverts pour un accès rapide.



      Pour les utilisateurs qui vendent activement leurs applications sur le Market, le rapport "Mes ventes" constitue un outil précieux pour évaluer leurs performances. Il permet d'accéder à :

      • Statistiques complètes sur les ventes et les téléchargements au fil du temps.
      • La géographie des ventes, qui permet de connaître les régions où vos produits sont les plus populaires. Cela peut suggérer des idées pour l'expansion future du projet, comme la localisation dans des langues spécifiques ou des campagnes publicitaires ciblées dans des régions particulières.
      • Données sur les produits les plus vendus en fonction du volume des ventes et des revenus générés. Le graphique peut être filtré en fonction du type de licence : complète ou location pour une certaine durée. Vous pouvez également voir ici un graphique avec les changements de prix des produits. Tout cela vous aidera à comprendre vos clients.
      • Des statistiques détaillées sur les téléchargements et les ventes pour chaque produit.




    2. Amélioration de la recherche intégrée. La barre de recherche supérieure est désormais utilisée exclusivement pour rechercher du texte dans le document en cours ou dans les fichiers locaux. Pour une recherche globale dans le matériel éducatif et les codes, utilisez une section distincte de la boîte à outils.



    3. Ajout de la prise en charge de GPT-4o, le dernier modèle de ChatGPT, dans AI Assistant. Il peut être utilisé pour compléter automatiquement le code et obtenir des astuces. Vous pouvez sélectionner le nouveau modèle dans les paramètres de MetaEditor.



    4. Mise à jour des traductions de l'interface utilisateur.

    Terminal

    1. Précision accrue dans l'affichage du prix de calcul dans la spécification de l'instrument de trading.
    2. Correction des calculs des MFE et MAE dans le rapport de trading.
    3. Correction de la sauvegarde et de la restauration des paramètres de filtrage du calendrier économique par pays et par devise.
    4. Correction de l'application des modèles aux graphiques. Désormais, si l'affichage de l'historique des transactions est activé pour le graphique, les objets correspondants ne disparaîtront pas après l'application d'un modèle.
    5. Correction d'erreurs dans le tableau des options. L'ajout de symboles au tableau peut entraîner le blocage de la plateforme dans certaines conditions.
    6. Correction d'une erreur dans le dialogue d'édition de la position. Dans certains cas, des niveaux incorrects peuvent être saisis à la place des valeurs actuelles de Stop Loss et de Take Profit.
    7. Mise à jour des traductions de l'interface utilisateur.

    MQL5

    1. Optimisation et accélération de la fonction ArrayResize. La fonction peut être exécutée jusqu'à 40% plus rapidement dans certaines conditions.
    2. Mise à jour du support pour ONNX.
    3. Correction des appels à la fonction MessageBox dans les applications de service. Quel que soit le bouton appuyé par l'utilisateur dans la boîte de dialogue, la fonction renvoie une valeur nulle.
    4. Correction d'une erreur qui, dans certains cas, provoquait une initialisation incomplète des programmes MQL5.
    5. Correction d'une erreur dans l'analyse de certaines macros. L'erreur s'est produite lors de l'utilisation d'un grand nombre de constantes.


    Terminal Web MetaTrader 5

    1. Liste étendue des objets d’analyse disponibles. Vous pouvez désormais utiliser la règle pour mesurer le temps et les prix, dessiner des formes (rectangle, ellipse, triangle et cercle) et ajouter des étiquettes à vos graphiques. Tous les objets se trouvent dans le panneau de gauche :



    2. Ajout de la possibilité de renommer les objets.
    3. Amélioration de l'intégration avec le calendrier économique. Optimisation et accélération des demandes de données.
    4. Accélération des opérations graphiques.
    5. Démarrage accéléré de l'application et connexion à un compte de trading.
    6. Correction du paramètre qui contrôle l'affichage des opérations de trading sur le graphique.
    7. Correction de l’affichage des exigences de marge dans les spécifications des contrats.
    8. Correction de l'affichage des statuts des comptes dans la section historique. Des problèmes pourraient survenir sur les appareils dotés d'écrans étroits.
    9. Correction de l'affichage des modifications du Depth of Market.
    22 mars 2024
    MetaTrader 5 Build 4260 : Améliorations générales

    Terminal Client

    1. Correction d'erreurs lors de l'abonnement à des produits gratuits dans le service Abonnements . Le bouton correspondant peut ne pas être affiché dans la boîte de dialogue dans certaines conditions.
    2. Mise à jour des traductions de l'interface utilisateur.
    3. Correction des erreurs rapportées dans les journaux de crash.

    MQL5

    1. Prise en charge étendue des événements clavier :

      • Ajout de l'événement CHARTEVENT_KEYUP pour le gestionnaire OnChartEvent . Il permet le suivi des événements liés aux relâchement des touches.
      • Ajout du traitement des touches mortes. Ce sont les touches qui modifient l'apparence du caractère généré par la touche frappée immédiatement après. Par exemple, dans la disposition grecque, une voyelle accentuée ά, έ, ύ, etc. peut être générée en appuyant d'abord sur ";" puis sur la voyelle. L'appui sur ces touches peut être suivi à l'aide de la fonction TranslateKey .
      • Fonctions TranslateKey et TerminalInfoInteger améliorées. Désormais, lors de la réception d'événements CHARTEVENT_KEYUP ou CHARTEVENT_KEYDOWN dans OnChartEvent, vous pouvez obtenir l'état complet du clavier au moment où l'événement s'est produit. Par exemple, si l'utilisateur a appuyé sur la touche Z, vous pourrez déterminer si la touche Ctrl ou Shift a été enfoncée à ce moment-là. Pour les autres événements, les fonctions continueront à fonctionner comme avant, en renvoyant l'état actuel du clavier.

    2. Mise à jour de la bibliothèque Alglib. Suite à la mise à jour, les méthodes suivantes dans les classes CMatrixDouble et CMatrixComplex ont été modifiées :
      vector<double/complex> operator[](const int i) const;
      vector<double/complex> operator[](const ulong i) const;
      Elles ont été remplacées par une méthode unique avec une valeur de retour constante :
      const vector<double/complex> operator[](const ulong i) const;
      Cette modification aidera à capturer une utilisation incorrecte du résultat en place car dans la nouvelle version d'Alglib, le code mat[row][col]=x fonctionne différemment de l'ancienne version. Auparavant, cela signifiait écrire dans une matrice. Désormais, la valeur est écrite dans un vecteur d'objet temporaire<double/complex>, qui est immédiatement détruit après l'enregistrement.

      L'ajout de const à la valeur de retour permet l'utilisation de mat[row][col]=x. Étant donné que mat[row] renvoie désormais un vecteur constant, tenter d'écraser son élément avec mat[row][col] entraînera une erreur de compilation.

    3. Correction d'une erreur pouvant entraîner un fonctionnement incorrect des fonctions ChartGet* dans certaines conditions.

    MetaEditor

    1. Ajout d'une recherche dans le contenu du livre Réseaux Neuronaux pour le Trading Algorithmique en MQL5. La nouvelle option apparaît dans la même section que le livre Programmation MQL5 pour les Traders précédemment publié.



    Testeur

    1. Correction de l'optimisation lors de l'utilisation d'un grand nombre d'agents distants. Dans certains cas, l'erreur peut entraîner une utilisation excessive du processeur.

    Terminal Web

    1. Correction du réglage des ordres limités pour les instruments avec le mode d’exécution échange. Désormais, lorsque le prix de l'ordre passé change par rapport au prix actuel (devient supérieur ou inférieur), le type d'ordre ne passera pas de Buy Limit à Sell Limit et vice versa, comme c'est le cas pour les instruments d'autres types. Les utilisateurs peuvent ainsi passer des ordres d'achat limités au-dessus du marché et des ordres de vente limités en dessous du marché, garantissant ainsi que le prix de la transaction est garanti limité.
    2. Correction de l'affichage des compteurs de symboles sélectionnés dans le Market Watch.
    précédent12345678910111213