Terminal
- 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.
- 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.
- 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.
- 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.
- 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
- 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[]
#resource "data.bin" as MqlRates ExtData[]
#resource "data.txt" as string ExtCode
#resource "data.txt" as string ExtCode[]
#resource "image.bmp" as bitmap ExtBitmap[]
#resource "image.bmp" as bitmap ExtBitmap2[][]
- 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.
- 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é.
- 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.
- 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.
- Correction d'une erreur pouvant générer un saut de ticks dans l'historique des ticks.
- Correction d'erreurs indirectes de saisie des modèles.
- Mise à jour de la bibliothèque de fonctions statistiques mathématiques.
Market
- Correction de l'ouverture de la page du produit lors du téléchargement d'une version de démo.
Tester
- Après la fin de l'optimisation, les résultats sont maintenant triés automatiquement dans la colonne "Résultats".
- 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.
- 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.
- 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.
- Ajout des traductions de l'interface en mongol, hongrois, roumain et ourdou.
MetaEditor
- 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.
- Correction de la détermination de l'encodage d'un fichier source.
- Correction de la recherche dans les fichiers avec l'encodage en UTF-8.
- Correction de la sélection de texte avec la souris si le texte contient des tabulations.
- Ajout des traductions de l'interface en hongrois et en roumain.
Documentation mise à jour.
Veuillez vous reporter aux nouvelles précédentes :