MetaTrader 5 build 3260 : Opérations en masse, fonctions matricielles et vectorielles, et améliorations du chat

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

15 avril 2022

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.