MetaTrader 5 Build 4260 : Améliorations générales

La nouvelle version améliore les capacités de gestion des événements du clavier dans les programmes MQL5. Les développeurs peuvent désormais capturer les événements de relâchement d’une touche ou d’appui sur une touche morte, améliorant ainsi l'interaction entre les applications et les utilisateurs

22 mars 2024

Terminal Client

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

MQL5

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

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

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

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

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

MetaEditor

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



Testeur

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

Terminal Web

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