Mises à jour : MetaTrader 5

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

8 juin 2017
MetaTrader 5 iOS build 1605: demande simplifiée pour ouvrir un compte réel

La nouvelle version MetaTrader 5 pour iOS build 1605 fournit la possibilité d'ouvrir facilement un compte préliminaire de trading. Sélectionnez "Ouvrir un compte réel" depuis le menu et trouvez votre courtier dans la liste des serveurs. Remplissez votre informations personnelles, joignez deux documents pour confirmer votre identité et votre adresse, et envoyez votre demande. Votre courtier ouvrira un compte réel pour vous et vous demandera toute nouvelle information si nécessaire.


La nouvelle version de MetaTrader 5 iOS comprend également l'optimisation et une nouvelle conception de la section des emails :

  • Les emails du même sujet sont maintenant combinés en fils de discussion et ne sont affichés que comme un seul élément dans la liste des emails.
  • Un aperçu des pièces jointes a également été ajouté.
  • Un email peut contenir jusqu'à 5 pièces jointes (la taille du fichier ne peut pas être supérieure à 8 Mo).
26 avril 2017
MetaTrader 5 Build 1596 : Accès à l'historique des prix

Terminal

  1. Ajout de l'accès à l'historique des barres et des ticks. Il est maintenant possible de télécharger depuis le serveur l'historique complet des barres 1-minute et des ticks via l'interface de la plateforme de trading, et non plus seulement grâce au langage MQL5. L'accès aux données des prix est étendu en préparation du lancement des fonctions personnalisées de flux de données. Dans un futur proche, la plateforme fournira la possibilité de construire des graphiques basés sur les données de prix des utilisateurs, de créer des symboles synthétiques et d'utiliser des graphiques hors ligne.

    Pour télécharger les données, ouvrez la fenêtre de gestion des symboles depuis le menu contextuel de la fenêtre "Market Watch" :



    L'écran contient deux onglets : "Barres" et "Ticks". Sélectionnez le symbole, l'intervalle de temps désiré et cliquez sur "Demander". La plateforme demandera au serveur toutes les données disponibles et affichera immédiatement les données si elles ont été téléchargées. Les données de prix sauvegardées peuvent être exportées dans un fichier CSV.

  2. Ajout de l'affichage de l'heure avec une précision en milliseconde pour les positions, les transactions et les ordres.




  3. Dans la fenêtre de trade, correction des notifications sur le refus d'exécution d'une demande Close By.

MQL5

  1. Correction de la fonction PositionSelect. La fonction pouvait occasionnellement sélectionner une position différente de celle ayant le plus petit numéro de ticket.
  2. Correction du fonctionnement des fonctions CopyTicks et CopyTicksRange lors de la demande de trop nombreuses données de l'historique des ticks.

Signaux

  1. Correction des opérations de copie qui augmente la taille d'une position existante. L'erreur pouvait occasionnellement survenir sur les comptes avec du netting.

Tester

  1. Correction du traitement des ordres limit pour les instruments boursiers. Les ordres placés comme étant meilleurs que le marché (le prix d'achat est inférieur au prix du marché ou le prix de vente est supérieur au prix du marché) sont exécutés sans slippage. Les ordres placés comme étant pires que le prix du marché sont exécutés immédiatement au prix du marché à l'heure de placement de l'ordre.

Mise à jour de la documentation.

8 avril 2017
MetaTrader 5 Android build 1576 : L'historique de trading affiche les positions

L'historique de trading dans MetaTrader 5 Android peut maintenant être affiché sous la forme des positions. Précédemment, l'onglet Historique ne contenait que les ordres et les transactions tandis que maintenant le trading peut maintenant être analysé en terme de positions. Toutes les transactions liées à une position sont regroupées en un seul enregistrement et affichent les informations suivantes :

  • Les heures d'Ouverture et de Fermeture d'une position (déterminées par la première et la dernière transaction)
  • Le volume d'une position (si une position a été fermée partiellement, l'enregistrement contient le volume clos et le volume initial)
  • Les prix d'Ouverture et de Clôture moyens pondérés d'une position
  • Le résultat financier total de toutes les transactions liées à une position

30 mars 2017
MetaTrader 5 iOS build 1547 : L'historique de trading sous la forme des positions

L'historique de trading peut maintenant être présénté sous la forme des positions. Auparavant, l'onglet Historique ne contenait que les ordres et les transactions. Il présente maintenant également les positions. La plateforme de trading collecte les données des transactions liées à une position et les aggrège ensuite en un seul enregistrement. Cet enregistrement contient :

  • Les heures d'ouverture et de fermeture de la position déterminées par les premier et dernier trades
  • Le volume de la position. Si la position a été fermée partiellement, l'enregistrement affiche le volume fermé et le volume initial
  • Les prix d'ouverture et de fermeture moyens pondérés de la position
  • Le résultat financier total des transactions liées à la position

24 mars 2017
MetaTrader 5 Build 1570 : vitrine du Market améliorée et template de fonctions MQL5 améliorés

Terminal

  1. Amélioration de la vitrine du MetaTrader Market, la boutique d'applications. Vous pouvez maintenant naviguer parmi les robots de trading et les indicateurs techniques de façon plus pratique. Nous avons amélioré le design et ajouté la sélection de produits :

    • La page principale présente maintenant les experts et les indicateurs les plus populaires, les nouveaux produits du Market, mais aussi les meilleures applications gratuites.
    • Les sections Experts, Indicateurs et Utilitaires ont maintenant des sous-sections : robots de grille et de hedging, indicateurs de tendances et multi-devises, et bien plus encore.




  2. Correction de la mise à jour du terminal client et des achats intégrés dans le Market, dans le service Signaux et pour l'Hébergement Virtuel lors de l'utilisation d'un compte Windows disponsant de droits limités.
  3. Correction du tri parfois incorrect de l'historique des positions.
  4. Optimisation et correction de l'affichage dans l'onglet Exposition.

MQL5

  1. Ajout du support des surcharges des template de fonctions utilisant des paramètres. Par exemple, nous avons un template de fonction écrivant la valeur du second paramètre dans le premier en utilisant du casting de type. MQL5 ne permet pas de caster le type string vers le type bool. Cependant, nous pouvons le faire nous-mêmes. Créons une surcharge d'un template de fonction :
    //+------------------------------------------------------------------+
    //| Template de fonction                                             |
    //+------------------------------------------------------------------+
    template<typename T1,typename T2>
    string Assign(T1 &var1,T2 var2)
      {
       var1=(T1)var2;
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| Surcharge spéciale pour bool+string                              |
    //+------------------------------------------------------------------+
    string Assign(bool &var1,string var2)
      {
       var1=(StringCompare(var2,"true",false) || StringToInteger(var2)!=0);
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| Fonction de lancement du programme                               |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int i;
       bool b;
       Print(Assign(i,"test"));
       Print(Assign(b,"test"));
      }
    Nous pouvons voir dans le résultat de l'exécution que le template de fonction Assign() a été utilisé pour la paire int+string, tandis que la version surchargée a déjà été utilisée pour la paire bool+string pendant le deuxième appel.
    string Assign<int,string>(int&,string)
    string Assign(bool&,string)

  2. Ajout de la spécialisation explicite des templates de fonctions. Pour cela, spécifiez les paramètres de type avant la liste des paramètres d'appel :
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // spécialisation explicite du template de fonction
      }
    Le changement de type est effectué par la spécification explicite des types plutôt que via les paramètres d'appel.

  3. Optimisation de l'affichage des indicateurs personnalisés avec le type de dessin DRAW_ZIGZAG.
  4. Ajout de nouvelles valeurs dans l'éunumération des types de deal ENUM_DEAL_TYPE :

    • DEAL_DIVIDEND — opération de dividendes.
    • DEAL_DIVIDEND_FRANKED — opération de dividendes franche (la taxe est payée par une société, pas par le client).
    • DEAL_TAX — facturation d'une taxe.

  5. Correction de l'affichage des indicateurs personnalisés avec le type de dessin DRAW_FILLING. Dans le cas où les coordonnées des lignes supérieure et inférieure correspondent, une fine ligne est dessinée.
  6. Correction du calcul des coordonnées de l'objet Etiquette Bitmap lors de la définition du paramètre CHART_SHOW à 'false'. Le paramètre est défini par la fonction ChartSetInteger et permet de cacher tous les éléments du graphique des prix pour créer une interface personnalisée.
  7. Correction du ré-encodage des images 24 bits lors de leur placement dans les ressources des applications MQL5.
  8. Correction de l'affichage des structures avec la fonction ArrayPrint.
  9. Mise à jour des bibliothèques standards MQL5.

MetaEditor

  1. Ajout de la traduction de l'interface utilisateur en malais.

Signaux

  1. Correction de l'ouverture de la page d'un signal dans le terminal depuis le site Internet de la MQL5.community si aucun compte de trading n'est connecté.

Tester

  1. Correction du fonctionnement de la fonction CopyTicks dans le strategy tester.
  2. Corretion du tri des trades de Retrait lors de la génération d'un rapport.
  3. Correction de la modification des ordres en attente.

Hébergement

  1. Correction de l'affichage de l'assistant d'hébergement virtuel sur les écrans en ultra-haute résolution (4К).

Mise à jour de la documentation.

17 février 2017
MetaTrader 5 Build 1545 : basculement rapide entre les fenêtres et changement des valeurs de prix avec la molette de souris

Terminal

  1. Basculement rapide entre les fenêtres 'Boîte à Outils' et 'Strategy Tester'.



  2. Nouvelle option permettant d'éditer les prix et les volumes des ordres avec la molette de la souris :




  3. Lorsque vous téléchargez les terminaux mobiles, la liste de vos serveurs de trading est dorénavant conservée. Lors de l'installation de MetaTrader sur votre iPhone ou votre appareil Android, la liste de vos serveurs est alors affichée. Vous pouvez vous connecter rapidement à votre compte de trading existant. Le serveur du compte actuellement connecté sera affiché en premier dans le terminal mobile.




  4. Réduction significative de la charge du terminal, crée par les objets et graphiques invisibles (minimisés).
  5. Correction du déclenchement occasionnel et incorrect des niveaux des stops suiveurs.
  6. Correction du filtre des trades par symbole dans l'historique du compte de trading.
  7. Correction de l'affichage du champ 'Type' dans l'historique des positions.
  8. Correction de la présentation de l'historique de trading sous la forme des positions.

MQL5

  1. Correction de l'affichage des indicateurs personnalisés dont le type de dessin est DRAW_COLOR_LINE, DRAW_COLOR_ZIGZAG et DRAW_COLOR_SECTION, dans le cas où CLR_NONE est utilisé pour la couleur.
  2. Correction du typage des modèles utilisant un pointeur constant.
  3. Correction du contrôle d'accès aux membres de classe privés et protégés.

Tester

  1. Correction de l'activation des ordres limit sur les instruments boursiers, lorsque le prix de déclenchement de l'ordre n'est pas meilleur que le prix actuel du marché (le prix Buy est supérieur ou le prix Sell est inférieur au prix du marché).
  2. Suppression de la restriction liée au test des indicateurs personnalisés ayant plus de 64 paramètres d'entrée.
  3. Ajout de la traduction de l'interface en hindi.

Mise à jour de la documentation.

9 février 2017
MetaTrader 5 iOS build 1509 : Connection à MQL5.com avec Facebook
  • Ajout de la possibilité de s'enregistrer et de se connecter à votre compte MQL5.com avec Facebook. Si vous avez un profil sur ce réseau social, vous pouvez accéder aux messageries et l'ensemble complet des services de MetaTrader 5 en quelques clics.

  • Améliorations et corrections. 

27 janvier 2017
MetaTrader 5 build 1525 : Affichage de l'historique de trading sous forme de positions et améliorations du tester

Terminal

  1. L'historique de trading peut maintenant être affiché sous forme de ses positions. Le terminal collecte les données des transactions liées à une position (ouverture, volume supplémentaire, clôture partielle ou complète) et les regroupe ensuite en un seul enregistremement contenant les détails suivants :

    • Heure d'ouverture et de clôture de la position déterminées par la première et la dernière transaction respectivement
    • Volume de la position. Si une partie de la position a été fermée, l'enregistrement cotient le volume fermé et le volume d'origine
    • Le prix d'ouverture moyen pondéré de la position et son prix de clôture
    • Le résultat financier total des transactions liées à la position




    Sur les comptes utilisant le hedging, la nouvelle forme de l'historique est similaire à l'historique de compte dans MetaTrader 4.




  2.   Une nouvelle commande a été ajouté, permettant de visualiser les trades sur le graphique du symbole.

    • Si vous souhaitez afficher les transactions d'une position ou d'un symbole sélectionné, cliquez sur "Ajouter les Transactions de [nom du symbole]". Les transactions correspondantes seront affichées sur tous les graphiques actuellement ouverts du symbole sélectionné. Si aucun graphique pour ce symbole n'est ouvert, un nouveau graphique sera créé.
    • Cliquez sur "Ajouter Toutes les Transactions" pour afficher toutes les transactions de tous les symboles de l'historique de trading. Les transactions des symboles correspondants seront ajoutées à tous les graphiques ouverts.




  3. Ajout de l'affichage du nom international de l'instrument de trading dans les spécifications du contrat, et possibilité de rechercher un symbole par son nom international dans la fenêtre de gestion des symbole.




  4. Ajout d'une commande pour la configuration de la résolution de la fenêtre du terminal. La fonction sera utile pour enregistrer des vidéos. Le menu fournit les options de résolutions les plus courantes, utilisées par différents services de vidéos tel que YouTube.



  5. Les modèles de graphiques et les profils ont été déplacés de [Répertoire des Données du Terminal\Profiles] vers [Répertoire des Données du Terminal\MQL5\Profiles]. Vous pouvez maintenant facilement ajouter des modèles au Dépôt MQL5 et y accéder depuis n'importe quel PC.

MQL5

  1. Ajout du support des variables de ressource. Le développement de certains programmes peut être grandement facilité en ajoutant ce type de variables. Vous pouvez par exemple écrire le code d'un programme OpenCL dans un fichier CL séparé et l'inclure ensuite sous la forme d'une chaîne de caractères dans les ressources de votre programme MQL5. Avant la mise à jour, ce type de code devait être décrit comme une seule grosse chaîne de caractères.

    Déclaration d'une variable de ressource
    #resource chemin_vers_le_fichier_de_ressource as type_de_la_variable_de_ressource nom_de_la_variable_de_ressource

    Fonctionnalités
    • L'encodage des fichiers de chaînes de caractères est déterminé automatiquement suivant le BOM (octets spécifiques de l'en-tête du fichier). Si le BOM est manquant, l'encodage est défini par le contenu du fichier. ANSI, UTF-8 et UTF-16 sont supportés. Toutes les chaînes de caractères sont converties en Unicode.
    • Les données d'une telle ressource ne peuvent être utilisées que par le biais d'une variable. L'adressage automatique avec "::<nom_de_la_ressource>" n'est pas disponible.
    • Le type spécial de variable de ressource bitmap indique au compilateur que la ressource est une image. Dans ce cas, la variable de ressource est de type uint.
    • Lors de l'utilisation d'une image en 24 bits, le canal alpha est défini à 255 pour tous les pixels de l'image.
    • Lors de l'utilisation d'une image en 32 bits sans le canal alpha, celui-ci est défini à 255 pour tous les pixels de l'image.
    • Lors du chargement d'une image 32 bits avec un canal alpha, les pixels ne sont pas traités de cette façon.
    • La tableau de type bitmap de la variable de ressource peut avoir 2 dimensions. Dans ce cas, la taille du tableau est définie comme [hauteur_image ][ largeur_image ].
    • Si un tableau à 1 dimension est spécifié, le nombre d'éléments est égal à hauteur_imaget*largeur_image.
    • Si la taille du fichier de ressource n'est pas un multiple de la taille d'un élément du tableau, les données restantes seront coupées. Par exemple, si la taille du fichier est de 14 octets, pour un tableau de int, le nombre d'éléments sera égal à 3, et les 2 octets restants (14 - sizeof(int)*3) seront perdus.

    Exemples d'Utilisation
    #resource "data.bin" as int ExtData[]             // déclaration d'un tableau numérique contenant les données du fichier data.bin
    #resource "data.bin" as MqlRates ExtData[]        // déclaration d'un tableau de structures simples contenant les données du fichier data.bin
    
    #resource "data.txt" as string ExtCode            // déclaration d'une chaîne de caractères contenant les données du fichier data.txt
    #resource "data.txt" as string ExtCode[]          // déclaration d'une chaîne de caractères contenant les données du fichier data.txt
    
    #resource "image.bmp" as bitmap ExtBitmap[]       // déclaration d'un tableau à 1 dimension contenant un bitmap du fichier BMP, taille du tableau = largeur * hauteur
    #resource "image.bmp" as bitmap ExtBitmap2[][]    // déclaration d'un tableau à 2 dimensions contenant un bitmap du fichier BMP, taille du tableau = [hauteur][largeur]
    

  2. La nouvelle propriété CHART_SHOW permet de désactiver l'affichage du graphique. Les fonctions ChartGetInteger et ChartSetInteger sont utilisées pour récupérer et définir la propriété.

    Si false, le dessin des attributs du graphique des prix est désactivé et toutes les règles en bordure sont supprimées, incluant les échelles de temps et de prix, la barre de navigation rapide, les étiquettes des évènement du Calendrier, les étiquettes des trades, les infobulles des indicateurs et des barres, les sous-fenêtres d'indicateurs, les histogrammes de volume, etc.

    La désactivation du dessin est la solution parfaite pour créer des interfaces personnalisées de programmes en utilisant des resources graphiques.

    Les objets graphiques sont toujours dessinés, indépendamment de la valeur de la propriété CHART_SHOW.

  3. La nouvelle propriété CHART_KEYBOARD_CONTROL permet d'activer/désactier le contrôle du graphique avec le clavier ("Début", "Fin", "Page Précédente", "+", "-", "Flèche vers le haut", etc.). La définition de CHART_KEYBOARD_CONTROL à false désactive le défilement et la mise à l'échelle du graphique tout en laissant intacte la possibilité de reçevoir les évènements d'appuis de touches dans la fonction OnChartEvent().

    Les fonctions ChartGetInteger et ChartSetInteger permet de récupérer et de définir la propriété.

  4. Ajout de nouvelles fonctions pour travailler avec OpenCL.

    Nouvelles propriétés pour travailler avec la mémoire
    4 nouvelles propriétés peuvent être reçues par la fonction CLGetInfoIntegrer :
    • CL_DEVICE_MAX_WORK_GROUP_SIZE — le nombre total de groupes de travail locaux disponibles pour un périphérique OpenCL.
    • CL_KERNEL_WORK_GROUP_SIZE — le nombre total de groupes de travail locaux disponibles pour un programme OpenCL.
    • CL_KERNEL_LOCAL_MEM_SIZE — la taille de la mémoire locale en octets utilisée par un programme OpenCL pour résoudre toutes les tâches parallèles dans un groupe. Utilisez CL_DEVICE_LOCAL_MEM_SIZE pour récupérer la valeur disponible maximum.
    • CL_KERNEL_PRIVATE_MEM_SIZE — la taille minimum de mémoire privée (en octets) utilisée par chaque tâche dans le noyau du programme OpenCL.

    bool CLExecutionStatus(int kernel)
    Retourne le statut de l'exécution du programme OpenCL. Le handle du noyau du programme OpenCL est passé en paramètre.

    bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)
    Définit le buffer local comme arguement de la fonction du noyau. Le handle du noyau du programme OpenCL, le nombre d'arguments de la fonction OpenCL et la taille du buffer sont passés en paramètres.

  5. Un nouveau code de réponse TRADE_RETCODE_LIMIT_POSITIONS a été ajouté. Le nombre de positions ouvertes présentes en même temps sur un compte peut être limité dans les paramètres du serveur. Lorsque cette limite est atteinte, le serveur retourne l'erreur TRADE_RETCODE_LIMIT_POSITIONS lors du placement d'un nouvel ordre. La limite agit différemment suivant le type de comptabilisation des positions :

    • Netting — le nombre de positions ouvertes est utilisé. Lorsque la limite est atteinte, la plateforme désactive le placement de nouveaux ordres dont l'exécution augmenterait le nombre de positions ouvertes. En fait, la plateforme ne permet le placement d'ordres que pour les symboles ayant déjà des positions ouvertes. Les ordres en attente actuels ne sont pas pris en compte puisque leur exécution pourrait changer les positions courantes mais pas augmenter leur nombre.
    • Hedging — les ordres en attente sont pris en compte avec les positions ouvertes puisque leur activation génère toujours l'ouverture d'une nouvelle position. Lorsque la limite est atteinte, la plateforme désactive le placement de nouveaux ordres au marché pour ouvrir des positions d'ordres en attente.

  6. Correction d'une erreur pouvant générer un saut de ticks dans l'historique des ticks.
  7. Correction d'erreurs indirectes de saisie des modèles.
  8. Mise à jour de la bibliothèque de fonctions statistiques mathématiques.

Market

  1. Correction de l'ouverture de la page du produit lors du téléchargement d'une version de démo.

Tester

  1. Après la fin de l'optimisation, les résultats sont maintenant triés automatiquement dans la colonne "Résultats".
  2. La nouvelle commande "Basculer vers les Résultats d'Optimisation" du menu contextuel de l'onglet des résultats de l'optimisation permet d'ouvrir automatiquement les résultats lorsque l'optimisation est terminée.
  3. Le Strategy Tester reste maintenant en mode d'optimisation après le lancement d'un seul test. Dans les versions précédentes, si un test simple était lancé depuis l'onglet des résultats d'optimisation, le strategy tester basculait en mode de test simple. Le mode d'optimisation devait être réactivé dans les paramètres pour effectuer d'autres optimisations.
  4. Les ensembles de paramètres d'entrée peuvent maintenant être sauvegardés comme paramètres du strategy tester local, et sont disponibles depuis le menu contextuel en plus des traditionnels fichiers .set.




  5. Ajout des traductions de l'interface en mongol, hongrois, roumain et ourdou.

MetaEditor

  1. Ajout de la possibilité de changer l'ordre des expressions espions dans la fenêtre du débogueur. Une expression peut être glissée avec la souris à la position désirée.




  2. Correction de la détermination de l'encodage d'un fichier source.
  3. Correction de la recherche dans les fichiers avec l'encodage en UTF-8.
  4. Correction de la sélection de texte avec la souris si le texte contient des tabulations.
  5. Ajout des traductions de l'interface en hongrois et en roumain.

Documentation mise à jour.

18 janvier 2017
MetaTrader 5 Android build 1506 : Filtre et tri des trades
  • Les onglets Trade et Historique offrent maintenant la possibilité de trier les trades par symbole (instrument financier), ordres et heure d'ouverture/fermeture. En plus du tri, l'onglet Historique vous permet également de filtrer les trades par symbole.

  • Le travail avec les graphiques en mode multi-fenêtres a été optimisé. Le menu amélioré vous permet d'ouvrir de nouvelles fenêtres, de supprimer les anciennes, mais aussi de les ré-arranger et de sélectionner la disposition (verticale, horizontale ou mosaïque).

9 décembre 2016
MetaTrader 5 Build 1495: Améliorations dans MQL5 pour travailler avec les graphiques personnalisés

MQL5

  1. Ajout de la fonction CopyTicksRange.
  2. Ajout de fonctions d'anti-aliasing améliorées dans la classe CCanvas :
  3. Ajout de la description de la bibliothèque graphique dans la Référence MQL5. La bibliothèque permet de créer rapidement des histogrammes, des graphiques de distribution et des graphiques linéaires directement sur les graphiques des prix.
  4. Ajout des identifiants d'état des touches du système dans la liste des constantes des Propriétés du Terminal Client. Un appel à TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) retourne le même code d'état d'une touche que la fonction GetKeyState() dans MSDN.
  5. Désactivation du support du cast d'une chaîne de caractères (string) en bool. Pour vérifier les chaînes de caractères, il faut maintenant utiliser des conditions explicites. Par exemple, avec le nouveau build, la compilation du code suivant déclenchera une erreur :
    string str;
    ...
    if(str)                        // erreur de compilation "Cannot convert type 'string' to 'bool'" (aucune erreur n'apparaissant dans les versions précédentes)
       Print("str est true");
    Il faut utiliser une condition explicite :
    string str;
    ...
    
    //--- vérifie si la chaîne est initialisée
    if(str!=NULL)
       Print("str est true");
    
    ou
    
    //--- vérifie si la chaîne vaut "true"
    if(StringCompare(str,"true",false))
       Print("str est true");
    
    ou
    
    //--- vérifie si la chaîne est un entier et n'est pas égal à zéro
    if((int)str!=0)
       Print("str est true");

Correction d'erreurs reportées dans les journaux de crash.

2 décembre 2016
Plateforme Web MetaTrader 5 : Authentification à deux facteurs et changement du mot de passe
  • Nous avons ajouté l'authentification à deux facteurs utilisant des mots de passe à usage unique, ce qui améliore la protection des comptes contre des accès non autorisés. Pour activer l'authentification à deux facteurs, lancez l'application mobile MetaTrader 5. Connectez-vous et choisissez le générateur OTP dans la fenêtre Paramètres. Le générateur de mot de passe à usage unique (One-time password - OTP) peut lier tous vos comptes de trading et génére automatiquement un mot de passe unique composé de 6 chiffres pour chaque compte. Saisissez le mot de passe généré lors de votre connexion à la plateforme web.





  • Une autre nouvelle option permet de changer le mot de passe principal et le mot de passe investisseur. Profitez de cette opportunité pour créer un identifiant personnel façile à retenir.
  • La plateforme web mise à jour peut maintenant aussi générer des comptes de démo. Vous pouvez maintenant lancer la plateforme web MetaTrader 5 depuis n'importe quel navigateur et commencer le trading du Forex, des Actions ou Futures immédiatement.
24 novembre 2016
MetaTrader 5 Build 1485 : Mode de test et graphiques supplémentaires dans la Bibliothèque Standard

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.




    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.




  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 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 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 :


    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 :



  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.



    Seul le mode délai aléatoire é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é.




  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.

24 novembre 2016
MetaTrader 5 iOS build 1425
  • Améliorations du panneau Trading en Un Clic sur le graphique: il est dorénavant également disponible en mode portrait ; le volume du trade peut être changé rapidement en sélectionnant la valeur désirée dans la liste. 

  • Le symbole du graphique peut maintenant être changé en tapant sur le nom du symbole dans l'en-tête de la fenêtre.
  • Améliorations dans la section paramètres de l'app : les informations du compte actuel sont maintenant affichées, les unités sont disposées correctement et le design a été amélioré.
  • Diverses améliorations et corrections. 
14 octobre 2016
MetaTrader 5 Build 1455 : Biblibothèques de fonctions mathématiques en MQL5

Terminal

  1. Ajout d'infobulles pour les boutons Buy, Sell et Close dans les boîtes de dialogue de trading. Les infobulles contiennent des informations sur l'instrument sur le point d'être acheté ou vendu, pour aider les débutants à comprendre le processus de trading.




  2. Ajout de nouvelles icones pour les ordres, les transactions et les positions dans les onglets "Trading" et "Historique".




  3. Le terminal mis à jour fournit un affichage et une mise à jour optimisés et bien plus rapides (jusqu'à 4 ou 5 fois) du Market Depth, du graphique des ticks et des données Time & Sales.
  4. Correction de la synchronisation de l'historique des ticks en dehors des heures de trading. Le traitement pouvait consommer une quantité excessive du trafic réseau dans certains cas.

MQL5

  1. Une version MQL5 de la bibliothèque d'analyse numérique ALGLIB a été inclue dans la Bibliothèque Standard.

    Fonctions de la Bibliothèque

    • Algèbre linéaire
    • Systèmes d'équations linéaires et non linéaires
    • Interpolation
    • Optimisation
    • Transformation de Fourier rapide
    • Intégration numérique
    • Moindres carrés linéaires et non linéaires
    • Equations différentielles ordinaires
    • Fonctions spéciales
    • Statistiques descriptives et tests d'hypothèses
    • Analyse des données - classification, régression
    • Implémentation des algorithmes d'algèbre linéaire, interpolation, etc. en arithmétique multi-précisions (utilisant MPFR)

    Comment l'Utiliser

    Les fichiers de ALGLIB sont situés dans \MQL5\Include\Math\Alglib. Pour utiliser les fonctions, incluez le fichier principal de la bibliothèques dans votre programme :

     #include <Math\Alglib\alglib.mqh> 

  2. Des fonctions de statistiques mathématiques ont été inclues dans la Bibliothèque Standard. MQL5 fournit maintenant la fonctionnalité du langage R, qui est l'un des meilleurs outils pour le traitement et l'analyse de données statistiques.

    Fonctions de la Bibliothèque

    La bilbliothèque statistique contient des fonctions de calcul des caractéristiques statistiques des données, mais aussi des fonctions d'opérations avec les distributions statistiques :

    • Fonctions pour le calcul des caractéristiques statistiques des éléments d'un tableau
    • Options pour les opérations avec des distributions statistiques : distribution normale, distribution log-normale, distribution béta, etc.

    Comment l'Utiliser

    Les fichiers de la bilbiothèque statistique sont situés dans \MQL5\Include\Math\Stat. Pour utiliser cette bibliothèque, incluez dans votre programme les fichiers des fonctions désirées, par exemple :

    #include <Math\Stat\Binomal.mqh>
    #include <Math\Stat\Cauchy.mqh> 
    
    

    La description détaillée des fonctions de la bibliothèque est disponible dans l'article Distributions Statistiques en MQL5 - Profiter du Meilleur de R.

  3. La version MQL5 de la bibliothèque Fuzzy a été inclue dans la Bibliothèque Standard. La bibliothèque Fuzzy implémente les systèmes d'inférence floue Mamdani et Sugeno.

    Fonctions de la Bibliothèque

    • 13 fonctions membres
    • Forme flexible de développement de règles du système flou
    • Système d'inférence Mamdani
    • Système d'inférence floue Sugeno
    • 5 méthode de défloutage pour les systèmes de type Mamdani
    • Quantité illimitée de variables d'entrée et de sortie

    Comment l'Utiliser

    Les fichiers de la bibliothèque Fuzzy sont situés dans \MQL5\Include\Math\Fuzzy. Pour utiliser cette bibliothèque, incluez dans votre programme les fichiers des fonctions désirées, par exemple :

    #include <Math\Fuzzy\mamdanifuzzysystem.mqh>
    #include <Math\Fuzzy\sugenofuzzysystem.mqh> 
    
    

    Une description détaillée des fonctions de la bibliothèque est disponible dans Code Base : Fuzzy - bibliothèque de développement des modèles flous


  4. La nouvelle propriété CHART_QUICK_NAVIGATION permet d'activer/désactiver la barre de navigation rapide dans le graphique. Si vous avez besoin de modifier et d'accéder à l'état de la propriété, utilisez les fonctions ChartSetInteger et ChartGetInteger.




    La barre de navigation est ouverte en appuyant sur les touches Entrée ou Espace. Elle vous permet de vous déplacer rapidement à une date spécifiée sur le graphique, mais également de changer de symbole et de période. Si votre programme MQL5 utilise les touches Entrée ou Espace, désactiver la propriété CHART_QUICK_NAVIGATION pour éviter l'interception de ces évènements par le terminal. La barre de navigation rapide peut toujours être ouverte par un double-clic.

  5. De nouvelles fonctions FileLoad et FileSave ont été ajoutées. Elles fournissent une méthode simplifiée de lecture et de sauvegarde des tableaux dans des fichiers. Contrairement ) FileRead* et FileWrite*, ces fonctions ne nécessitent pas le handle de l'indicateur. FileLoad et FileSave opèrent avec des tableaux d'élements de type numérique ou de structures simples qui ne contiennent pas de chaînes de caractères, de tableaux dynamiques ou de classes d'objets.
    long  FileLoad(
       const string filename,      // [in] Nom du fichier
       void         &buffer[],     // [out] Un tableau qui sera rempli par le fichier lu
       uint         common_flag=0  // [in] 0 - recherche du fichier dans le répertoire Files du terminal, FILE_COMMON - recherche dans le répertoire commun des terminaux
       );
    
    bool  FileSave(
       const string filename,      // [in] Nom du fichier
       const void   &buffer[],     // [in] Le tableau à sauvegarder dans un fichier
       uint         common_flag=0  // [in] 0 - crée un fichier dans le répertoire Files du terminal, FILE_COMMON - crée le fichier dans le répertoire commun des terminaux
       );
    
    
    Exemple d'écriture des ticks dans un fichier et de relecture du fichier :
    //--- paramètres d'entrée
    input int      ticks_to_save=1000; // Nombre de ticks
    //+------------------------------------------------------------------+
    //| Fonction de démarrage du programme                               |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       string  filename=_Symbol+"_ticks.bin";
       MqlTick ticks[];
    //---
       int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);
       if(copied!=-1)
         {
          PrintFormat(" CopyTicks(%s) a copié %d ticks",_Symbol,copied);
          //--- Si l'historique des ticks est synchronisé, le code d'erreur est égal à zéro
          if(!GetLastError()==0)
             PrintFormat("%s : les ticks ne sont pas synchronisés. Erreur=",_Symbol,copied,_LastError);
          //---  Ecriture des ticks dans un fichier
          if(!FileSave(filename,ticks,FILE_COMMON))
             PrintFormat("FileSave() a échoué, erreur=%d",GetLastError());
         }
       else
          PrintFormat("Echec de CopyTicks(%s), Erreur=",_Symbol,GetLastError());
    //--- Relecture des ticks depuis le fichier
       ArrayFree(ticks);
       long count=FileLoad(filename,ticks,FILE_COMMON);
       if(count!=-1)
         {
          Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");
          for(int i=0;i<count;i++)
            {
             PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",
             TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,
             ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);
            }
         }
      }
    
    

  6. Modification de l'affichage des indicateurs personnalisés avec le mode de dessin DRAW_CANDLES. Il est maintenant possible de définir de 1 à 3 couleurs pour ce mode. L'affichage des bougies dépends du nombre de couleurs défini.

    Si une couleur est spécifiée, toutes les bougies du graphiques seront intégralement peinte avec cette couleur.
    //--- Bougies dessinées avec la même couleur 
    #property indicator_label1  "Bougies à une couleur"
    #property indicator_type1   DRAW_CANDLES
    //--- Une seule couleur est spécifiée, donc toutes les bougies ont la même couleur
    #property indicator_color1  clrGreen  
    
    
    Si deux couleurs sont spécifiées, une couleur est utilisée pour les contours de la bougie, l'autre pour son corps.
    //--- La couleur des bougies diffère de la couleur des ombres
    #property indicator_label1  "Bougies à deux couleurs"
    #property indicator_type1   DRAW_CANDLES
    //--- Les contours des bougies et les ombres sont verts, le corps est blanc
    #property indicator_color1  clrGreen,clrWhite 
    
    
    Si trois couleurs sont spécifiées, une couleur est utilisée pour les contours de la bougie, les deux autres couleurs sont utilisées pour le corps des bougies montantes et descendantes.
    //--- La couleur des bougies diffère de la couleur des ombres
    #property indicator_label1  "Bougies à une couleur"
    #property indicator_type1   DRAW_CANDLES
    //--- Les contours des bougies et les ombres sont verts, le corps d'une bougie haussière est blanc, celui d'une bougie baissière est rouge
    #property indicator_color1  clrGreen,clrWhite,clrRed
    
    
    Le style DRAW_CANDLES permet de définir des couleurs personnalisées pour la bougie. Toutes les couleurs peuvent également être changées dynamiquement lorsque l'indicateur est en cours d'exécution, en utilisant la fonction PlotIndexSetInteger(drawing_index_DRAW_CANDLES, PLOT_LINE_COLOR, modifier_number, couleur) où modifier_number peut avoir les valeurs suivantes :
    • 0 – la couleur des bordures et des ombres
    • 1 – la couleur du corps d'une bougie haussière
    • 2 – la couleur du corps d'une bougie baissière
    //--- Définition de la couleur des bordures et des ombres
    PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,clrBlue);
    //--- Définition de la couleur du corps d'une bougie haussière
    PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,clrGreen);
    //--- Définition de la couleur du corps d'une bougie baissière
    PlotIndexSetInteger(0,PLOT_LINE_COLOR,2,clrRed);
    
    
  7. Correction de bugs et utilisation améliorée de l'historique des ticks utilisant les fonctions CopyTicks.
  8. Avec le nouveau build, les opérateurs peuvent être utilisés dans les interfaces (ce qui n'était pas permis auparavant).

Market

  1. Correction d'une erreur qui pouvait provoquer une demande répétée de connexion à la MQL5.community lors de l'achat de produits sur le Market.

Tester

  1. Ajout de la traduction de l'interface en grec, malais et hébreux.

Documentation mise à jour.

29 septembre 2016
La plateforme web MetaTrader 5 est maintenant plus rapide et plus pratique
  • Ajout de la possibilité de redimensionner les blocs de l'application web, incluant les fenêtres du Market Watch et du graphique des prix.
  • Ajout de la possibilité de trier les colonnes dans les onglets Trade et Historique de la fenêtre Boîte à Outils. La largeur des colonnes peut être modifiée.
  • Ajout de l'onglet Détails et de la possibilité d'ajouter rapidement un symbole.
  • Amélioration globale de la vitesse d'exécution des opérations du terminal web grâce à l'optimisation du code. L'initialisation des comptes, l'ajout de symboles et le trading lui-même sont maintenant effectués encore plus rapidement.

26 septembre 2016
MetaTrader 5 iOS build 1403
  • Changement de l'affichage de la section Trade — la représentation des données de trading dépend maintenant du système de gestion du risque du compte de trading: modèle Forex, Futures ou Boursier.

  • Déplacement de la sélection de la langue de l'interface dans un menu séparé dans les paramètres généraux.
  • Corrections et améliorations.
26 septembre 2016
MetaTrader 5 Android build 1372
  • La plateforme supporte le mode multi-fenêtres permettant aux traders de surveiller les changements de prix sur plusieurs symboles simultanément.
  • Ajout de la possibilité de changer la hauteur de la sous-fenêtre d'un indicateur.
  • La plateforme mobile affiche désormais un bouton de sélection rapide du symbole et un menu séparé pour les paramètres du graphique. 

  • Nous avons également ajouté la possibilité d'éditer les niveaux des indicateurs et nous avons aussi traduit l'interface en bulgare.
16 septembre 2016
MetaTrader 5 Build 1430 : Onglet Exposition Mis à Jour

Terminal

  1. Implémentation du nouvel algorithme de calcul de l'onglet Exposition pour les marchés boursiers. La plateforme adapte dorénavant l'affichage des actifs suivant le système de gestion du risque appliqué au compte de trading : modèle Forex, Futures ou Boursier.

    La session Actifs est utile pour ceux tradant le Forex ou les futures en bourse affichant leur statut actuel sur le marché. Les mêmes devises peuvent être trouvées sous différents symboles : comme l'une des devises d'une paire, comme devise de base, etc. Par exemple, vous pouvez avoir des directions opposées sur les GBPUSD, USDJPY et GBPJY. Dans cette situation, il est très difficile de comprendre combien de devises vous détenez et de combien vous avez besoin. Avoir plus de trois positions complique encore plus la tâche. Dans ce cas, le statut total du compte est facilement disponible dans l'onglet Actifs.
    Utilisons les trois mêmes positions comme exemple :

    Buy GBPJPY 1 lot à 134.027 — reçus 100 000 GBP, donnés 134 027 000 JPY
    Sell USDJPY 1 lot à 102.320 — donnés 100 000 USD, reçus 102 320 000 JPY
    Sell GBPUSD 1 lot à 1.30923 — donnés 100 000 GBP, reçus 103 920 USD

    Nous avons acheté et vendu 100 000 GPB simultanément. Nous avons 0 GBP, et l'onglet Actifs n'affiche pas cette devise. Pour l'USD, nous en avons donné dans un cas et reçus dans un autre. L'onglet Actifs calcule le revenu final et l'ajoute au solde actuel puisque la devise du dépôt est également l'USD. Le JPY a participé dans deux transactions, l'onglet affiche donc sa valeur totale.




    Ceux utilisant le modèle boursier peuvent utiliser la section pour comprendre comment leur argent est utilisé. Contrairement au modèle précédent, les fonds sont retirés/ajoutés directement lorsque les transactions sont effectuées. Par exemple, si vous achetez de l'EURRUB, vous reçevez de l'EUR en une seule fois, tandis la somme appropriée en RUB est retirée du solde. Pendant le trading, le solde du compte peut même devenir négative : lorsque vous utilisez de l'argent emprunté alors que les actifs achetés sont utilisés comme collatéral. Dans ce cas, l'onglet Actifs vous permet de comprendre facilement le statut du compte de trading.

    Vous pouvez également voir la valeur de liquidation ici — le montant des fonds du compte et le prix (le résultat) de la clôture de toutes les positions actuelles au prix du marché.





  2. Correction de l'affichage du type de la transaction dans l'historique des opérations de trading.
  3. Correction de la répétition de l'affichage de la fenêtre de notification de risque lors de reconnexion à un compte de trading.
  4. Correction et optimisation de l'utilisation de la fenêtre de sélection d'un symbole de trading dans le cas d'un grand nombre de symboles (plusieurs milliers et plus).
  5. Correction de l'affichage des niveaux des indicateurs intégrés calculés sur la base d'une Moyenne Mobile (Bandes de Bollinger, Adaptive Moving Average, etc.). Auparavant, une erreur survenait lors du dessin des indicateurs dans une sous-fenêtre séparée.
  6. Correction d'une erreur qui pouvait occasionnellement interférer avec le placement d'ordres sur des contrats de futures dans le cas où le prix de l'ordre coïncide avec la limite supérieure ou inférieure du prix du contrat.

MQL5

  1. Compilation optimisée et accélerée des applications MQL5.
  2. Ajout du support des modificateurs 'final' et 'override' pour les classes, les structures et les fonctions.

    Modificateur 'final' pour les classes et les structures
    La présence du modificateur 'final' dans la déclaration d'une structure ou d'une classe interdit tout héritage ultérieur. S'il n'y a pas besoin de faire des changements supplémentaires dans la classe (structure) ou si ces changements ne sont pas acceptables pour des raisons de sécurité, déclarez cette classe (structure) avec le modificateur 'final'. Dans ce cas, toutes les méthodes de la classe sont également considérée implicitement comme 'final'.
    class CFoo final
      {
      //--- corps de la classe
      };
     
    class CBar : public CFoo
      {
      //--- corps de la classe
      };
    Lors de la tentative d'héritage d'une classe ayant le modificateur 'final' comme ci-dessus, le compilateur affiche une erreur :
    cannot inherit from 'CFoo' as it has been declared as 'final'
    see declaration of 'CFoo'

    Modificateur 'override' pour les fonctions
    Le modificateur 'override' signifie qu'une fonction déclarée devrait toujours redéfinir la méthode de la classe parent. L'utilisation des modificateurs vous permet d'éviter des erreurs lors des spécialisations, telles qu'un changement de signature de la méthode. Par exemple, la méthode 'func' acceptant une variable de type 'int' est définie dans la classe de base :
    class CFoo
      {
       void virtual func(int x) const { }
      };
    La méthode est surchargée dans la classe héritée :
    class CBar : public CFoo
      {
       void func(short x) { }
      };
    Mais le type de l'argument est changé par erreur de 'int' en 'short'. En fait, la surcharge de la méthode au lieu de sa spécialisation est effectuée dans ce cas. Tout en se conformant à l'algorithme de surcharge de la définition d'une fonction, le compilateur peut dans certains cas sélectionner une méthode définie dans la classe de base au lieu de celle spécialisée.

    Pour éviter ce genre d'erreurs, le modificateur 'override' devrait être explicitement ajouté à la méthode spécialisée.
    class CBar : public CFoo
      {
       void func(short x) override { }
      };
    Si la signature de la méthode est changée pendant la spécialisation, le compilateur ne peut pas trouver la méthode de la classe parent ayant la même signature, provoquant l'erreur de compilation :
    'CBar::func' method is declared with 'override' specifier but does not override any base class method

    Modificateur 'final' pour les fonctions

    Le modificateur 'final' agit de la façon inverse — il empêche la spécialisation d'une méthode dans les classe dérivées. Si l'implémentation de la méthode est auto-suffisante et complète, déclarez-la avec le modificateur 'final' pour vous assurer qu'elle ne sera pas changée ultérieurement.
    class CFoo
      {
       void virtual func(int x) final { }
      };
     
    class CBar : public CFoo
      {
       void func(int) { }
      };
     
    Lors de la tentative de spécialisation d'une méthode ayant le modificateur 'final' comme ci-dessus, le compilateur affiche une erreur :
    'CFoo::func' method declared as 'final' cannot be overridden by 'CBar::func'
    see declaration of 'CFoo::func'
  3. Correction de la compilation des fonctions template avec des paramètres par défaut.

Market

  1. Correction de quelques erreurs dans le tri des produits du Market.

Tester

  1. Correction de la mise à jour des prix actuels du marché pour les ordres et positions ouvertes dans le mode de test visuel.
  2. Suppression du slippage pendant l'exécution des ordres Buy Limit et Sell Limit lors du test de symboles boursiers.
  3. Correction de la génération occasionnelle de prix incorrects dans le mode de test "Prix d'ouverture".
  4. Correction de la génération d'évènements OnTradeTransaction lors du test.
  5. Lors d'un test basé sur les ticks réels, les données incorrectes des prix des ticks (bid ou last suivant le prix utilisé pour générer une barre) et les valeurs low et high de la barre de la minute existante apparaissent dans le journal du testeur.

MetaEditor

  1. Correction de l'affichage du profilage des données dans les fichiers de code source.

Documentation mise à jour.

19 août 2016
MetaTrader 5 Build 1395 : Opérations de transaction plus rapides et améliorations de Test visuel

Terminal

  1. Le terminal client prévoit désormais un envoi plus rapide des ordres de négociation.
  2. Correction d'une erreur qui empêchait l'exécution des applications MQL5 sur les terminaux fonctionnant sous Windows 10 de 32-bit, build 1607.
  3. Le navigateur affiche maintenant lorsque le compte de négociation fonctionne en mode de Couverture ou de Compensation.
  4. Une nouvelle commande de menu contextuel a été ajoutée au navigateur, il vous permet de vous connecter à une borne Internet à l'aide d'un compte sélectionné.
  5. La section Aide du menu a été mise à jour, et propose maintenant des liens vers des guides vidéo.
  6. Correction des erreurs liées aux opérations sur affichage à haute résolution (4K)
  7. Correction des erreurs en traduction perse de l'interface utilisateur.

MQL5

  1. Ajout d'une indication vide* pour permettre aux utilisateurs de créer des collections abstraites d'objets. Une indication vers un objet de n'importe quelle classe peut être enregistrée à ce type de variable.
    Il est recommandé d'utiliser l'opérateur dynamic_cast<class name *>(indication vide *) afin de revenir en arrière. Si la conversion n'est pas possible, le résultat est NULL.
    class CFoo { };
    class CBar { };
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       void *vptr[2];
       vptr[0]=new CFoo();
       vptr[1]=new CBar();
    //---
       for(int i=0;i<ArraySize(vptr);i++)
         {
          if(dynamic_cast<CFoo *>(vptr[i])!=NULL)
             Print("CFoo * object at index ",i);
          if(dynamic_cast<CBar *>(vptr[i])!=NULL)
             Print("CBar * object at index ",i);
         }
       CFoo *fptr=vptr[1];  // Will return an error while casting pointers, vptr[1] is not an object of CFoo
      }
    //+------------------------------------------------------------------+

  2. Ajout du support pour l'opérateur [ ] pour libellés. L'opérateur permet aux utilisateurs de bénéficier d'un symbole à partir d'une chaîne par index. Si l'index spécifié est en dehors de la chaîne, le résultat est 0.
    String text="Bonjour"; ushort symb=texte[0];// retournera le code de symbole 'H'
  3. Ajout d'une deuxième version du gestionnaire d'événements TesterInit avec la signature int OnTesterInit (vide), qui peut renvoyer INIT_SUCCEEDED (0) ou INIT_FAILED (ou toute valeur non nulle). Si OnTesterInit renvoie une valeur différente de zéro, l'optimisation ne commencera pas.
  4. Correction d'une erreur qui pourrait aboutir à différents résultats renvoyés par les différents fonctions ChartGetString surchargées.

Testeur

  1. Ajout de commandes supplémentaires et les touches de raccourci pour essai visuel. Maintenant il est possible de configurer des diagrammes dans le testeur visuel comme dans le terminal : changer les couleurs, contrôler la visibilité des différents éléments, appliquer des modèles, etc.




  2. Correction de la fonction de mise en veille en mode de test « prix ouvert ».
  3. Correction de la formation d’état incorrect des barres sur les échelles de temps W1 et MN1

MetaEditor

  1. Traduction UI ajoutée en chinois traditionnel.

Mise à jour de la documentation.

8 août 2016
MetaTrader 5 iOS build 1371
  • Une nouvelle conception des messages. Les messages MQL5.community et les notifications push depuis la plateforme de bureau sont maintenant affichés comme des discussions des messageries populaires sur mobiles.
  • Il est maintenant possible de basculer dans l'une des 23 langues disponibles directement depuis la plateforme. Par exemple, si vous préférez utiliser l'interface en anglais, vous pouvez le choisir dans la page "A Propos" sans changer le paramètre de la langue de votre périphérique.
12345678910111213