Mises à jour : MetaTrader 5

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

2 juin 2022
MetaTrader 5 build 3320 : Améliorations et correctifs

Terminal

  1. Info-bulles étendues pour les objets des trades affichés sur les graphiques :
    • Les transactions de sortie du marché affichent désormais les bénéfices.
    • L'indication correspondante est affichée pour les transactions exécutées à la suite de l'activation du Take Profit ou du Stop Loss.

    Des info-bulles similaires sont disponibles pour les lignes joignant les transactions d'entrée et de sortie.

    Info-bulles étendues pour les objets de transaction


  2. Amélioration des performances du système graphique.
  3. Ajout de la journalisation des opérations en masse avec des ordres et des positions ouvertes. Lorsqu'une telle commande est exécutée, une entrée est ajoutée dans le journal, par exemple : "la fermeture en masse de XXX positions a commencé".
  4. Correction de la fermeture en masse des positions opposées.
  5. Correction de la mise à jour des objets sur le graphique affichant l'historique des transactions. L'erreur s'est produite lors de la modification du symbole du graphique.

MQL5

  1. Des travaux sur les fonctions matricielles et vectorielles sont en cours : la prise en charge de 'float' et 'complex' est en cours d'implémentation.
  2. Opérateur "!" (LNOT) pour un pointeur vérifie sa validité via un appel implicite CheckPointer. L'opérateur "==" doit être utilisé pour une vérification NULL rapide. Par exemple : ptr==NULL ou ptr!=NULL.

MetaTester

  1. Correction de l'affichage des objets de transaction sur les graphiques de test.
  2. Amélioration des performances graphiques du système.

MetaEditor

  • Traductions de l'interface utilisateur mises à jour.

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

20 mai 2022
MetaTrader 5 build 3300 : Compilation rapide et navigation dans le code améliorée dans MetaEditor

Terminal 

  1. Ajout de la possibilité de redimensionner l'objet graphique Rectangle en faisant glisser l'un de ses quatre coins.


  2. Rendu plus rapide de l'interface graphique.
  3. Prise en charge améliorée des adresses IPv6.
  4. Correction de la calcul de la hauteur du champ de date inférieur et du calcul de la largeur du champ de prix de droite lors du premier lancement de la plateforme.

MQL5

  1.  Ajout d'une fonction pour travailler avec les matrices et les vecteurs :  RegressionMetric. Elle définit la métrique pour l'évaluation de la régression.
     double vector.RegressionError(const enum lr_error);
     double matrix.RegressionError(const enum lr_error);
     vector matrix.RegressionError(const enum lr_error,const int axis);
    Les variables suivantes peuvent être utilisées comme métriques :
    enum REGRESSION_ERROR
      {
       REGRESSION_MAE,     // Erreur absolue moyenne
       REGRESSION_MSE,     // Erreur quadratique moyenne
       REGRESSION_RMSE,    // Erreur quadratique racine moyenne
       REGRESSION_R2,      // R au carré
       REGRESSION_MAPE,    // Erreur absolue moyenne en pourcentage
       REGRESSION_MSPE,    // Erreur de pourcentage carré moyen
       REGRESSION_RMSLE    // Erreur logarithmique quadratique moyenne
      };
  2. Ajout de la possibilité d'écrire des tableaux avec une taille de données supérieure à INT_MAX (tableaux de structures).

MetaEditor

  1. Améliorations de la barre d'onglets :
    • Le panneau n'est pas masqué même si une seule fenêtre est ouverte. Ainsi, les commandes du menu contextuel de l'onglet sont toujours visibles pour l'utilisateur.
    • Le bouton de fermeture 'X' a été ajouté à chaque onglet. De plus, les onglets peuvent être fermés à l'aide du bouton central de la souris ou via le menu contextuel.


  2. Ajout d'une commande pour une compilation rapide du programme. Ce mode ignore l'optimisation du code, ce qui accélère considérablement la création d'un fichier exécutable EX5. Utilisez ce mode pendant la phase de développement actif, lorsque vous devez vérifier rapidement le code écrit. Lors de la compilation finale du programme, activez le mode d'optimisation maximale pour des performances améliorées.

    Le paramètre "Optimisation maximale" dans les paramètres du projet remplit la même fonction.

    Toutes les opérations de compilation-relation sont disponibles dans le menu "Build".

  3. Améliorations de la gestion du code :
    • Des commandes distinctes ont été implémentées pour sauter aux définitions et aux déclarations. Auparavant, le menu avait une commande qui ouvrait un sous-menu de sélection. Les nouvelles commandes permettent un passage plus rapide aux parties de code nécessaires.
    • Ajout de la substitution des mots clés reconnus par la touche "Tab", en plus de "Entrée".


  4. Ajout de la possibilité d'afficher automatiquement les variables locales dans la liste de surveillancedu débogueur. L'affichage peut être activé par la commande de menu contextuel "Local". Au fur et à mesure que l'opération de débogage progresse dans le code, les variables de la portée actuelle sont automatiquement affichées dans la liste.



  5. Améliorations de la liste de surveillance du débogueur pour les vecteurs et les matrices.
  6. Correction des chemins dans les fichiers de projet. Une erreur peut entraîner la disparition des fichiers des projets.

Testeur

  1. Amélioration de l'arrêt des agents testeurs à l'arrêt de la plateforme.
  2. Le cinquième nœud MQL5 Cloud Network a été ajouté. Il est situé à Hong-Kong. Le nouveau nœud accélère l'optimisation des robots via le réseau dans les régions les plus proches.

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

29 avril 2022
MetaTrader 5 build 3280 : Améliorations et corrections grâce aux retours des traders

Terminal

  1. Correction du remplissage des niveaux de Trailing Stop standard dans le menu contextuel des ordres et positions ouverts.



  2. Traductions de l'interface utilisateur mises à jour.

Correction d'erreurs rapportées dans les journaux de crash
21 avril 2022
MetaTrader 5 build 3270: Améliorations et correctifs

Terminal

  1. Améliorations intégrées du chat.
    • Conception mise à jour. Les messages apparaissent maintenant sans bulles encerclante pour optimiser l'affichage et l'utilisation de l'espace. Ajout d'avatars et de séparateurs de date.
    • Les commandes Copier et Supprimer ont été ajoutées au menu des messages.
    • Corrections de bugs et améliorations de la stabilité.



  2. Correction des commandes de fermeture de position en masse. Une erreur pouvait se produire sur les comptes avec le système de comptabilisation des positions de couverture.
  3. Correction de la comptabilisation de certains types de transactions lors de la génération de l'historique des positions.

Correction des erreurs signalées dans les journaux de plantage.
15 avril 2022
MetaTrader 5 build 3260 : Opérations en masse, fonctions matricielles et vectorielles, et améliorations du chat

Terminal

  1. Ajout de commandes pour la fermeture groupée des positions et l'annulation d'ordres en attente.

    Une nouvelle commande "Opérations en masse" a été ajoutée au menu contextuel de l'onglet Trade. La liste des commandes disponibles est formée automatiquement, en fonction de l'opération sélectionnée et de votre type de compte.



    Les commandes suivantes sont toujours disponibles dans le menu :
    • Fermeture de toutes les positions Sur les comptes de couverture, le système essaie de fermer les positions par des positions opposées (Close By), puis il ferme les positions restantes en suivant une procédure régulière.
    • Fermer toutes les positions rentables ou toutes les positions perdantes
    • Supprimer toutes les commandes en attente
    • Supprimer les ordres en attente de certains types : Limit, Stop, Stop Limit

    Si vous sélectionnez une position, des commandes supplémentaires apparaissent dans le menu :
    • Fermer toutes les positions du symbole
    • Fermer toutes les positions dans le même sens (sur les comptes de couverture)
    • Fermer les positions opposées pour le même symbole (sur les comptes de couverture)
    • Inversion de position (sur les comptes de compensation)

    Si vous sélectionnez un ordre en attente, des commandes supplémentaires apparaissent dans le menu :
    • Supprimer tous les ordres en attente pour le même symbole
    • Supprimer tous les ordres en attente du même type pour le même symbole

    Ces commandes ne sont disponibles que si le Trading En Un Clic est activé dans les paramètres de la plateforme : Outils \ Options \ Trade.
  2. Fonctionnalités graphiques internes améliorées :
    • Ajout de la possibilité de répondre aux messages. Le texte du message source sera cité dans la réponse.
    • Ajout de la possibilité de créer des messages avec différents types de contenu, tels que des images avec du texte et du texte avec des pièces jointes, entre autres.
    • Correction de l'affichage du séparateur entre les messages lus et non lus.
    • Corrections d'erreurs et améliorations de la stabilité.



  3. Fonctionnement optimisé et accéléré du système graphique du terminal. Le rendu de l'interface nécessitera moins de ressources.
  4. Correction du calcul des variations de prix quotidiennes pour les contrats à terme. Si le courtier fournit un prix de compensation, ce prix sera utilisé pour les calculs.
    ((Last - Prix de compensation)/Prix de compensation)*100
    Une description détaillée de tous les types de calcul est disponible dans la Documentation.

  5. Correction d'erreurs lors des achats de services MQL5 :
    • Les systèmes de paiement peuvent renvoyer des erreurs pour des opérations réussies sous certaines conditions.
    • Un prix incorrect pouvait être affiché dans les étapes intermédiaires de location du produit sur le Market.

  6. Correction du fonctionnement du bouton "Démarrer" dans la page des produits Market achetés/téléchargés. Maintenant, le bouton lance correctement l'application sur le premier graphique ouvert.
  7. Correction de la comptabilisation de certains types de transactions lors de la génération de l'historique des positions.

MQL5

  1. Ajout de nouvelles fonctions pour travailler avec matrices et vecteurs :
    • Median — renvoie la médiane des éléments de la matrice ou du vecteur
    • Quantile — renvoie le qième quantile des éléments matriciels/vectoriels ou des éléments le long de l'axe spécifié
    • Percentile — renvoie le q-ième centile des éléments matriciels/vectoriels ou des éléments le long de l'axe spécifié
    • Std — calcule l'écart type des éléments matriciels ou vectoriels
    • Var — calcule la variance des éléments matriciels ou vectoriels
    • CorrCoef — calcule le coefficient de corrélation matrice/vecteur
    • Correlate — calcule la corrélation croisée de deux vecteurs
    • Convolve — renvoie la convolution discrète et linéaire de deux vecteurs
    • Cov — calcule la matrice de covariance

  2. Nous avons commencé à ajouter des méthodes intégrées pour les tableaux numériques. Les nouvelles méthodes améliorent la convivialité, la compacité du code et la compatibilité du code avec d'autres langages.

    Les 3 méthodes suivantes sont déjà disponibles :
    • ArgSort — trie les tableaux selon la dimension spécifiée ; le dernier est utilisé par défaut (axe=-1).
    • Range — renvoie le nombre d'éléments dans la dimension de tableau spécifiée. Analogue de ArrayRange.
    • Size — retourne le nombre d'éléments du tableau. Analogue de ArraySize.

    Exemple :
    void OnStart()
      {
       int arr[4][5]=
         {
            {22, 34, 11, 20,  1},
            {10, 36,  2, 12,  5},
            {33, 37, 25, 13,  4},
            {14,  9, 26, 21, 59}
         };
       ulong indexes[4][5];
    //--- Trie le tableau
       arr.ArgSort(indexes,-1,0);
       Print("indexes");  
       ArrayPrint(indexes);
      }
    
    // Résultat :
    // indexes
    //     [,0][,1][,2][,3][,4]
    // [0,]   4   2   3   0   1
    // [1,]   2   4   0   3   1
    // [2,]   4   3   2   0   1
    // [3,]   1   0   3   2   4

  3. Nous avons commencé à ajouter des méthodes intégrées pour les chaînes.

    Les méthodes suivantes sont actuellement disponibles :
    • BufferSize — renvoie la taille de la mémoire tampon allouée pour la chaîne.
    • Compare — compare deux chaînes et renvoie le résultat de la comparaison sous la forme d'un entier.
    • Length — renvoie le nombre de caractères dans une chaîne.
    • Find — recherche une sous-chaîne dans une chaîne.
    • Upper — met une chaîne en majuscule.
    • Lower — convertit une chaîne en minuscules.
    • Replace — remplace une sous-chaîne.
    • Reserve — réserve un tampon pour une chaîne.

    Toutes les méthodes sont analogues aux fonctions de chaîne.

      Exemple :
      void OnStart()
        {
         string test="some string";
         PrintFormat("La longueur de la chaîne est %d",test.Length());
        }
      
      // Résultat :
      // La longueur de la chaîne est 11
    • Ajout de la valeur SYMBOL_SUBSCRIPTION_DELAY dans l'énumération ENUM_SYMBOL_INFO_INTEGER pour le retard de livraison des cotations pour des symboles spécifiques.

      Elle n'est utilisée que pour les symboles de trading basés sur l'abonnement. Le délai s'applique généralement aux données fournies en mode d'essai.

      La propriété ne peut être demandée que pour les symboles sélectionnés dans le Market Watch. Sinon, l'erreur ERR_MARKET_NOT_SELECTED (4302) sera renvoyée.

    • Ajout de la propriété ACCOUNT_HEDGE_ALLOWED dans l'énumération ENUM_ACCOUNT_INFO_INTEGER – permet l'ouverture de positions opposées et d'ordres en attente. La propriété est uniquement utilisée pour les comptes de couverture afin de se conformer à des exigences réglementaires spécifiques, selon lesquelles un compte ne peut pas avoir de positions opposées pour le même symbole, alors que des positions dans la même direction sont autorisées.

      Si cette option est désactivée, les comptes ne sont pas autorisés à avoir des positions et des ordres de sens opposé pour le même instrument financier. Par exemple, si le compte a une position d'achat, l'utilisateur ne peut pas ouvrir une position de vente ou passer un ordre de vente en attente. Si l'utilisateur tente d'effectuer une telle opération, l'erreur TRADE_RETCODE_HEDGE_PROHIBITED sera renvoyée.

    • Nouvelles propriétés dans l'énumération ENUM_SYMBOL_INFO_DOUBLE :
      • SYMBOL_SWAP_SUNDAY
      • SYMBOL_SWAP_MONDAY
      • SYMBOL_SWAP_TUESDAY
      • SYMBOL_SWAP_WEDNESDAY
      • SYMBOL_SWAP_THURSDAY
      • SYMBOL_SWAP_FRIDAY
      • SYMBOL_SWAP_SATURDAY

      Utilisez les valeurs pour obtenir des taux de calcul de swap pour des jours spécifiques de la semaine. 1 — swap simple, 3 — swap triple, 0 — aucun swap.

    • Correction du fonctionnement des fonctions CopyTicks et CopyTicksRange. Une erreur pouvait entraîner le retour de données obsolètes lors du passage à minuit. L'erreur s'est produite lorsqu'aucun tick n'a été fourni pour l'instrument financier.
    • Correction des erreurs signalées dans les journaux de plantage.
    11 février 2022
    MetaTrader 5 build 3210 : Nouvelles méthodes matricielles et contrôle des valeurs minimales/maximales des indicateurs

    MQL5

    1. Ajout des fonctions Min, Max, ArgMin, ArgMax et Sum pour les vecteurs et les matrices. Utilisez ces fonctions pour trouver les valeurs minimales et maximales, les indices pertinents et la somme.
    2. Ajout du support des méthodes Flat pour la matrice. Avec ces méthodes, un élément de matrice peut être atteint via un index au lieu de deux.
      double matrix::Flat(ulong index) const;      // getter
      void matrix::Flat(ulong index,double value); // setter

      Pseudocode pour calculer l'adresse d'un élément matriciel :

      ulong row=index / mat.Cols();
      ulong col=index % mat.Cols();
      
      mat[row,col]

      Par exemple, pour 'matrix mat(3,3)', l'accès aux éléments peut s'écrire comme suit :

        lecture : 'x=mat.Flat(4)', qui équivaut à 'x=mat[1][1]'
        écriture : 'mat.Flat(5, 42)', équivaut à 'mat[1][2]=42'

      Si la fonction est appelée avec un index de matrice non valide, l'erreur d'exécution critique OutOfRange sera générée.

    3. Formatage amélioré des nombres à virgule flottante dans les paramètres d'entrée du programme MQL5. Lors de la lecture de certains nombres réels, des nombres avec de nombreux zéros ont été remplacés dans les paramètres d'entrée, par exemple, 0,4 était représenté par 0,400000000002.
    4. Correction d'erreurs dans la bibliothèque mathématiqueMath\Stat\Math.mqh. La fonction MathSample de cette bibliothèque a été révisée pour correspondre au comportement traditionnel des bibliothèques mathématiques similaires lors de l'échantillonnage avec retour en arrière.
    5. Correction de l'erreur CopyTicks/CopyTicksRange qui pouvait entraîner le retour de données obsolètes lors du franchissement de minuit, lorsqu'aucun tick n'est fourni pour l'instrument financier.
    6. Ajout de nouvelles valeurs INDICATOR_FIXED_MINIMUM et INDICATOR_FIXED_MAXIMUM dans l'énumération ENUM_CUSTOMIND_PROPERTY_INTEGER.
      À l'aide de ces propriétés, vous pouvez fixer ou défixer les valeurs d'indicateur minimales et maximales à l'aide de la fonction IndicatorSetInteger. Lors de l'appel de IndicatorSetInteger(INDICATOR_FIXED_MINIMUM/INDICATOR_FIXED_MAXIMUM, true), la valeur minimale ou maximale actuelle est utilisée.



    Testeur

    1. Algorithme de calcul du ratio de Sharpe révisé pour correspondre à la formule traditionnelle, dans laquelle la valeur correspond à un intervalle d'un an. L'algorithme précédent était basé sur la variabilité du PnL obtenu et ignorait les fluctuations des actions par rapport aux positions ouvertes. Désormais, le calcul inclut les mouvements des actions, tandis que le ratio de Sharpe est interprété de manière classique :
      • Ratio de Sharpe < 0              La stratégie n'est pas rentable et n'est pas adaptée. Mauvais.
      • 0 < Ratio de Sharpe  < 1,0    Le risque ne paie pas. De telles stratégies peuvent être envisagées lorsqu'il n'y a pas d'alternative. Indéfini.
      • Ratio de Sharpe ≥ 1,0          Si le ratio de Sharpe est supérieur à un. Cela peut signifier que le risque est payant et que le portefeuille/stratégie peut donner des résultats. Bon.
      • Ratio de Sharpe ≥ 3,0          Une valeur élevée indique que la probabilité d'obtenir une perte dans chaque transaction particulière est très faible. Très bien.

    Terminal

    1. Optimisation de la consommation mémoire du terminal.
    2. Fonctionnement amélioré de la plateforme avec un sous-système réseau pour améliorer les performances et réduire les retards du réseau.
    3. Suppression de l'affichage du niveau zéro de la grille dans les indicateurs lorsque le rendu de la grille est désactivé.


    28 janvier 2022
    MetaTrader 5 build 3180: Vecteurs et matrices en MQL5 et utilisation améliorée

    Terminal

    1. Ajout de l'activation de la fenêtre graphique lors du déplacement d'un symbole du Market Watch ou d'une opération de trading de l'historique du compte vers celui-ci.

      Ces deux actions changent l'instrument financier du graphique en celui sélectionné. Auparavant, ils ne laissaient pas la fenêtre du graphique devenir active. En conséquence, certaines actions supplémentaires, telles que l'appel d'une boîte de dialogue de trading (F9) ou la modification de l'échelle (+/-) à l'aide de raccourcis clavier, pouvaient être appliquées par erreur à un autre graphique. Maintenant, le graphique, dont le symbole a été modifié par le glisser, est immédiatement sélectionné pour un travail ultérieur.

    2. Ajout de l'ouverture d'une nouvelle fenêtre d'ordre lors d'un double-clic sur une opération de trading dans l'historique du compte. Un instrument financier de l'opération sur laquelle un utilisateur a cliqué est immédiatement inséré dans la boîte de dialogue, ce qui permet un trading plus rapide. Une commande similaire a été ajoutée au menu contextuel.




    3. Ajout d'une inclusion intelligente des volumes réels ou des ticks lors de l'ouverture de nouveaux graphiques. Ces données sont importantes lors de l'analyse du marché. Cependant, tous les traders ne sont pas au courant de sa disponibilité sur la plateforme.

      Les volumes de trading réels ont une priorité plus élevée. S'ils sont fournis par un courtier, leur affichage est activé sur le graphique. Sinon, l'affichage des volumes de ticks est activé.

      Le mécanisme n'est utilisé que si le graphique est ouvert avec le modèledefault.tpl. Les volumes ne sont plus activés lors de la réouverture d'un graphique si un utilisateur les a désactivés manuellement dans les paramètres du graphique. Les modèles personnalisés ne sont pas affectés.

    4. Optimisation et accélération considérable de l'affichage de l'interface utilisateur.
    5. Amélioration de la fonction d'impression des graphiques appelée via le menu Fichier :
      • Correction de l'enregistrement des paramètres d'impression
      • Amélioration de l'apparence de la page imprimée : augmentation des lignes de grille, suppression du nom du programme, mise à jour de la police d'en-tête
      • Agrandissement de la boîte de dialogue d'impression pour un affichage correct de l'interface

    6. Correction du fonctionnement du champ de volume dans le panneau de trading rapide du graphique. Avant le correctif, la valeur était réinitialisée à la précédente valeur après avoir entré une nouvelle valeur et appuyé sur Tab.
    7. Correction de l'affichage de l'historique de trading sur le graphique. Auparavant, les opérations du compte précédent n'étaient pas supprimées des graphiques lors du passage d'un compte à l'autre.
    8. Correction du paiement pour MQL5.com via PayPal.
    9. Correction du blocage de la plateforme lors de l'affichage d'un graphique de volatilité des options.
    10. Vérification du numéro de téléphone fixe dans la fenêtre d'enregistrement du compte réel. Dans certains cas, la plateforme ne permettait pas à un utilisateur de passer à l'étape d'inscription suivante après avoir saisi un numéro correct.
    11. Correction de la vérification des droits lors de la participation à une discussion de groupe avec des membres de MQL5.com. Auparavant, un utilisateur nouvellement rejoint ne pouvait que lire les messages sans pouvoir en écrire.
    12. Modification du texte du graphique en cas d'absence de données. Désormais, "En attente de mise à jour" est remplacé par un nom de symbole, une période et un symbole.
    13. Meilleure prise en charge des prix négatifs ajoutés dans le build 2450. Les valeurs zéro peuvent désormais également être affichées pour les symboles du Market Watch appropriés.
    14. Correction de l'affichage des logos des produits dans le Market lorsque l'on travaillait sous Wine.

    MQL5

    1. Nous continuons à ajouter la prise en charge des vecteurs et des matrices. Les nouvelles fonctions élargissent considérablement les possibilités pour les développeurs de solutions basées sur des réseaux neuronaux.

      Plusieurs fonctions sont actuellement prêtes à l'emploi :
      • Eye - construit une matrice avec des 1 sur une diagonale spécifiée et des 0 ailleurs.
      • Identity - construit une matrice ayant une taille spécifiée avec des 1 sur la diagonale principale et des 0 ailleurs.
      • Ones — construit une matrice ayant une taille spécifiée remplie de 1.
      • Zeroes — construit une matrice ayant une taille spécifiée remplie de 0.
      • Full — construit une matrice ayant une taille spécifiée remplie de valeurs spécifiées.
      • Copy — construit une copie d'une matrice ou d'un vecteur.
      • Diag — extrait une diagonale d'une matrice et remplit la diagonale spécifiée avec les valeurs d'un vecteur.
      • Tri - construit une matrice avec des 1 sur une diagonale spécifiée et en dessous, et des 0 ailleurs.
      • Row — renvoie une ligne de matrice sous forme de vecteur et remplit la ligne spécifiée avec les valeurs du vecteur.
      • Col — renvoie une colonne de matrice sous forme de vecteur et remplit la colonne spécifiée avec les valeurs du vecteur.
      • Rows — renvoie le nombre de lignes dans une matrice.
      • Cols — renvoie le nombre de colonnes dans une matrice.
      • Transpose — transpose une matrice.
      • * — produit de matrices, vecteurs et scalaires — produit scalaire.
      • Power — élève une matrice à une puissance.
      • Kron — produit de Kronecker.
      • Cholesky — décomposition de Cholesky.
      • QR — Factorisation QR d'une matrice.
      • SVD — décomposition singulière.
      • LU — décomposition LU d'une matrice.
      • LUP — décomposition LUP d'une matrice.
      • Norm — calcule la norme de la matrice.
      • Cond — calcule le nombre conditionnel d'une matrice.
      • Spectrum - calcule le spectre d'une matrice
      • Det — calcule le déterminant d'une matrice.
      • Rank - calcule le rang de la matrice.
      • SLogDet — calcule le signe et le logarithme de base du déterminant d'une matrice.
      • Trace - calcule la trace de la matrice.
      • Solve — résoud un système d'équations linéaires.
      • LstSq — résoud un système d'équations linéaires en utilisant la méthode des moindres carrés.
      • Inv — calcule l'inverse d'une matrice.
      • PInv — calcule la pseudo-inverse d'une matrice par la méthode de Moore-Penrose.
      • Compare — compare deux matrices à l'aide d'epsilon.

      Pour plus de détails, veuillez lire la documentation MQL5correspondante.

    2. Correction d'erreurs lors de la gestion des fichiers et des bases de données liées à la limitation de la longueur du chemin. En particulier, la fonction DatabaseOpen permettait de définir un chemin plus grand que celui acceptable, provoquant une création incorrecte de la base de données. Maintenant, la fonction renvoie correctement le code d'erreur ERR_TOO_LONG_FILE_NAME.
    3. Correction du contrôle de la constance variable. Auparavant, le compilateur pouvait parfois ignorer l'erreur "La variable constante ne peut pas être transmise comme référence".
    4. Correction des avertissements erronés du compilateur concernant l'utilisation d'une variable non initialisée.
    5. Correction du fonctionnement de la fonction ChartWindowOnDropped pour les indicateurs. Auparavant, il retournait toujours zéro.
    6. Ajout de la prise en charge de Python 3.10 à l'intégration du module Python.

    VPS

    1. Correction de l'affichage de l'élément VPS dans le navigateur. Auparavant, il pouvait parfois disparaître lors du passage d'un compte à l'autre.

    MetaEditor

    1. Correction du déroulement des expressions complexes dans la fenêtre d'observation de débogage.

    Testeur

    1. Correction de l'exportation des rapports de test vers des fichiers. Certaines valeurs n'étaient pas arrondies correctement si une devise avec une précision de 0 décimales était utilisée comme devise de dépôt. Par exemple, JPY.
    22 octobre 2021
    MetaTrader 5 build 3091 : Améliorations

    Terminal

    1. Correction de l'ouverture d'une page vide lors de l'achat de services MQL5. Désormais, les résultats de l'opération sont immédiatement affichés pour l'utilisateur.
    2. Correction de la compression excessive des images de documents que les utilisateurs téléchargent lorsqu'ils demandent des comptes réels. Cela a amélioré la qualité des contrôles KYC automatiques et a facilité l'ensemble de la procédure d'ouverture de compte.
    3. Correction du fonctionnement des graphiques qui s'ouvrent à la fin du test.

    MQL5

    1. Ajout de la prise en charge de SQLite 3.36.0.

    MetaEditor

    1.  Ajout de la mise en surbrillance de l'arrière-plan des parenthèses correspondantes. L'option peut être activée via les paramètres générauxde MetaEditor.Amélioration du débogueurde programme MQL5.
    2. Amélioration du débogueurde programme MQL5.
    Correction des erreurs signalées dans les journaux de crash.
    21 octobre 2021
    MetaTrader 5 build 3090 : Améliorations et correctifs

    Terminal 

    1. Correction d'une erreur qui pouvait faire disparaître les symboles de trading personnalisés dans certaines conditions.
    2. Amélioration des icônes de menu et de barre d'outils.
    3. Trois nouvelles langues ont été ajoutées à MQL5.com : français, italien et turc.

      Désormais, la plus grande communauté de traders algorithmiques MQL5.community est disponible en 11 langues. Nous avons déjà localisé l'interface du site Web, la documentation et les sujets importants du forum. Les articles et le Calendrier Economique dans les nouvelles langues seront également bientôt disponibles.

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

    MQL5

    1. Correction de bugs dans la fonction StringConcatenate.
    2. Correction du paramètre de la valeur _LastError lors de l'utilisation de la fonction FileSave. La variable peut contenir une valeur nulle au lieu de la description de l'erreur de fonction dans certaines conditions.
    3. Correction de l'importation de données depuis les ressources vers des tableaux de type double.

    MetaTester

    1. Correction d'une erreur qui provoquait le blocage de la fenêtre du graphique pendant les tests visuels.
    Documentation mise à jour.

    14 octobre 2021
    MetaTrader 5 build 3081 : Améliorations des services MQL5 et mises à jour de l'interface

    Terminal

    1. Amélioration de la navigation dans les services de la MQL5.Community

      Les sections Market, Signals et VPS ont été déplacées de l'espace de travail principal de la plateforme vers le navigateur. Le nouveau positionnement offre un accès facile aux produits souhaités et permet une gestion efficace des achats et des abonnements. Des sections "Comment ça marche" ont été ajoutées à chaque service, pour fournir les informations d'utilisation de base.


      Navigation améliorée des services MQL5.community


    2. Toutes les icônes de menu et de barre d'outils ont été entièrement repensées. L'interface du terminal est devenue plus conviviale :

      • Suppression de petits éléments des icônes
      • Réduction du nombre de couleurs utilisées pour éviter le bruit de couleur
      • Moins de dégradés sont utilisés pour améliorer la lisibilité
      • Des métaphores plus simples sont utilisées


      Tous les menus, barres d'outils et boîtes de dialogue ont été repensés dans la plateforme


    3. Ajout de l'affichage des coûts résultant de l'exécution de la transaction. Les informations pertinentes sont affichées dans l'historique des transactions. Cette fonctionnalité est utilisée par les courtiers réglementés par la NFA.


      L'historique du compte affiche désormais les coûts de transaction>


      Si votre courtier active le calcul des coûts sur le serveur, la nouvelle colonne Coûts apparaîtra dans l'historique de trading de votre compte. La colonne indique le coût d'exécution de la transaction par rapport au prix médian actuel du symbole (coût de spread médian).

    4. Lancement de la version coréenne de MQL5.com.

      Il s'agit du huitième langage disponible sur MQL5.community, la plus grande communauté de traders algorithmiques. L'interface du site Web, les articles, le calendrier économique et les sujets importants du forum sont déjà disponibles en coréen. La documentation MQL5 sera bientôt traduite.

    5. Correction du chargement des instruments de trading personnalisés. Dans certains cas, les paramètres de symboles nouvellement créés peuvent remplacer les paramètres de symboles existants.
    6. Correction de l'affichage sur le graphique de l'historique de trading du signal. Auparavant, l'option correspondante permettait l'affichage de toutes les transactions pour tous les instruments financiers, et pas seulement pour les symboles du graphique.
    7. Ajout de l'export de la colonne Frais au rapport d'historique de trading. Auparavant, la valeur n'était affichée que dans l'historique, mais elle ne pouvait pas être enregistrée dans un fichier.
    8. Fonctionnement optimisé et accéléré des panels de trading en un clic dans le Market Watch et sur les graphiques.
    9. Correction de l'utilisation du champ Ratios de Marge pour les instruments de trading personnalisés. Les valeurs peuvent être remises à zéro sous certaines conditions.
    10. Nous continuons de mettre en œuvre le service d'abonnement grâce auquel les traders peuvent acheter des services de trading supplémentaires auprès de courtiers Correction d'erreurs dans la fenêtre d'abonnement aux cotations.
    11. Correction de l'affichage de l'objet analytique Ligne de Tendance. Auparavant, la ligne pouvait disparaître lors de la mise à l'échelle ou du redimensionnement de la fenêtre graphique.
    12. Correction de l'affichage de l'objet analytique Rectangle. L'objet pouvait disparaître si l'un des points d'ancrage se trouvait au-delà de la zone de visibilité du graphique.
    13. Corrections et améliorations de la vitesse de fonctionnement liées au fonctionnement des graphiques intégrés de la MQL5.community.
    14. Correction de l'arrondi du paramètre Valeur dans la liste des positions ouvertes. La partie fractionnaire pouvait être masquée dans les versions précédentes.
    15. Correction de la vérification du téléphone mobile lors du processus d'ouverture de compte. Les numéros de téléphone pourraient être identifiés comme incorrects pour certains opérateurs chinois.
    16. Ajout de la prise en charge des mots de passe de compte MQL5 de plus de 32 caractères.
    17. Correction de l'export de certificats lors de l'utilisation de Wine. Cette option est utilisée pour les comptes avec authentification étendue, lors de la migration de tels comptes du bureau vers le mobile.
    18. Correction des boutons ouvrant les services MQL5 dans le panneau inférieur de la fenêtre Boîte à Outils. Les boutons étaient inactifs lorsque la fenêtre était non fixée.
    19. Ajout d'une limitation sur la taille du menu "Fichier \ Nouveau graphique". Désormais, le menu ne peut pas contenir plus de 128 sous-menus avec des groupes de symboles, chacun n'ayant pas plus de 32 symboles. La limitation accélère le fonctionnement du terminal et évite le gel lors de l'ajout d'un grand nombre de symboles de trading (2 000 ou plus) au Market Watch.

    MQL5

    1. Nous continuons à ajouter la prise en charge des vecteurs et des matrices. Les nouvelles fonctions élargiront considérablement les possibilités pour les développeurs de solutions basées sur les réseaux neuronaux.
    2. Ajout des valeurs DEAL_SL et DEAL_TP dans l'énumération ENUM_DEAL_PROPERTY_DOUBLE : les niveaux Stop Loss et Take Profit d'une transaction.

      Les valeurs pertinentes pour les transactions d'entrée et de renversement sont définies conformément au Stop Loss/Take Profit des ordres, qui a initié ces transactions. Les valeurs Stop Loss/Take Profit des positions appropriées au moment de la clôture de la position sont utilisées pour les transactions de sortie.

    3. Ajout de la valeur MQL_HANDLES_USED dans l'énumération ENUM_MQL_INFO_INTEGER — le nombre d'objets de classe actifs (handles) dans un programme MQL. Ceux-ci incluent à la fois des objets dynamiques (créés via new) et non dynamiques, des variables globales/locales ou des membres de classe. Plus un programme utilise de handles, plus il consomme de ressources.

    4. Ajout de nouvelles méthodes pour travailler avec la structure MqlCalendarValue qui décrit un événement de calendrier économique :

      • HasActualValue(void) — renvoie true si la valeur réelle est définie ; sinon renvoie false
      • HasForecastValue(void) — renvoie true si la valeur prévisionnelle est définie ; sinon renvoie false
      • HasPreviousValue(void) — renvoie true si la valeur précédente est définie ; sinon renvoie false
      • HasRevisedValue(void) — renvoie true si la valeur révisée est définie ; sinon renvoie false
      • GetActualValue(void) — renvoie la valeur réelle d'un événement (double) ou nan si la valeur pertinente n'est pas définie
      • GetForecastValue(void) — renvoie la valeur prévisionnelle d'un événement (double) ou nan si la valeur pertinente n'est pas définie
      • GetPreviousValue(void) — renvoie la valeur précédente d'un événement (double) ou nan si la valeur pertinente n'est pas définie
      • GetRevisedValue(void) — renvoie la valeur révisée d'un événement (double) ou nan si la valeur pertinente n'est pas définie

    5. Correction du débogage des programmes MQL5 qui utilisent des bibliothèques sous forme de fichiers EX5.
    6. Compilation accélérée de programmes contenant de grands tableaux initialisés par une séquence.
    7. Correction de l'exécution de la fonction CopyTicksRange avec des données de symboles de trading personnalisées. La fonction pourrait renvoyer des données hors de la période demandée.
    8. Correction de la vérification de la disponibilité de tous les paramètres du modèle lors de la spécialisation par paramètres. La compilation de code avec des templates de débogage peut provoquer une "erreur de génération de code" dans certaines conditions.

    Signals

    1. Ajout de la possibilité de renouveler automatiquement les abonnements à un Signal.

      Votre abonnement ne se terminera pas brusquement, car le système le renouvellera automatiquement pour un mois supplémentaire via le mode de paiement que vous avez précédemment utilisé pour l'achat de l'abonnement initial.


      Activer le renouvellement automatique de votre abonnement au Signal


      Si vous avez effectué votre paiement précédent à l'aide d'une carte et que le paiement de renouvellement échoue, le système essaiera d'effectuer un paiement à partir du solde de votre compte MQL5.

      Ne vous inquiétez pas des changements de prix d'abonnement. Si le prix augmente, le renouvellement automatique sera annulé. Vous recevrez une notification pertinente par e-mail.

      Vous pouvez activer ou désactiver l'option de renouvellement automatique à tout moment via la section Mes abonnements sur MQL5.com.


      Gérez les renouvellements automatiques à partir de la section Mes abonnements sur MQL5.com


    2. Correction de l'affichage de la vitrine Signals. Maintenant, le système identifie correctement la compatibilité des signaux avec le compte courant.

    Market

    1. Ajout de la recherche de produits par nom d'auteur et login dans la vitrine du Market. Auparavant, le service ne prenait en charge que la recherche par nom de produit et description.

    VPS

    1. Amélioration de l'option de renouvellement automatique de l'abonnement.

      Auparavant, le paiement du renouvellement ne pouvait être effectué qu'à partir du solde du compte MQL5. L'utilisateur devait s'assurer que le montant correspondant était disponible sur son compte.

      Désormais, il n'est plus nécessaire de recharger le compte MQL5. Le système renouvellera l'abonnement en utilisant le même mode de paiement que celui que vous avez utilisé pour l'abonnement initial. Si vous avez payé le VPS avec une carte et activé l'option de renouvellement automatique, le système utilisera le même mode de paiement pour la nouvelle période d'abonnement. Si le paiement échoue, le système essaiera d'effectuer un paiement à partir du solde de votre compte MQL5.


      Utilisez des cartes et d'autres méthodes de paiement pour le renouvellement automatique


      Avec la nouvelle option, vous pouvez être sûr que vos abonnements aux Expert Advisors et aux signaux ne s'arrêteront pas en raison de la fin de la période VPS. De plus, il n'est pas nécessaire de vérifier et de recharger votre solde manuellement.
      L'option ne sera utilisée que pour les nouveaux abonnements. Les paiements pour le renouvellement des abonnements existants seront effectués à partir du solde du compte MQL5.

    Tester

    1. Correction d'erreurs de test visuel. Dans certaines conditions, les graphiques peuvent ne pas afficher les indicateurs utilisés dans les Expert Advisors.

    MetaEditor

    1. Correction du saut à la déclaration de fonction ou de variable en utilisant Alt+G. L'action pouvait échouer si la déclaration était en dessous de la ligne d'appel.
    2. Ajout de l'affichage du type d'objet pour les références aux objets de classe dans le débogueur.
    3. Ajout de la possibilité d'afficher l'union dans la liste des expressions surveillées.

    MetaTrader 5 iPhone/iPad, MetaTrader 5 Android

    1. Ajout de l'affichage d'une clause de non-responsabilité lors du démarrage de l'application. Veuillez la lire attentivement. De plus, certains courtiers peuvent créer automatiquement un compte de démonstration lors du premier démarrage de l'application. Dans ce cas, vous verrez les termes pertinents.


      Avis de non-responsabilité ajoutés dans MetaTrader 5 pour iPhone/iPad

    2. Ajout de la possibilité de connecter un compte à surveiller dans le service Signals directement depuis l'application mobile. Cela peut être fait en sélectionnant "Surveillance du compte" dans le menu. Pour plus de commodité, le numéro de compte et le nom du courtier sont automatiquement ajoutés à la fenêtre d'inscription. Vous devez également spécifier le nom du signal et un mot de passe d'investisseur.

      Connectez votre compte au monitoring pour accéder à des statistiques de trading avancées, pour partager les résultats avec d'autres traders ou pour commencer à vendre vos signaux.

    3. Ajout de la prise en charge de Huawei AppGallery et des services HMS pour les terminaux mobiles fonctionnant sous Android OS. Les propriétaires de smartphones Huawei peuvent installer l'application à partir du magasin concerné et utiliser les notifications push.

    Documentation mise à jour.



    18 juin 2021
    MetaTrader 5 build 2980: Notifications push pour les opérations de trading

    Terminal

    1. Ajout de la possibilité de recevoir des notifications push du serveur. Vous serez informé des opérations de trading exécutées même si votre terminal est fermé.



      Dans les versions précédentes, les notifications sur un appareil mobile ne pouvaient être envoyées qu'à partir du terminal de bureau du trader. Lors de l'exécution d'une opération de trading, le terminal envoyait la notification correspondante à l'identifiant MetaQuotes spécifié dans les paramètres. Les notifications ne pouvaient être envoyées qu'à partir d'un terminal en cours d'exécution. Cette exigence a été levée. Si un Take Profit se déclenche sur le serveur alors que votre ordinateur est éteint, vous recevrez une notification concernant une position fermée du serveur.

      Pour commencer à recevoir des notifications du serveur, vous devez :
      • Avoir un compte réel car les notifications du serveur ne fonctionnent pas pour les comptes de démonstration
      • Installer MetaTrader 5 pour iOS ou Android sur votre smartphone
      • Ouvrir la section Messages dans le terminal mobile, recherchez votre ID MetaQuotes et spécifiez-le dans les paramètres du terminal de bureau
      • Activer les notifications du serveur dans les paramètres du terminal de bureau

      La disponibilité des notifications du serveur doit être fournie par votre courtier
      Trois types de notification sont pris en charge : les ordres, les transactions et les opérations sur le solde. Lorsque vous activez l'option, les types de notification disponibles seront affichés dans le journal du terminal :
      '1222': abonné aux transactions, ordres, notifications de solde du serveur de trading

    2. Mise à jour de la vitrine MetaTrader VPS. La section VPS est devenue plus pratique :
      • L'interface s'adapte à n'importe quelle largeur d'écran.
      • La vitrine prend moins de place verticalement pour s'intégrer dans l'espace de travail.
      • Les informations nécessaires n'apparaissent que lorsqu'elles sont nécessaires. Les détails du paiement n'apparaissent qu'une fois que vous avez sélectionné un plan de paiement.



    3. Dans le panneau Strategy Tester, ajout de commandes pour basculer rapidement vers les services MQL5 et vers la fenêtre Boîte à Outils. Les commandes ne sont affichées que dans la section Présentation, tandis que dans d'autres onglets, le panneau est utilisé pour gérer les tests.



    4. Ajout de la sauvegarde des états des fenêtres pour les services MQL5. Si vous laissez le Market ouvert avant de fermer le terminal, la fenêtre correspondante s'ouvrira au prochain lancement du terminal.
    5. Correction de la synchronisation périodique de l'état du compte MQL5. La copie du signal peut échouer dans certaines conditions en raison d'une erreur.
    6. Correction de l'affichage d'une sélection de produits Market recommandés.
    7. Correction du menu contextuel des signaux dans le Navigateur. Vous pouvez utiliser le menu pour visualiser le signal auquel vous êtes abonné ou pour vous désabonner d'un signal.

    MQL5

    1. Correction d'une erreur de l'opérateur "-" dans l'implémentation des nombres complexes dans la bibliothèque standard (fichier MQL5\Include\Math\Alglib\complex.mqh).
    2. MQL5 : Vous pouvez désormais utiliser n'importe quelle expression dans les séquences d'initialisation, pas seulement les constantes. Cela améliore la convivialité et la compatibilité avec le code C++.
      struct POINT
        {
         int x,y;
        };
      
      int GetYFunc(y)
        {
         return(y * y);
        }
      
      void SomeFunction(int x1,int x2,int y)
        {
         POINT pt={ x1+x2, GetYFunc(y) };
         ProcessPoint(pt);
        };
    3. Correction d'une erreur qui se produisait lors de la compilation des unions avec d'énormes tableaux de données.
    4. Correction du fonctionnement de la fonction StringToCharArray. Maintenant, il convertit l'intégralité de la chaîne passée en un tableau de char au lieu de s'arrêter au premier caractère nulde fin.
    5. Ajout d'un contrôle pour la présence explicite d'un appel de constructeur pour les classes/structures si leur classe parent n'a pas de constructeur par défaut.

    MetaEditor

    1. Ajout de l'affichage d'un lieu d'appel pour les fonctions en ligne dans le rapport de profilage.

      Dans l'exemple ci-dessous, l'appel à la fonction func(); est maintenant mis en évidence comme suit :




      La fonction func elle-même n'est pas mise en évidence puisque son code complet est placé dans OnStart.

    2. Ajout de la possibilité de créer des projetsvides. Il s'agit d'une fonctionnalité utile pour les projets de développement non standard avec des structures de fichiers spécifiques pour lesquelles les modèles par défaut ne conviennent pas.




      Un fichier de paramètres vide "mqproj" sera créé dans ce cas. Les fichiers de code source doivent être créés manuellement.

    3. Implémentation d'un lancement plus rapide de MetaEditor.
    4. Correction de l'affichage des données dans la liste des expressions observées lors du débogage. La liste peut afficher des valeurs de variables incorrectes dans certaines conditions.
    5. Correction de l'ajout automatique de l'extension ".py" aux fichiers de script Python créés à l'aide de l'assistant MQL.
    Documentation mise à jour.


    21 mai 2021
    MetaTrader 5 build 2940: Positionnement des vitrines des Services MQL5 dans l'espace de travail et conception mise à jour

    Terminal

    1. Les services de trading, y compris le Market, les Signals et le Virtual Hosting sont désormais affichés de manière pratique dans la zone de travail principale de la plateforme.

      Dans les versions antérieures, les zones d'achat des services MQL5 étaient situées dans la petite fenêtre Boîte à outils sous la fenêtre principale. Le nouvel emplacement permet l'affichage de vitrines complètes avec des options d'achat pratiques. La suppression des onglets inutiles de la zone inférieure offre plus d'espace pour d'autres fonctions de la plateforme.




      L'accès aux services supplémentaires n'interfère pas avec les principales fonctions, telles que le trading et l'analyse graphique.
      • Les onglets de service sont situés à la fin de la barre, après tous les onglets du graphique.
      • Les fenêtres de service inutilisées peuvent être fermées. Pour les rouvrir, utilisez le Navigateur, la barre d'outils ou le menu "Services".

      Nous avons également complètement repensé les services. Le design est devenu plus élégant et léger. Les signaux comportent des données supplémentaires, qui n'étaient auparavant disponibles que via la vitrine du site Web de la MQL5.community : un diagramme polaire avec les principales caractéristiques, les mesures de fiabilité et d'activité et d'autres variables.



    2. Ajout de la prise en charge des adresses IPv6.
      IPv4 qui est utilisé dans tous les réseaux a été créé il y a plus de 30 ans. Il contient des adresses IP de 32 bits, qui sont représentées par quatre nombres de 8 bits séparés par des points. Cet algorithme produit plus de quatre milliards d'adresses IP uniques. Cependant, le nombre croissant d'utilisateurs et d'appareils a accéléré l'épuisement du pool d'adresses disponibles.

      Pour éviter le problème d'épuisement, certains produits offrent une prise en charge supplémentaire de la norme IPv6 moderne. Ce protocole utilise une adresse de 128 bits, représentée par x:x:x:x:x:x:x:x, où chaque x est une valeur hexadécimale de six éléments d'adresse de 16 bits. Théoriquement, ce format autorise 5x10^28 adresses uniques. En plus d'un vaste espace d'adressage, ce protocole présente d'autres avantages par rapport à l'ancienne version. Pour plus de détails, veuillez consulter les articles spécialisés.

      La plateforme MetaTrader 5 est entièrement prête pour IPv6. Si votre courtier ou fournisseur passe au nouveau protocole, la prise en charge du protocole sera activée de manière transparente dans la plateforme, sans qu'aucune action supplémentaire ne soit requise de votre part.

    3. Terminal : Nous continuons à implémenter la fonctionnalité du gestionnaire de tâches présentée dans le build 2815. Nous avons ajouté une indication explicite pour les graphiques, sur lesquels le débogage ou le profilage du programme MQL est en cours d'exécution.




    4. Implémentation d'un lancement de plateforme plus rapide sous Wine sur les ordinateurs macOS et Linux. Optimisation générale et corrections de bugs :
      • Amélioration de l'affichage des menus, des barres d'outils et des boîtes de dialogue.
      • Correction d'erreurs dans l'affichage des sections "Market", "Signaux" et "VPS". En particulier, nous avons corrigé le chargement des logos de produits sur la vitrine du "Market".
      • Mise à jour du package pour une installation facile de MetaTrader 5 sur les ordinateurs macOS. Avec ce package, la plateforme peut être installée de la même manière que toute autre application.
        Le package comprend des composants supplémentaires qui permettent un fonctionnement plus stable et plus rapide. Il est fortement conseillé à tous les utilisateurs de packages de réinstaller MetaTrader 5 en téléchargeant la dernière version sur https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/MetaTrader5.pkg.zip
      Si vous utilisez CrossOver, veuillez réinstaller complètement MetaTrader 5 pour obtenir la dernière version de la plateforme 64 bits.
    5. Correction de l'action de raccourci clavier "Ctrl + F9". Il active l'onglet Trade dans la Boîte à Outils.

    MQL5

    1. Nous continuons à limiter la circulation des technologies plus anciennes, y compris les composants 32 bits.
      • Les terminaux 32 bits ne sont plus autorisés à charger des programmes depuis le Market.
      • Les terminaux 32 bits ne peuvent pas se connecter au service d'hébergement.
      • La version 32 bits de MetaEditor ne prend pas en charge la protection supplémentaire des fichiers via MQL5 Cloud Protector.
      • Les programmes MQL5 compilés sous les anciennes versions de MetaEditor (publiées il y a 5 ans ou plus) ne peuvent pas fonctionner dans la nouvelle version du terminal.

      La prise en charge de la version de la plateforme 32 bits a été interrompue il y a un an, après la sortie de la version 2361. Nous vous recommandons fortement de passer à la version 64 bits de MetaTrader 5 afin d'accéder à toutes les fonctionnalités de la plateforme sans aucune limitation.
      En outre, nous recommandons à tous les Vendeurs, qui ont précédemment téléchargé des versions de produit 32 bits sur le marché, de les recompiler à l'aide du dernier MetaEditor 64 bits et de télécharger les nouvelles versions. La possibilité d'exécuter des programmes MQL5 32 bits dans les terminaux sera bientôt complètement désactivée.
    2. Ajout de la prise en charge des opérations avec des nombres complexes.
      Ajout d'un nouveau type intégré "complex".
      struct complex
        {
         double             real;   // Partie réelle
         double             imag;   // Partie imaginaire
        };
      Le type "complex" peut être passé par valeur comme paramètre pour les fonctions MQL5 (contrairement aux structures ordinaires, qui ne sont passées que par référence). Pour les fonctions importées à partir de DLL, le type "complex" doit être passé uniquement par référence.

      Le suffixe 'i' est utilisé pour décrire des constantes complexes :
      complex square(complex c)
        {
         return(c*c);
        }
        
      void OnStart()
        {
         Print(square(1+2i));  // Une constante est passée en paramètre
        }
      
      // "(-3,4)" will be output, which is a string representation of the complex number 
      Seules les opérations simples sont actuellement disponibles pour les nombres complexes : =, +, -, *, /, +=, -=, *=, /=, ==, !=.

      La prise en charge de fonctions mathématiques supplémentaires sera ajoutée ultérieurement, permettant le calcul de la valeur absolue, du sinus, du cosinus et autres.

    3. Nouveau code d'erreur TRADE_RETCODE_HEDGE_PROHIBITED - l'ouverture d'une position ou la passation d'un ordre en attente n'est pas autorisée car les positions de couverture sont interdites. L'erreur est renvoyée si un utilisateur tente d'exécuter une opération de trading au cas où la couverture est désactivée pour le compte et qu'un ordre ou une position opposée existe déjà pour le même symbole.

    MetaEditor

    1. Correction du débogage et de la terminaison du profilage en mode non visuel.
    2. Correction du profilage de l'indicateur sur des données réelles. Un tel profilage pourrait ne pas démarrer dans certaines conditions.

    VPS

    1. Correction de la migration de l'environnement vers un VPS. Une erreur peut se produire pour les Expert Advisors contenant des indicateurs en tant que ressources.

    Signaux

    1. Le mode de trading fixe vérifie les signaux copiés. Le trading de symboles peut être limité du côté du courtier, c'est-à-dire que le courtier peut définir des conditions 'long uniquement', 'court uniquement' ou 'clôture uniquement'. Dans les versions antérieures, la synchronisation exigeait des conditions de trading complètes et la copie n'était donc pas autorisée dans tous les autres cas. Après la mise à jour, les conditions partiellement limitées seront considérées comme "trading". Cette capacité sera particulièrement utile pour les clients des courtiers en actions qui souhaitent copier des signaux.

    Testeur

    1. Correction des vérifications des sessions de trading pendant les tests. L'exécution de l'opération de trading pouvait échouer pendant le test dans certaines conditions, auquel cas l'erreur "marché fermé" était renvoyée même si l'opération avait été lancée au cours d'une session de trading.
    Documentation mise à jour.
    2 avril 2021
    MetaTrader 5 build 2875 : Améliorations et correctifs

    Terminal

    1. Correction d'un bug qui entraînait la copie des programmes standard MQL5 mis à jour dans le répertoire de données racine du terminal au lieu du sous-répertoire MQL5. En raison de cette erreur, des dossiers supplémentaires "Experts", "Images", "Include" et autres pourraient être créés dans le répertoire de données.

      Après la mise à jour de la plateforme, ces dossiers seront vérifiés et automatiquement supprimés.

    1. Correction d'une erreur qui empêchait les utilisateurs de se connecter au chat intégré MQL5.community.
    1. Correction de l'optimisation des Expert Advisors via le MQL5 Cloud Network. L'optimisation peut ne pas démarrer dans certaines conditions.

    MetaEditor

    1. Correction d'erreurs et de plantages lors du débogage et du profilage du programme MQL5.

    Documentation mise à jour.
    26 mars 2021
    MetaTrader 5 build 2860: Améliorations pour Wine et poiur l'intégration de SQL

    Terminal

    1. Ajout de la possibilité d'activer/désactiver des services MQL5.community supplémentaires. Par exemple, si vous n'êtes pas intéressé par les articles de programmation MQL5 ou par la copie de trading du service Signaux, vous pouvez désactiver la section correspondante pour optimiser les ressources et l'espace de travail du terminal.


      Tous les services sont activés par défaut.

    2. Nous avons considérablement optimisé le fonctionnement du terminal sous Wine sur macOS et Linux:
      • Désormais, les fenêtres de service non ancrées (Navigateur, Boîte à outils) ne peuvent pas être déplacées au-delà des frontières du terminal. Auparavant, cela pouvait entraîner des difficultés à faire glisser les fenêtres vers le terminal.
      • Correction du redimensionnement du contenu de la fenêtre de service lors du redimensionnement de la fenêtre.
      • Correction de l'affichage des mesures de performance dans le Gestionnaire des tâches.
      • Amélioration de l'affichage des icônes sur la barre d'outils.
      • Correction du compteur de messages non lus dans les chats.
      • Correction de l'affichage des commandes système du graphique : Masquer, Développer et Fermer.
      • Correction de l'affichage du journal.
      • Correction de l'affichage des info-bulles des graphiques.
      • Correction des commandes d'impression du graphique.
      • Correction de l'affichage du menu supérieur lors de l'utilisation de skins Linux.
      • Correction de la recherche dans GitHub, MSDN et Stack Overflow dans MetaEditor.

      Nous recommandons à tous les utilisateurs de mettre à jour Wine vers la dernière version stable. Cela augmentera les performances et la fiabilité de la plateforme.
    3. Ajout de la prise en charge des ordres "Market To Limit" lors du trading sur BORSA Istanbul. Un tel ordre est initialement exécuté comme un ordre au marché. Si la liquidité ne suffit pas, le volume restant est ajouté au carnet d'ordres en tant qu'ordre limité avec le dernier prix de transaction.
    4. Correction de l'affichage du graphique de volatilité. Maintenant, le graphique est construit conformément à la date d'expiration sélectionnée sur le tableau des options.
    5. Correction de l'ajout d'instruments de trading au Market Depth via la barre de recherche rapide. Si le nom du symbole comporte un espace, ce symbole ne sera pas ajouté à la liste.


    MQL5

    1. Possibilités étendues de travail avec les bases de données SQL. Les requêtes prennent désormais en charge diverses fonctions statistiques et mathématiques.

      Fonctions statistiques
      • mode
      • médiane (50e percentile)
      • percentile_25
      • percentile_75
      • percentile_90
      • percentile_95
      • percentile_99
      • stddev ou stddev_samp - exemple d'écart type
      • stddev_pop - écart type de la population
      • variance ou var_samp - variance de l'échantillon
      • var_pop - variance de la population

      Fonctions mathématiques

      Exemple
      select
        count(*) as book_count,
        cast(avg(parent) as integer) as mean,
        cast(median(parent) as integer) as median,
        mode(parent) as mode,
        percentile_90(parent) as p90,
        percentile_95(parent) as p95,
        percentile_99(parent) as p99
      from moz_bookmarks;
    2. Ajout de nouvelles macros :
      • __COUNTER__ - augmente de un à chaque appel. Des compteurs séparés sont fournis lorsqu'ils sont utilisés dans des modèles et des macros.
      • __RANDOM__ - génère un nombre aléatoire de type ulong ; analogue à la fonction MathRand.

    3. Correction du fonctionnement des requêtes graphiques synchrones dans les cas où le symbole graphique n'existe pas. Désormais, les fonctions renvoient une erreur pertinente au lieu d'attendre indéfiniment un résultat. Une situation avec un symbole inexistant peut être causée par la commutation entre les comptes de trading avec différents ensembles d'instruments de trading.
    4. Fonctions CopyTicks* optimisées et accélérées.

    MetaEditor

    1. Changement de l'ordre du profilage et du débogage en utilisant les données historiques.

      Le profilage s'exécute désormais toujours en mode non visuel. Le débogage par défaut s'exécute également en mode non visuel. L'option appropriée peut être activée manuellement dans les paramètres de MetaEditor :




    2. Ajout de la possibilité de profiler les services. Le processus est similaire à d'autres programmes MQL5.
    3. Correction de l'affichage des noms de fonctions dans le rapport du profileur. Dans certaines conditions, les noms peuvent être spécifiés comme <unknown>.

    La documentation a été mise à jour.

    26 février 2021
    MetaTrader 5 build 2815: Accès au Market Depth à partir de Python, amélioration du débogueur et du profileur

    Terminal

    1. Ajout de la possibilité d'accéder aux données du Depth of Market via l'API Python.
      Trois nouvelles fonctions permettent d'obtenir rapidement des données pour les calculs statistiques et les tâches d'apprentissage automatique, qui peuvent être implémentées à l'aide d'une pléthore de bibliothèques Python prêtes à l'emploi.
      • market_book_add - abonne le terminal MetaTrader 5 pour recevoir les événements liés aux changements dans le Depth of Market pour le symbole spécifié.
      • market_book_get - renvoie un tuple de BookInfo contenant les enregistrements Depth of Market pour le symbole spécifié.
      • market_book_release - annule l'abonnement du terminal MetaTrader 5 aux événements liés aux changements du Depth of Market pour le symbole spécifié.

    2. La longueur maximale des messages Push a été augmentée de 256 à 1024 caractères. Désormais, vous pouvez envoyer plus d'informations à partir de vos programmes MQL5 sur les appareils mobiles.
    3. Ajout d'une version préliminaire du gestionnaire de tâches, qui peut être appelée en appuyant sur la touche F2.
      Le Gestionnaire de Tâches permet de surveiller les ressources consommées par la plateforme. Vous pouvez afficher la quantité de mémoire consommée par les graphiques, les ressources de processeur utilisées par les Expert Advisors et d'autres mesures de performances. Si les performances de votre plateforme ralentissent, vous pouvez facilement détecter et résoudre le problème.



    4. Service d 'abonnements amélioré. Une indication spéciale a été ajoutée pour les symboles ayant des cotations différées :
      • Les symboles du Market Watch sont marqués d'une icône d'horloge et la valeur du délai est affichée dans l'info-bulle
      • La notification de retard de données est affichée sur les graphiques




    5. Correction de l'affichage de la liste des Abonnements lorsqu'il n'y a pas de connexion au compte de trading.
    6. Correction des liens dans les e-mails et les newsletters. Tous les liens s'ouvrent désormais dans le navigateur par défaut. Auparavant, les liens s'ouvraient uniquement dans Internet Explorer.
    7. Correction des connexions de la fonction WebRequest aux hôtes avec adresses IPv6 et protection Cloudflare.
    8. Amélioration des fonctionnalités et de la réactivité du service VPS.
    9. Fonctionnement amélioré sous Wine et MacOS/Crossover, y compris la version pour macOS Big Sur avec le processeur M1.

    MQL5

    1. Correction d'une erreur dans la fonction ArrayPrint. La fonction pouvait parfois échouer à imprimer les tableaux.
    2. Opérations sur les fichiers optimisées effectuées par les fonctions File*. Désormais, les opérations de lecture et d'écriture de fichiers s'exécutent beaucoup plus rapidement.
    3. Suppression de la restriction exigeant la spécification de la taille pour les deuxième, troisième et quatrième dimensions d'un tableau dynamique, lorsque le tableau est utilisé comme paramètre de fonction. Cela augmente la réutilisation et la flexibilité du code.
      void func(int &arr[ ][ ][ ][ ])
        {
        }
    4.  Correction du fonctionnement de la fonction ArrayBsearch. La fonction peut renvoyer un index incorrect de l'élément trouvé lors d'une recherche binaire.

    MetaEditor

    1. De nouvelles fonctionnalités sont devenues disponibles dans le débogueurremanié.
      • Les tableaux sont maintenant affichés dans la fenêtre d'observation conformément au tri défini par ArraySetAsSeries.
      • Ajout de la prise en charge des variables statiques locales.
      • Correction de l'affichage de la valeur de l'élément de tableau spécifié.
      • Correction de la gestion des champs de classe "statiques".
      • Autres améliorations pour un débogage plus précis et plus fiable.

    2. Ajout de l'option "Activer les optimisations dans le profilage".
      Le mode d'optimisation du code peut être désactivé afin d'inclure plus de détails dans le rapport de profilage. La vitesse du code sans optimisation peut être plusieurs fois plus lente, mais ce mode offre une couverture de code plus large. Veuillez noter qu'avec le code d'optimisation, les goulots d'étranglement peuvent être imprécis.
      Un mode de profilage plus doux peut être défini en désactivant l'option "Activer l'inlining dans le profilage".


      L'option de gestion de l'optimisation a également été ajoutée aux paramètres du projet.
      • Si l'optimisation est désactivée dans le projet, la nouvelle option est ignorée et l'optimisation sera donc toujours désactivée pour le profilage (y compris les opérations en ligne).
      • Si l'optimisation est activée dans le projet, la nouvelle option sera prise en compte lors de la compilation du profilage.

    3. Ajout de la journalisation pour les processus de débogage et de profilage. Les paramètres d'environnement sont enregistrés au démarrage de l'opération ; les statistiques des données collectées sont enregistrées à l'arrêt de l'opération.
      MQL5 profiler    starting 'ExpertMACD.ex5' on history with parameters:
      MQL5 profiler       symbol: 'EURUSD'
      MQL5 profiler       period: 'H1'
      MQL5 profiler       date from: '2021.01.01'
      MQL5 profiler       date to: '2021.02.22'
      MQL5 profiler       ticks mode: 'every tick'
      MQL5 profiler       execution delay: 0 ms
      MQL5 profiler       deposit: 10000
      MQL5 profiler       currency: 'USD'
      MQL5 profiler       leverage: 1:100
      MQL5 profiler       profit in pips: NO
      MQL5 profiler    profile data received (4640 bytes)
      MQL5 profiler    758 total measurements, 0/0 errors, 470 kb of stack memory analyzed
      MQL5 profiler    7782 total function frames found (1929 mql5 code, 342 built-in, 1403 other, 4108 system)

    Testeur

    1. Correction de la spécification des heures de non-trading dans les paramètres de test avancés.

    Documentation mise à jour.

    15 janvier 2021
    MetaTrader 5 build 2755 : Popup des Prix et améliorations du Débogueur

    Terminal

    1. Fenêtre Contextuelle des Prix révisée permettant d'afficher les prix des symboles financiers sur n'importe quelle taille d'écran.

      La fenêtre prend désormais en charge la présentation multi-colonnes, permettant une utilisation efficace de l'espace de l'écran. Pour changer de mode d'affichage, utilisez la boîte de dialogue des propriétés de la fenêtre.


      Les autres améliorations de cette fenêtre sont les suivantes :
      • Ajout du menu de sélection de colonne. Le menu présente les mêmes propriétés de symbole que celles disponibles dans le Market Watch.
      • Fonctionnement optimisé avec un grand nombre d'instruments financiers. Les performances de la fenêtre sont désormais égales aussi pour 10 que pour 1000 instruments.
      • Ajout de l'affichage simplifié de informations sur l'instrument dans une info-bulle.
      • Correction de l'application des paramètres de couleur pour afficher les prix en hausse et en baisse.

    2. Ajout de l'affichage des transactions sur le graphique des ticks du Market Depth synthétique.

      Le Market Depth synthétique est utilisée pour les symboles, pour lesquels les prix de niveau 2 ne sont pas fournis. Dans ce cas, les niveaux sont construits automatiquement, à des distances égales à un pas de changement de prix, à partir des meilleurs prix Bid et Ask. Désormais, si les dernières données de prix et de volume de transaction sont fournies pour un symbole, les données pertinentes sont affichées sur le graphique en ticks. Les informations sont affichées sous forme de cercles :
      • Les cercles rouges indiquent les transactions de vente.
      • Les cercles bleus indiquent les transactions d'achat.
      • Des cercles verts apparaissent lorsque la direction de la transaction n'est pas définie.

      Plus le cercle est grand, plus le volume de la transaction est important.




    3. Correction du calcul des Grecs dans le tableau d'options. Une erreur pouvait survenir si l'actif sous-jacent de l'option avait un prix de dernière transaction nul.
    4. Nous continuons à mettre en œuvre le nouveau service "Abonnements", qui permet la fourniture de services de trading supplémentaires. Récemment, nous avons corrigé l'affichage des abonnements dépendants. Ces abonnements sont utilisés pour les services groupés.
    5. Amélioration du fonctionnement de la plateforme sous Wine.

    MQL5

    1. Ajout de la génération d'événements ChartEvent lors du relâchement des boutons droit et central de la souris. Cet événement peut être utilisé lors de la création de panneaux graphiques. Pour activer les événements, désactivez le menu contextuel du graphique via la propriété CHART_CONTEXT_MENU.
    2. Correction d'un bug provoquant une erreur significative dans le temps d'attente de la fonction Sleep.

    MetaEditor

    1. Nous avons lancé la mise à jour globale du débogueur. La fenêtre des expressions observées a été considérablement améliorée. Désormais, il permet de visualiser le contenu des tableaux et des objets sous forme de listes déroulantes, ainsi que des valeurs de pointeur.




      Pour visualiser un tableau ou un objet, double-cliquez dessus dans la fenêtre d'observation.

    2. Correction du gel lors de l'ouverture de certains projets.
    La documentation a été mise à jour.

    26 novembre 2020
    MetaTrader 5 build 2715: Améliorations générales

    Terminal

    1. Correction du gel de la plateforme lors de l'utilisation du tableau des options. Le gel peut être causé par une taille de tick zéro spécifiée dans les paramètres de l'instrument de trading.
    2. Correction d'erreurs d'affichage de l'interface utilisateur sur les écrans HiDPI.

    MQL5

    1. Correction de la conversion de chaîne en date/heure par la fonction StringToTime. Une erreur pouvait se produire lors de la spécification de l'heure sous la forme "aaaammjj [hhmiss]".
    2. Correction du fonctionnement de l'opérateur de copie implicite pour les objets contenant des tableaux dynamiques. Désormais, l'opération réduit la taille de l'objet de destination à la taille de l'objet copié.
      struct MyStruct
      {
        string Array[];
      };
      
      void OnStart()
      {
        MyStruct a1,a2;
        ArrayResize(a1.Array,3);
        ArrayResize(a2.Array,1);
        a1=a2;
      }
      Auparavant, la taille du tableau "a1" était égale à 3 après l'appel de la fonction. Maintenant, la taille sera 1.

    MetaTester

    1. Mise à jour de l'algorithme de calcul des notes pour les agents de test du MQL5 Cloud Network. La notation est désormais déterminée avec plus de précision et est modifiée moins fréquemment.

    La documentation a été mise à jour.
    12 novembre 2020
    MetaTrader 5 Platform Build 2690: Améliorations de MetaEditor

    Terminal

    1. Correction de l'affichage du Market Depth synthétique. Auparavant, cette fonctionnalité pouvait être indisponible pour certains symboles.

      La profondeur du marché synthétique est utilisée pour les symboles, pour lesquels les prix de niveau 2 ne sont pas fournis. Dans ce cas, les niveaux sont construits automatiquement, à des distances égales à un pas de changement de prix, à partir des meilleurs prix Bid et Ask. C'est un outil pratique pour passer, modifier et supprimer des ordres, rapidement et avec un maximum de clarté.



    MQL5

    1. Accès optimisé et grandement accéléré aux derniers prix des programmes MQL5, en utilisant la fonction SymbolInfoTick.
    2. Correction de la réinitialisation des paramètres de l'indicateur Ichimoku Kinko Hyo à partir d'une boîte de dialogue.



    3. Correction du gel des fonctions Copy* lorsque l'historique n'est pas disponible pour un instrument de trading.
    4. Plus d'améliorations dans la mise à jour totale du profileur de code. Les améliorations suivantes ont été mises en œuvre, en plus des innovations présentées dans le build 2650:
      • Amélioration de la présentation des données
      • Des noms de colonnes plus courts sont désormais utilisés dans le rapport
      • Possibilité d'enregistrer des rapports de profilage dans un fichier
      • Ajout de l'affichage d'une info-bulle avec un numéro de ligne pour les fonctions du rapport.



    MetaEditor

    1. Ajout de la possibilité de désactiver le suivi du presse-papiers et d'effacer l'historique du presse-papiers.

      La fonction de suivi du presse-papiers améliore la convivialité du code source en fournissant un accès rapide aux données récemment utilisées. Appuyez sur Alt+V à n'importe quelle position du code source, sélectionnez l'une des lignes copiées précédemment dans le menu, et la ligne sera insérée à la position sélectionnée.

      Utilisez la commande de la barre d'outils correspondant ou les paramètres de l'éditeur pour activer/désactiver le suivi.




    2. Correction du calcul de certaines expressions observées lors du débogage du programme.
    3. Le trading est désormais interdit pour les Expert Advisors fonctionnant dans le Strategy Tester en mode de réception de frames.

    MetaTester

    1. Correction de l 'importation des résultats d'optimisation dans le Strategy Tester. Une erreur peut entraîner une importation incorrecte des valeurs de la période.

    La documentation a été mise à jour.
    9 octobre 2020
    Nouvelle plateforme MetaTrader 5 build 2650 : chargement des graphiques en arrière-plan et améliorations du profileur de code MQL5

    Terminal

    1. L'onglet Options propose un nouveau paramètre intitulé "Précharger les données du graphique pour les positions ouvertes et les ordres".

      Afin d'économiser du trafic, la plateforme de trading télécharge l'historique des prix des symboles uniquement lorsque les données pertinentes sont demandées, par exemple lorsque le graphique des prix est ouvert ou lorsque le test est lancé. Cependant, cela peut ne pas toujours être pratique pour les symboles utilisés activement. Si vous activez la nouvelle option, les graphiques des symboles pour lesquels vous avez des positions ouvertes ou des ordres en attente, seront mis à jour en arrière-plan à chaque lancement de la plateforme. Ainsi, vous n'aurez pas à attendre le téléchargement des données après l'ouverture du graphique, et les données pertinentes seront immédiatement disponibles pour analyse.




    2. Correction de la génération de barres quotidiennes après les week-ends.
    3. Correction de la mise à jour du graphique. Les graphiques peuvent parfois ne pas être mis à jour après le téléchargement supplémentaire des données de prix mises à jour.
    4. Mise à jour optimisée du cache de l'historique du compte de trading. L'optimisation permet de réduire les retards de données lors de l'utilisation des fonctions History*.
    5. Correction de l'affichage de la colonne Commentaire lors de l'affichage de l'historique des transactions par positions.
    6. Correction de l'affichage du bouton de renouvellement d'abonnement du Signal.

    MQL5

    1. Plus d'améliorations dans la mise à jour totale du profileur de code. Les fonctions suivantes ont été implémentées en plus des innovations présentées dans le build 2615 :

      Ajout de nouveaux paramètres
      Nous avons précédemment annoncé l'utilisation de la méthode d'échantillonnage pour le nouveau profileur. Le profileur effectue des pauses dans l'opération du programme MQL (~1000 fois par seconde) et collecte des statistiques sur le nombre de pauses effectuées dans certains segments de code. Cela inclut également l'analyse des piles d'appels pour déterminer la part de chaque fonction dans le temps total de fonctionnement du code. Après le profilage, les utilisateurs reçoivent des statistiques sur le nombre de fois où l'opération a été interrompue et sur le nombre de fois où chacune des fonctions est apparue dans la pile d'appels :

      • Total CPU [unit,%] - combien de fois la fonction est apparue dans la pile d'appels.
      • Self CPU [unit,%] - le nombre de "pauses" qui se sont produites directement dans la fonction spécifiée. Cette variable est cruciale pour identifier les goulots d'étranglement : selon les statistiques, les pauses se produisent plus souvent là où plus de temps processeur est nécessaire.


      Ajout de la possibilité de désactiver l'intégration de fonctions pendant le profilage
      Lors de la compilation des programmes MQL, les fonctions sont intégrées, c'est-à-dire que le code de fonction est ajouté directement au site d'appel de fonction. Cela permet une accélération significative des performances. Cependant, cette procédure rend difficile le profilage des fonctions. Pour obtenir un rapport sur les fonctions "pures", vous pouvez désactiver l'inlining dans les paramètres de MetaEditor :



      Conception de rapport mise à jour
      Nous avons repensé le rapport de profilage et la présentation des informations de profilage dans la fenêtre de code source. La nouvelle conception sera plus familière aux utilisateurs de Visual Studio.



    2. Correction de l'utilisation de la fonction CopyTicksRange. La fonction pouvait parfois renvoyer des données incomplètes.
    3. Nouveau code d'erreur TRADE_RETCODE_HEDGE_PROHIBITED - l'ouverture d'une position ou la passation d'un ordre en attente n'est pas autorisée car les positions de couverture sont interdites. L'erreur est renvoyée si un utilisateur tente d'exécuter une opération de trading dans le cas où la couverture est désactivée pour le compte et que l'utilisateur a déjà un ordre ou une position opposée pour le même symbole.
    4. Suppression de la possibilité d'appeler MessageBox lors du débogage des indicateurs. MessageBox ne peut pas être appelé à partir d'indicateurs car il suspend l'exécution du thread pendant tout le temps en attendant la réponse de l'utilisateur.
    5. Ajout d'instruments de trading dans le Market Watch optimisé et significativement accéléré en utilisant la fonction SymbolSelect.
    6. Correction du comportement de la fonction ArrayInstert pour les tableaux de taille fixe. Maintenant, le comportement correspond à sa description dans la documentation : lorsque des éléments sont insérés, la taille du tableau de destination ne change pas et les éléments à droite de la position d'insertion sont décalés vers la droite (les derniers éléments 'count' sont "drop off"), tandis que les éléments sont copiés de la source vers l'espace libéré.

    Testeur

    1. Correction de l'utilisation des paramètres de conditions de trading personnalisés pendant les tests ; la boîte de dialogue des paramètres a été révisée.

      • Calcul fixe des commissions personnalisées. Pour activer les commissions, il suffit maintenant de spécifier le nom du symbole plutôt que le chemin complet.
      • Onglets réorganisés pour un fonctionnement plus efficace.
      • Renommage de la boîte de dialogue et de l'option activant les paramètres personnalisés.
      • Largeur de colonne optimisée dans les tableaux de paramètres.
      • Lorsque l'option "Utiliser les paramètres personnalisés" est désactivée, tous les autres paramètres de la boîte de dialogue sont désactivés. Auparavant, les paramètres restaient modifiables et les utilisateurs pouvaient penser à tort que les paramètres seraient appliqués pendant les tests.



    2. Correction d'une erreur occasionnelle liée à la réception des ordres de l'historique de trading par ticket.

    MetaEditor

    1. Ajout de schémas des couleurs pour la fenêtre d'édition de code : clair (par défaut), foncé et bleu. Vous pouvez personnaliser l'éditeur sans avoir à configurer manuellement la vue de l'éditeur.

      De plus, il est désormais possible de personnaliser la couleur de la bordure des info-bulles des fonctions.


       
    2. MetaEditor : toutes les icônes des barres d'outils ont été mises à jour pour prendre en charge les moniteurs HiDPI.
    La documentation a été mise à jour.

    17 septembre 2020
    MetaTrader 5 build 2615 : Analyse fondamentale et critères complexes dans le Strategy Tester

    Terminal

    1. Extension des fonctionnalités d'analyse fondamentale.
      Ajout de nouvelles propriétés d'instruments de trading, qui permettent une catégorisation plus précise des symboles :
      • Secteur - le secteur de l'économie auquel l'actif appartient, comme l'énergie, la finance, la santé et autres.
      • Industrie - le type d'industrie auquel appartient l'actif, comme les vêtements de sport, les accessoires, la construction automobile, la restauration et autres.
      • Pays - le pays de la société dont les actions sont négociées en bourse.

      Sur la base de ces propriétés, un système distinct a été implémenté dans le Market Watch, permettant des opérations efficaces avec des symboles. Sélectionnez une catégorie dans le menu et tous les instruments disponibles seront ajoutés à une liste pour une analyse approfondie :



      Les propriétés pertinentes ont été ajoutées aux spécifications du contrat :



      De plus, les données fondamentales sur les symboles de trading peuvent désormais être ouvertes directement depuis la plateforme. Des liens vers les plus grands agrégateurs ont été ajoutés au menu contextuel du Market Watch :



      La disponibilité des données étendues est contrôlée par le courtier. Cependant, nous avons assuré la disponibilité par défaut des informations avancées pour le nombre maximum d'instruments. Dès que les courtiers mettent à jour leurs serveurs vers la nouvelle version, les données appropriées sur le pays, le secteur et l'industrie apparaîtront sur vos plateformes.
    2. Amélioration des vitrines Signals et Market. Des boutons de location et d'abonnement ont été ajoutés dans le panneau de gauche :



      D'autres améliorations concernent la conception de la section. Cela inclut des couleurs de bouton plus vives, des boutons de connexion MQL5 plus grands et d'autres améliorations.

    3. Correction du calcul des profits/pertes potentiels pour les niveaux des Stop Loss et Take Profit des graphiques.



    4. Correction d'erreurs dans le calcul des instruments synthétiques. Les erreurs peuvent occasionnellement provoquer le blocage de la plateforme au démarrage.
    5. Correction de l'affichage des valeurs de l'indicateur Fractals intégré dans la fenêtre de données.
    6. Toutes les icônes des barres d'outils de la plateforme ont été mises à jour pour prendre en charge les moniteurs HiDPI.
    7. Ajustement du volume de position fixe pour les signaux de trading copiés. Le réglage pouvait parfois échouer en raison de niveaux d'arrêt mal appliqués, ce qui provoquait l'erreur "stops non valides".
    8. Reconstruction de l'historique des prix optimisée après des modifications importantes sur le serveur.
    9. Correction de l'affichage des info-bulles de trading sur les graphiques. Dans certains cas, des info-bulles étaient affichées sur les graphiques même si l'affichage des niveaux des trades était désactivé.
    10. Correction de l'option "Afficher sur les graphiques \ Mise à jour automatique" dans le menu contextuel des commandes et des positions dans la section "Boîte à outils \ Trade". Désormais, si cette option n'est pas cochée, l'affichage de l'historique des transactions sera désactivé pour tous les graphiques ouverts.

    MQL5

    1. Ajout de la fonction MathClassify. Elle détermine le type d'un nombre réel et renvoie un résultat sous forme de valeur de la nouvelle énumération ENUM_FP_CLASS.
      ENUM_FP_CLASS  MathClassify(
         double  value      // nombre réel
         );
      L'énumération contient les valeurs suivantes :
      • FP_SUBNORMAL - un nombre sous-normal qui est plus proche de zéro que le plus petit nombre normal représentable DBL_MIN - 2.2250738585072014e-308.
      • FP_NORMAL - un nombre normal compris entre 2,2250738585072014e-308 et 1,7976931348623158e+308.
      • FP_ZERO - un zéro positif ou négatif.
      • FP_INFINITE - un nombre qui ne peut pas être représenté par le type approprié, l'infini positif ou négatif.
      • FP_NAN n'est pas un nombre.

      Utilisez le code suivant pour vérifier la validité du nombre réel :
      if(MathClassify(value)>FP_ZERO)
        {
         Print("value n'est pas un nombre valide");
        }
    2. Ajout de propriétés de symbole qui peuvent être obtenues à l'aide des fonctions SymbolInfoString :
      • SYMBOL_COUNTRY - le pays de la société dont les actions sont négociées en bourse.
      • SYMBOL_SECTOR_NAME - le secteur de l'économie auquel l'actif appartient, comme l'énergie, la finance, la santé et autres.
      • SYMBOL_INDUSTRY_NAME - le secteur auquel appartient l'actif, comme les vêtements de sport, les accessoires, la construction automobile, la restauration, etc.

      Les propriétés sont renvoyées sous forme d'une chaîne.

      Le secteur et l'industrie auxquels appartient l'instrument peuvent être obtenus comme valeur de dénombrement. Cela peut être fait en demandant les propriétés suivantes à l'aide de la fonction SymbolInfoInteger :

      • SYMBOL_SECTOR
      • SYMBOL_INDUSTRY

      Les énumérations ENUM_SYMBOL_SECTOR et ENUM_SYMBOL_INDUSTRY ont été ajoutées pour travailler avec ces propriétés.

    3. Un nouveau mécanisme de gestion de la mémoire a été implémenté dans les programmes MQL5. Il permet une allocation de mémoire jusqu'à 3 fois plus rapide et évite les éventuelles erreurs d'accès à la mémoire.
    4. Opérations optimisées et accélérées avec l'historique des ticks de compte via les fonctions History*.
    5. Correction d'un appel WebRequest depuis le point d'entrée OnDeinit. Dans les versions antérieures, l'appel de fonction ne pouvait pas être implémenté dans le cas d'un arrêt de l'Expert Advisor.
    6. Correction des appels de fonction WebRequest depuis les services. Auparavant, un appel de fonction pouvait échouer après le redémarrage du service.
    7. Ajout de la vérification de la prise en charge du type double sur un appareil lors de l'utilisation de OpenCL. Le type floate ne peut pas être utilisé dans les calculs financiers en raison d'un arrondi excessif. Par conséquent, la plateforme nécessite explicitement une double prise en charge des calculs. Si le type double n'est pas pris en charge, un message approprié sera écrit dans le journal de la plateforme : le périphérique '<nom>' ne prend pas en charge le type 'double'. Auparavant, un message d'erreur courant était affiché dans de tels cas.
    8. Exécution significativement accélérée de la fonction AccountInfoDouble avec les paramètres ACCOUNT_EQUITY et ACCOUNT_BALANCE.
    9. Correction de l'application de modèles à un graphique via la fonction ChartApplyTemplate.
    10. Correction de l'appel à la fonction ChartSetInteger avec le paramètre CHART_BRING_TO_TOP.
    11. Une nouvelle méthode Conjugate a été ajoutée à la bibliothèque Alglib intégrée. Cette méthode permet le calcul des nombres conjugués pour les nombres complexes. La bibliothèque se trouve dans MQL5\Include\Math\Alglib.
    12. Le code profiler a été entièrement révisé. Le nouveau profiler fonctionne avec une précision et une vitesse plus élevées.
      • L'analyse est maintenant basée sur le code qui est optimisé de la même manière que la compilation de la version finale d'un programme. Cela permet une détermination plus précise de la vitesse d'exécution du code, car exactement le même code sera utilisé pendant l'exécution du programme.
      • Le nouveau profileur utilise la méthode de profilage "Sampling". Cette méthode légère et précise collecte des statistiques de performances des applications en collectant des données de pile d'appels et en calculant les performances à intervalles réguliers.
      • Contrairement aux versions précédentes, le nouveau profileur n'apporte aucune modification au code analysé. La méthode Instrumentation précédemment utilisée a ajouté certaines constructions au code, qui ont été utilisées pour mesurer la vitesse de la fonction. Cela pourrait affecter la vitesse finale du code.

      Le développement du profileur se poursuivra. D'autres améliorations seront disponibles dans les prochaines versions de la plateforme.

    Tester

    1. Opérations optimisées avec le MQL5 Cloud Network. Correction du chargement des Expert Advisors sur les agents.
    2. Ajout d'un nouveau critère d'optimisation "Critère Complexe max". Il s'agit d'une mesure intégrale et complexe de la qualité d'un test réussi. Il mesure plusieurs paramètres :
      • Nombre de Transactions
      • Drawdown
      • Facteur de Récupération
      • Payoff Attendu
      • Ratio de Sharpe

      La valeur la plus élevée d'un paramètre (par exemple le profit) n'est pas toujours la meilleure option en termes d'analyse complexe. Le critère complexe sélectionne progressivement les meilleures passes : d'abord, par le nombre de transactions, puis par le gain attendu, le facteur de récupération, et ainsi de suite. La nouvelle option permet de ne garder que les meilleures passes d'optimisation en fonction de tous les paramètres. De plus, vous pouvez sélectionner la passe optimale en fonction du paramètre souhaité, tel que le profit le plus élevé.

      Sélectionnez le nouveau critère dans les paramètres du testeur de stratégie et lancez l'optimisation.



      La valeur "Critère complexe max" sera affichée dans un onglet "Résultat" séparé dans les résultats d'optimisation. Les passes peuvent être triées par cette colonne. Le nouveau critère supporte la mise en couleur pour mettre en évidence visuellement les meilleures passes. Les valeurs inférieures à 20 sont surlignées en rouge et les valeurs supérieures à 80 sont affichées en vert foncé.



    3. Correction du calcul des commissions personnalisées dans le Strategy Tester.

    MetaEditor

    1. Nous avons lancé la révision globale des fonctions de gestion de code intelligent (IntelliSense).
      • Les astuces affichent désormais la signature de la fonction complète en plus de son nom.
      • La police de caractères des indices est désormais définie conformément aux paramètres de MetaEditor.
      D'autres améliorations seront disponibles dans les prochaines versions de la plateforme.

    La documentation a été mise à jour.

    123456789101112131415