Propriétés du Terminal Client

Les informations du terminal client peuvent être obtenues avec 2 fonctions : TerminalInfoInteger() et TerminalInfoString(). Pour les paramètres, ces fonctions acceptent des valeurs de ENUM_TERMINAL_INFO_INTEGER et ENUM_TERMINAL_INFO_STRING respectivement.

ENUM_TERMINAL_INFO_INTEGER

Identifiant

Description

Type

TERMINAL_BUILD

Le numéro de build du terminal client

int

TERMINAL_COMMUNITY_ACCOUNT

Le flag indique la présence des données d'autorisation de la MQL5.community dans le terminal

bool

TERMINAL_COMMUNITY_CONNECTION

Connexion à la MQL5.community

bool

TERMINAL_CONNECTED

Connexion au serveur de trades

bool

TERMINAL_DLLS_ALLOWED

Permission d'utiliser des DLL

bool

TERMINAL_TRADE_ALLOWED

Permission d'effectuer des opérations de trading

bool

TERMINAL_EMAIL_ENABLED

Permission d'envoyer des e-mails en utilisant le serveur SMTP et le login spécifiés dans les paramètres du terminal

bool

TERMINAL_FTP_ENABLED

Permission d'envoyer des rapports en utilisant le serveur FTP et le login spécifiés dans les paramètres du terminal

bool

TERMINAL_NOTIFICATIONS_ENABLED

Permission d'envoyer des notifications vers un smartphone

bool

TERMINAL_MAXBARS

Le nombre maximum de barres sur le graphique

int

TERMINAL_MQID

Le flag indique la présence de l'identifiant MetaQuotes pour les notifications Push

bool

TERMINAL_CODEPAGE

Numéro de la page de code de la langue installée sur le terminal client

int

TERMINAL_CPU_CORES

Le nombre de coeurs CPU dans le système

int

TERMINAL_DISK_SPACE

Espace disque libre pour le répertoire MQL5\Files du terminal (agent), en Mo

int

TERMINAL_MEMORY_PHYSICAL

Mémoire physique du système, en Mo

int

TERMINAL_MEMORY_TOTAL

Mémoire disponible pour le processus du terminal (agent), en Mo

int

TERMINAL_MEMORY_AVAILABLE

Mémoire libre du processus du terminal (agent), en Mo

int

TERMINAL_MEMORY_USED

Mémoire utilisée par le terminal (agent), en Mo

int

TERMINAL_X64

Indication du terminal en 64 bits

bool

TERMINAL_OPENCL_SUPPORT

La version d'OpenCL supportée dans le format 0x00010002 = 1.2.  "0" signifie qu'OpenCL n'est pas supporté

int

TERMINAL_SCREEN_DPI

La résolution d'affichage de l'écran est mesurée en nombre de Points Par Pource (PPP ou Dots Per Inch (DPI) en anglais).

Avec cette valeur, vous pouvez déterminer la taille des objets graphiques afin qu'ils apparaissent de la même façon sur des écrans ayant des résolutions différentes.

int

TERMINAL_SCREEN_LEFT

La coordonnée gauche de l'écran virtuel. Un écran virtuel est un rectangle couvrant tous les écrans. Si le système a 2 écrans ordonnés de droite à gauche, alors la coordonnée gauche de l'écran virtuel peut être sur la bordure des 2 écrans.

int

TERMINAL_SCREEN_TOP

La coordonnée supérieure de l'écran virtuel

int

TERMINAL_SCREEN_WIDTH

Largeur du terminal

int

TERMINAL_SCREEN_HEIGHT

Hauteur du terminal

int

TERMINAL_LEFT

La coordonnée gauche du terminal relativement à l'écran virtuel

int

TERMINAL_TOP

La coordonnée supérieure du terminal relativement à l'écran virtuel

int

TERMINAL_RIGHT

La coordonnée droite du terminal relativement à l'écran virtuel

int

TERMINAL_BOTTOM

La coordonnée inférieure du terminal relativement à l'écran virtuel

int

TERMINAL_PING_LAST

La dernière valeur connue du ping à un serveur de trades en microsecondes. 1 seconde comporte 1 million de microsecondes

int

TERMINAL_VPS

Indication que le terminal est lancé sur un serveur d'Hébergement Virtuel MetaTrader (MetaTrader VPS)

bool

Identificateur de la touche

Description

 

TERMINAL_KEYSTATE_LEFT

Etat de la touche "Flèche gauche"

int

TERMINAL_KEYSTATE_UP

Etat de la touche "Flèche vers le haut"

int

TERMINAL_KEYSTATE_RIGHT

Etat de la touche "Flèche droite"

int

TERMINAL_KEYSTATE_DOWN

Etat de la touche "Flèche vers le bas"

int

TERMINAL_KEYSTATE_SHIFT

Etat de la touche "Shift"

int

TERMINAL_KEYSTATE_CONTROL

Etat de la touche "Ctrl"

int

TERMINAL_KEYSTATE_MENU

Etat de la touche "Windows"

int

TERMINAL_KEYSTATE_CAPSLOCK

Etat de la touche "Verrouillage majuscules"

int

TERMINAL_KEYSTATE_NUMLOCK

Etat de la touche "Verrouillage numérique"

int

TERMINAL_KEYSTATE_SCRLOCK

Etat de la touche "Arrêt du défilement"

int

TERMINAL_KEYSTATE_ENTER

Etat de la touche "Entrée"

int

TERMINAL_KEYSTATE_INSERT

Etat de la touche "Ins"

int

TERMINAL_KEYSTATE_DELETE

Etat de la touche "Suppr"

int

TERMINAL_KEYSTATE_HOME

Etat de la touche "Début"

int

TERMINAL_KEYSTATE_END

Etat de la touche "Fin"

int

TERMINAL_KEYSTATE_TAB

Etat de la touche "Tab"

int

TERMINAL_KEYSTATE_PAGEUP

Etat de la touche "Page précédente"

int

TERMINAL_KEYSTATE_PAGEDOWN

Etat de la touche "Page suivante"

int

TERMINAL_KEYSTATE_ESCAPE

Etat de la touche "Echap"

int

L'appel à TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) retourne le même code d'état d'une touche que la fonction GetKeyState() dans MSDN.

 

Exemple de calcul du facteur de mise à l'échelle :

//--- Création d'un bouton de 1.5 pouces de largeur sur un écran
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // Récupère la résolution en DPI de l'écran
int base_width = 144;                                      // La largeur de base en points pour des écrans standards avec DPI=96
int width      = (button_width * screen_dpi) / 96;         // Calcule la largeur du bouton pour l'écran de l'utilisateur (pour la résolution en DPI spécifique)
...
 
//--- Calcul du facteur d'échelle en pourcentage
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- Utilisation du facteur d'échelle
width=(base_width * scale_factor) / 100;

Dans l'exemple ci-dessus, la ressource graphique apparaît de façon identique sur des écrans ayant des résolutions différentes. La taille des éléments de contrôle (boutons, boîtes de dialogue, etc.) correspond aux paramètres de personnalisation.

 

ENUM_TERMINAL_INFO_DOUBLE

Identifiant

Description

Type

TERMINAL_COMMUNITY_BALANCE

Solde sur la MQL5.community

double

TERMINAL_RETRANSMISSION

Pourcentage de paquets réseau retransmis dans le protocole TCP/IP pour toutes les applications et services en cours d'exécution sur un ordinateur donné. La perte de paquets se produit même sur des réseaux ultra-rapides et correctement configurés. Dans ce cas, il n'y a pas de confirmation de la livraison d'un paquet entre le destinataire et l'expéditeur, les paquets perdus sont donc renvoyés.

 

Ce n'est pas une indication de la qualité de la connexion entre un terminal particulier et un serveur de trades, puisque le pourcentage est calculé pour l'activité réseau en entier, incluant les activités système et en arrière plan.

 

La valeur de TERMINAL_RETRANSMISSION est demandé au système d'exploitation toutes les minutes. Le terminal lui-même ne calcule pas cette valeur.

double

 

Les opérations sur les fichiers ne peuvent être effectuées que dans 2 répertoires ; les chemins correspondants peuvent être obtenus en demandant les propriétés TERMINAL_DATA_PATH et TERMINAL_COMMONDATA_PATH.

ENUM_TERMINAL_INFO_STRING

Identifiant

Description

Type

TERMINAL_LANGUAGE

Langue du terminal

string

TERMINAL_COMPANY

Nom de la société

string

TERMINAL_NAME

Nom du terminal

string

TERMINAL_PATH

Répertoire à partir duquel le terminal est exécuté

string

TERMINAL_DATA_PATH

Répertoire dans lequel les données du terminal sont stockées

string

TERMINAL_COMMONDATA_PATH

Chemin commun de tous les terminaux installés sur un ordinateur

string

TERMINAL_CPU_NAME

Nom du CPU

string

TERMINAL_CPU_ARCHITECTURE

Architecture CPU

string

TERMINAL_OS_VERSION

Nom du système d'exploitation de l'utilisateur

string

Pour une meilleure compréhension des chemins, stockés dans les propriétés des paramètres TERMINAL_PATH, TERMINAL_DATA_PATH et TERMINAL_COMMONDATA_PATH, il est recommandé d'exécuter le script, qui retournera ces valeurs pour la copie actuelle du terminal client installée sur votre ordinateur

Exemple : Script returnant les chemins du terminal client

//+----------------------------------------------------------------------------------------------------+
//|                                          Check_TerminalPaths.mq5                                   |
//|                        Copyright 2009, MetaQuotes Software Corp.                                   |
//|                                             https://www.mql5.com                                   |
//+----------------------------------------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+----------------------------------------------------------------------------------------------------+
//| Fonction de démarrage du script                                                                    |
//+----------------------------------------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }

Le résultat de l'exécution du script apparaît dans le Journal des Experts sous la forme suivante :

Récupérer des données d'un répertoire de travail du terminal