---
title: "MetaTrader 5 Build 1485 : Mode de test et graphiques supplémentaires dans la Bibliothèque Standard - Mises à jour"
description: "L'ordre des entrées dans les journaux du terminal et de MetaEditor a changé. - Mises à jour"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/fr/releasenotes/terminal/1392"
---

# MetaTrader 5 Build 1485 : Mode de test et graphiques supplémentaires dans la Bibliothèque Standard

## L'ordre des entrées dans les journaux du terminal et de MetaEditor a changé

24 novembre 2016

### Terminal

1.  L'ordre des entrées dans les journaux du terminal et de MetaEditor a changé. Avant la mise à jour, les dernières entrées du journal étaient présentées en premier. Maintenant, les plus anciennes entrées sont au début du journal. Un orde de tri inversé et plus conventionnel rend la lecture du journal plus facile.

   ![](https://www.metatrader5.com/c/17/0/terminal_1__6.png)

   De plus, il est maintenant possible de cacher les colonnes 'Time' et 'Source' en utilisant le menu contextuel du journal.
2.  En mode hedging, le ticket d'une position fermée est maintenant affiché pour les ordres et les transactions dans l'historique de trading. Cela aide à trouver les opérations d'ouverture et de fermeture correspondantes.

   ![](https://www.metatrader5.com/c/17/0/terminal_2__5.png)
3.  Correction d'une erreur qui provoquait la copie des SL/TP d'une position existante vers une nouvelle position sur le même instrument. L'erreur pouvait se produire lors de l'utilisation des fonctions de Trading En Un Clic (par exemple, depuis le graphique ou depuis la fenêtre du Market Watch) en mode hedging.
4.  Correction de l'affichage des objets flèches sur les écrans ultra-haute définition (4K).

### MQL5

1.  Une nouvelle fonction [ArrayPrint](https://www.mql5.com/en/docs/array/arrayprint) a été ajoutée qui écrit des structures et des types simples dans le journal.

   ```
   void  ArrayPrint(    const void&   array[],             // Tableau à imprimer    uint          digits=_Digits,      // Nombre de décimales    const string  separator=NULL,      // Le séparateur entre les valeurs des champs de la structure    ulong         start=0,             // L'indice du premier élément à imprimer    ulong         count=WHOLE_ARRAY,   // Le nombre d'éléments à imprimer    ulong         flags=ARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_LIMIT|ARRAYPRINT_ALIGN        );
   ```

    ArrayPrint n'imprime pas tous les champs d'une structure dans les journaux – les champs du tableau et les champs pointeurs vers les objets sont passés. Si vous désirez imprimer tous les champs de la structure, vous devrez utiliser une fonction personnalisée pour imprimer en masse avec le format désiré.

   ```
   //--- Affiche les valeurs des 10 dernières barres    MqlRates rates[];    if(CopyRates(_Symbol,_Period,1,10,rates))      {       ArrayPrint(rates);       Print("Révision\n[time]\t[open]\t[high]\t[low]\t[close]\t[tick_volume]\t[spread]\t[real_volume]");       for(int i=0;i<10;i++)         {          PrintFormat("[%d]\t%s\t%G\t%G\t%G\t%G\t%G\t%G\t%I64d\t",i,          TimeToString(rates[i].time,TIME_DATE|TIME_MINUTES|TIME_SECONDS),          rates[i].open,rates[i].high,rates[i].low,rates[i].close,          rates[i].tick_volume,rates[i].spread,rates[i].real_volume);         }      }    else       PrintFormat("CopyRates a échoué, code d'erreur=%d",GetLastError()); //--- Un exemple de journal /*                     [time]  [open]  [high]   [low] [close] [tick_volume] [spread] [real_volume]    [0] 2016.11.09 04:00:00 1.11242 1.12314 1.11187 1.12295         18110       10   17300175000    [1] 2016.11.09 05:00:00 1.12296 1.12825 1.11930 1.12747         17829        9   15632176000    [2] 2016.11.09 06:00:00 1.12747 1.12991 1.12586 1.12744         13458       10    9593492000    [3] 2016.11.09 07:00:00 1.12743 1.12763 1.11988 1.12194         15362        9   12352245000    [4] 2016.11.09 08:00:00 1.12194 1.12262 1.11058 1.11172         16833        9   12961333000    [5] 2016.11.09 09:00:00 1.11173 1.11348 1.10803 1.11052         15933        8   10720384000    [6] 2016.11.09 10:00:00 1.11052 1.11065 1.10289 1.10528         11888        9    8084811000    [7] 2016.11.09 11:00:00 1.10512 1.11041 1.10472 1.10915          7284       10    5087113000    [8] 2016.11.09 12:00:00 1.10915 1.11079 1.10892 1.10904          8710        9    6769629000    [9] 2016.11.09 13:00:00 1.10904 1.10913 1.10223 1.10263          8956        7    7192138000    Vérification    [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume]    [0] 2016.11.09 04:00:00 1.11242 1.12314 1.11187 1.12295 18110 10 17300175000    [1] 2016.11.09 05:00:00 1.12296 1.12825 1.1193 1.12747 17829 9 15632176000    [2] 2016.11.09 06:00:00 1.12747 1.12991 1.12586 1.12744 13458 10 9593492000    [3] 2016.11.09 07:00:00 1.12743 1.12763 1.11988 1.12194 15362 9 12352245000    [4] 2016.11.09 08:00:00 1.12194 1.12262 1.11058 1.11172 16833 9 12961333000    [5] 2016.11.09 09:00:00 1.11173 1.11348 1.10803 1.11052 15933 8 10720384000    [6] 2016.11.09 10:00:00 1.11052 1.11065 1.10289 1.10528 11888 9 8084811000    [7] 2016.11.09 11:00:00 1.10512 1.11041 1.10472 1.10915 7284 10 5087113000    [8] 2016.11.09 12:00:00 1.10915 1.11079 1.10892 1.10904 8710 9 6769629000    [9] 2016.11.09 13:00:00 1.10904 1.10913 1.10223 1.10263 8956 7 7192138000 */
   ```
2.  Correction d'une erreur dans la concaténation de chaînes de caractères du type S1=S2+S1
3.  Le comportement de la fonction [ArrayResize](https://www.mql5.com/en/docs/array/arrayresize) a changé. Si -1 est passé dans le paramètre reserve_size, la fonction libère la mémoire non utilisée (réservée) si la fonction n'augmente pas la taille du tableau. Définir la nouvelle taille du tableau à 0 avec reserve_size=-1 est équivalent à un appel à ArrayFree. Le nouveau comportement permet d'optimiser l'utilisation de la mémoire dans les programmes MQL5.

   ```
   void OnStart()   {    int arr[]; //--- Quantité de mémoire utilisée initialement     Print("Taille du tableau :",ArraySize(arr)," Mémoire utilisée :",MQLInfoInteger(MQL_MEMORY_USED)," MB"); //--- Quantité de mémoire utilisée pour le tableau de taille 1 avec une réserve    ArrayResize(arr,1,1024*1024);    Print("Taille du tableau :",ArraySize(arr)," Mémoire utilisée :",MQLInfoInteger(MQL_MEMORY_USED)," MB"); //--- Après l'augmentation du tableau, la quantité de mémoire utilisée ne changera pas grâce à la réserve    ArrayResize(arr,1024*512,1024*1024);    Print("Taille du tableau :",ArraySize(arr)," Mémoire utilisée :",MQLInfoInteger(MQL_MEMORY_USED)," MB"); //--- Après la réduction du tableau, la taille de la mémoire ne changera pas non plus    ArrayResize(arr,1);    Print("Taille du tableau :",ArraySize(arr)," Mémoire utilisée :",MQLInfoInteger(MQL_MEMORY_USED)," MB"); //--- La mémoire non utilisée ne sera pas libérée après la suppression de la réserve    ArrayResize(arr,1,-1);    Print("Taille du tableau :",ArraySize(arr)," Mémoire utilisée :",MQLInfoInteger(MQL_MEMORY_USED)," MB");   }
   ```
4.  Des fonctions de dessin de graphiques ont été ajoutées dans la Bibliothèque Standard. Pour utiliser la nouvelle fonctionnalité, incluez MQL5\Include\Graphics\Graphic.mqh à votre projet.Dessin d'un graphique sur la base de 3 séries de données en utilisant GraphPlot :

   ```
   #include <Graphics/Graphic.mqh> double Func1(double x) { return MathPow(x,2); } double Func2(double x) { return MathPow(x,3); } double Func3(double x) { return MathPow(x,4); } void OnStart()   {    GraphPlot(Func1,Func2,Func3,-2,2,0.05,CURVE_LINES);   }
   ```

    Le résultat :

   ![](https://www.metatrader5.com/c/17/0/terminal_8__6.png)

   Dessin d'un graphique sur la base d'un tableau de données en utilisant GraphPlot :

   ```
   #include <Math/Stat/Binomial.mqh> #include <Graphics/Graphic.mqh> void OnStart(void)   {    double    vars[101];    double    results[101];    const int N=2000; //---      MathSequence(0,N,20,vars);    MathProbabilityDensityBinomial(vars,N,M_PI/10,true,results);    ArrayPrint(results,4);    GraphPlot(results); //---   }
   ```

    Le résultat :

   ![](https://www.metatrader5.com/c/17/0/terminal_8_2__6.png)
5.  Fonctions mises à jour pour le travail avec les statistiques mathématiques dans la Bibliothèque Standard. Nous avons vérifié minutieusement la qualité et la fiabilité de toutes les fonctions à la fois dans la version MQL5 et dans le code source du langage R. Pour activer le contrôle de fiabilité et des performances, des tests unitaires sont distribués avec la librairie statique. Ils sont disponibles dans le répertoire \MQL5\Scripts\UnitTests\Stat.

     - TestStat.mq5 — est le script du test principal pour vérifier les résultats de calcul
     - TestPrecision.mq5 — test de précision des calculs
     - TestBenchmark.mq5 — le test inclut les mesures de performances des calculs

### Tester

1.  La mise à jour propose des paramètres avancés pour configuer les délais d'exécution pendant le test. Vous pouvez maintenant tester vos Expert Advisors sous de nombreuses conditions de trading, incluant le cas idéal sans délai ou avec n'importe quel délai.

   ![](https://www.metatrader5.com/c/17/0/terminal_10__6.png)

   Seul le [mode délai aléatoire](https://www.metatrader5.com/en/terminal/help/algotrading/testing#settings) était disponible dans les versions précédentes.
2.  Correction de la génération du volume des ticks sur les barres dans le mode 'OHLC basés sur M1' ('M1 based OHLC').
3.  Correction de la spécification de l'heure d'ouverture des ordres et positions en millisecondes lors du trading en mode hedging.
4.  Correction de l'erreur "ancien tick ("old tick"), qui pouvait apparaître en mode multi-devises ou multi-périodes dans le mode 'ticks réels'.
5.  Améliorations de la vitesse d'exécution de CopyTicks lorsque les ticks demandés sont lus depuis une base de données sur le disque dur.

### MetaEditor

1. Le menu contextuel Fichier dans le Navigator et dans la boîte à outils propose maintenant des commandes permettant de travailler avec dépôt MQL5 de code source versionné.

   ![](https://www.metatrader5.com/c/17/0/terminal_15__6.png)
2. Correction d'une erreur qui pouvait occasionnellement casser l'intégrité de la base de données locale MQL5 lors de l'utilisation de plus de 1024 fichiers dans le dépôt.
3. Correction de l'affichage de l'arbre des fichiers dans le Dépôt MQL5.
4. Correction de l'affichage d'un fichier après le remplacement de texte en masse.

Mise à jour de la documentation.

**Reporter aux nouvelles précédentes :**

- [MetaTrader 5 iOS build 1425](https://www.metatrader5.com/fr/releasenotes/iphone/1391)
- [MetaTrader 5 Build 1455 : Biblibothèques de fonctions mathématiques en MQL5](https://www.metatrader5.com/fr/releasenotes/terminal/1384)
- [La plateforme web MetaTrader 5 est maintenant plus rapide et plus pratique](https://www.metatrader5.com/fr/releasenotes/terminal/1382)
- [MetaTrader 5 iOS build 1403](https://www.metatrader5.com/fr/releasenotes/iphone/1379)
- [MetaTrader 5 Android build 1372](https://www.metatrader5.com/fr/releasenotes/android/1377)
