Nouvelle version MetaTrader 5 build 5570 : ONNX et amélioration du rendu des graphiques

 

La mise à jour de la plateforme MetaTrader 5 sera publiée le vendredi 30 janvier 2026.

Dans cette version, nous avons amélioré la prise en charge d'ONNX dans MQL5. Les modèles s'exécutent désormais beaucoup plus rapidement sur les GPU prenant en charge CUDA. Nous avons également introduit la prise en charge de nouveaux flags et révisé le flux de travail de la bibliothèque : ONNX est désormais installé uniquement lors de la première exécution d'un programme qui l'utilise, plutôt qu'avec la plateforme.

Nous avons également affiné le rendu du texte et des objets analytiques sur les graphiques pour le moteur Blend2D introduit dans la mise à jour précédente. Cette mise à jour apporte également des améliorations sur les rapports de trading et des améliorations de stabilité au Testeur de Stratégie.

La version web de la plateforme a également reçu plusieurs améliorations. Lorsque vous ajustez les niveaux de stop directement sur un graphique, vous pouvez maintenant voir une valeur approximative du profit ou de la perte en monnaie. Nous avons également corrigé l'affichage de certaines données de trading.

Nouvelle version MetaTrader 5 Build 5570 : ONNX et amélioration du rendu des graphiques


Terminal Client MetaTrader 5

  1. Terminal : Correction du rendu du texte sur les graphiques dans les environnements macOS et Linux utilisant Wine.
  2. Terminal : Correction du dessin des indicateurs affichés sous forme de lignes de couleurs variables.
  3. Terminal : Correction du rendu des objets de type étiquette de texte et bouton.
  4. Terminal : Correction du formatage de certaines statistiques dans les rapports de trading, qui pouvaient auparavant être arrondies de manière incorrecte.
  5. Terminal : 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. Terminal : 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. Terminal : Correction du chargement des paramètres desinstruments 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. Terminal : 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. Terminal : Correction de la duplication des instruments de trading dans l'infobulle affichée lors de la recherche d'instruments dans le Market Watch.
  10. Terminal : Correction du rendu des polices Wingdings dans les graphiques.
  11. Terminal : 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. MQL5 : 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.
  14. MQL5 : 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


  15. MQL5 : 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/.

  16. MQL5 : 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. 
  17. MQL5 : Amélioration de la stabilité des opérations OpenCL.
  18. MQL5 : 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.
  19. MQL5 : 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.

  20. MQL5 : 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
  21. MQL5 : 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.
  22. MQL5 : Correction de la définition des couleurs pour les objets graphiques utilisant ObjectSetInteger. La valeur clrNONE pouvait auparavant être ignorée.
  23. MQL5 : Correction du blocage de la fonction Bars lorsqu'aucun historique des prix n'est disponible sur le serveur.
  24. MQL5 : 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.
  25. MQL5 : 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.
  26. MQL5 : 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. 

  27. MetaEditor : Correction des erreurs de mémoire insuffisante lors de l'utilisation de fichiers sources volumineux (mégaoctets).
  28. MetaEditor : Correction de l'affichage des valeurs et des noms d'énumération dans la fenêtre du Market Watch pendant le débogage.
  29. Testeur : 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.
  30. Testeur : Correction de l'appel à EventChartCustom lors des tests visuels. Auparavant, l'événement pouvait être envoyé deux fois par erreur.
  31. Testeur : Correction de la vérification du niveau de gel (SYMBOL_TRADE_FREEZE_LEVEL) lors de la suppression d'ordres en attente nouvellement placés.
  32. Testeur : 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.
  33. Mise à jour des traductions de l'interface utilisateur.

Terminal Web MetaTrader 5

  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.


La mise à jour sera disponible via Live Update.