Proprietà del Terminale Client

Le informazioni sul terminale client possono essere ottenute con due funzioni: TerminalInfoInteger() e TerminalInfoString(). Per i parametri, queste funzioni accettano valori ENUM_TERMINAL_INFO_INTEGER e ENUM_TERMINAL_INFO_STRING rispettivamente.

ENUM_TERMINAL_INFO_INTEGER

Identificatore

Descrizione

Tipo

TERMINAL_BUILD

Il numero di build del terminale client

int

TERMINAL_COMMUNITY_CONNECTION

Collegamento a MQL5.community

bool

TERMINAL_CONNECTED

La connessione ad un trade server

bool

TERMINAL_DLLS_ALLOWED

Il permesso di utilizzare DLL

bool

TERMINAL_TRADE_ALLOWED

Permesso per il trade

bool

TERMINAL_EMAIL_ENABLED

Il permesso di inviare e-mail utilizzando l' SMTP-server ed il login, specificato nelle impostazioni del terminale

bool

TERMINAL_FTP_ENABLED

Il permesso di inviare i reports con server FTP ed il login, specificato nelle impostazioni del terminale

bool

TERMINAL_NOTIFICATIONS_ENABLED

Permesso di inviare notifiche smartphone

bool

TERMINAL_MAXBARS

Il massimo conteggio di barre nel chart

int

TERMINAL_MQID

Il flag indica la presenza di dati ID MetaQuotes per le notifiche Push

bool

TERMINAL_CODEPAGE

Numero della pagina codice della lingua installata nel terminale client

int

TERMINAL_CPU_CORES

Il numero di CPU cores nel sistema

int

TERMINAL_DISK_SPACE

Spazio libero su disco per la cartella MQL5\Files del terminale(agente), MB

int

TERMINAL_MEMORY_PHYSICAL

Memoria fisica nel sistema, MB

int

TERMINAL_MEMORY_TOTAL

Memoria disponibile per il processo del terminale(agente), MB

int

TERMINAL_MEMORY_AVAILABLE

Memoria libera del processo del terminale(agente), MB

int

TERMINAL_MEMORY_USED

Memoria utilizzata dal terminale(agente), MB

int

TERMINAL_X64

Indicazione del "terminale 64-bit"

bool

TERMINAL_OPENCL_SUPPORT

La versione del OpenCL supportato nel formato di 0x00010002 = 1.2. "0" significa che OpenCL non è supportato

int

TERMINAL_SCREEN_DPI

La risoluzione del display informativo sullo schermo è misurata come ammontare di Punti in una linea per Inch (DPI).

Conoscendo il valore del parametro, puoi impostare la grandezza dell'oggetto grafico così che appaiono uguali su monitor con differenti caratteristiche di risoluzione.

int

TERMINAL_SCREEN_LEFT

La coordinata sinistra dello schermo virtuale. Uno schermo virtuale è un rettangolo che copre tutti i monitor. Se il sistema ha due monitor ordinati da destra a sinistra, la coordinata sinistra dello schermo virtuale può trovarsi sul bordo di due monitor.

int

TERMINAL_SCREEN_TOP

La coordinata superiore dello schermo virtuale

int

TERMINAL_SCREEN_WIDTH

Larghezza del terminale

int

TERMINAL_SCREEN_HEIGHT

Altezza del terminale

int

TERMINAL_LEFT

La coordinata sinistra del terminale relativa allo schermo virtuale

int

TERMINAL_TOP

La coordinata superiore del terminale relativa allo schermo virtuale

int

TERMINAL_RIGHT

La coordinata destra del terminale relativa allo schermo virtuale

int

TERMINAL_BOTTOM

La coordinata inferiore del terminale relativa allo schermo virtuale

int

TERMINAL_PING_LAST

L'ultimo valore ping conosciuto al trade server in millisecondi. Un secondo comprende un milione di microsecondi.

int

TERMINAL_VPS

Indicazione che il terminale è stato lanciato sul MetaTrader Virtual Hosting Server (MetaTrader VPS)

bool

L'identificatore Key

Descrizione

 

TERMINAL_KEYSTATE_LEFT

Stato del tasto "Freccia Sinistra"

int

TERMINAL_KEYSTATE_UP

Stato del tasto "Freccia Su"

int

TERMINAL_KEYSTATE_RIGHT

Stato del tasto "Freccia Destra"

int

TERMINAL_KEYSTATE_DOWN

Stato del tasto "Freccia Giu"

int

TERMINAL_KEYSTATE_SHIFT

Stato del tasto "Shift"

int

TERMINAL_KEYSTATE_CONTROL

Stato del tasto "Ctrl"

int

TERMINAL_KEYSTATE_MENU

Stato del tasto "Windows"

int

TERMINAL_KEYSTATE_CAPSLOCK

Stato del tasto "CapsLock"

int

TERMINAL_KEYSTATE_NUMLOCK

Stato del tasto "BlocNum"

int

TERMINAL_KEYSTATE_SCRLOCK

Stato del tasto "ScrollLock"

int

TERMINAL_KEYSTATE_ENTER

Stato del tasto "Invio"

int

TERMINAL_KEYSTATE_INSERT

Stato del tasto "Ins"

int

TERMINAL_KEYSTATE_DELETE

Stato del tasto "Canc"

int

TERMINAL_KEYSTATE_HOME

Stato del tasto "Home"

int

TERMINAL_KEYSTATE_END

Stato del tasto "Fine"

int

TERMINAL_KEYSTATE_TAB

Stato del tasto "Tab"

int

TERMINAL_KEYSTATE_PAGEUP

Stato del tasto "PagSu"

int

TERMINAL_KEYSTATE_PAGEDOWN

Stato del tasto "PagGiu"

int

TERMINAL_KEYSTATE_ESCAPE

Stato del tasto "Esc"

int

La chiamata a TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) restituisce lo stesso stato codice della chiave come GetKeyState() nella funzione in MSDN.

 

Esempio di calcolo del fattore di scala:

//--- Creazione di un bottone di spessore 1.5 sullo schermo
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // Trova il DPI del monitor dell'utente
int base_width = 144;                                      // Lo spessore di base in punti schermo per monitor standard con DPI=96
int width      = (button_width * screen_dpi) / 96;         // Calcola lo spessore del bottone per il monitor dell'utente (per specifico DPI)
...
 
//--- Calcolo del fattore di scala come percentuale
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- Uso del fattore di scala
width=(base_width * scale_factor) / 100;
width=(base_width * scale_factor) / 100;

Nell'esempio qui sopra, la risorsa grafica appare la stessa su monitor con caratteristiche di risoluzione differenti. La grandezza degli elementi di controllo (bottoni, finestre di dialogo, ecc.) corrisponde all'impostazione della personlizzazione.

 

ENUM_TERMINAL_INFO_DOUBLE

Identificatore

Descrizione

Tipo

TERMINAL_COMMUNITY_BALANCE

Bilancio in MQL5.community

double

TERMINAL_RETRANSMISSION

Percentuale di rispedizione dei pacchetti di rete nel protocollo TCP/IP per tutte le applicazioni e servizi in esecuzione sul computer specificato. La perdita di pacchetti si verifica anche nelle reti più veloci e configurate correttamente. In questo caso, non viene confermata la consegna del pacchetto tra il destinatario ed il mittente, pertanto i pacchetti persi vengono nuovamente inviati.

 

Non è un'indicazione della qualità della connessione tra un particolare terminale ed un trade server, poiché la percentuale viene calcolata per l'intera attività di rete, inclusa l'attività di sistema e di backgroud.

 

Il valore TERMINAL_RETRANSMISSION viene richiesto dal sistema operativo una volta al minuto. Il terminale in sè non calcola questo valore.

double

 

Le operazioni sui file possono essere eseguite solo in due directory; i percorsi corrispondenti possono essere ottenuti utilizzando la richiesta per le proprietà TERMINAL_DATA_PATH e TERMINAL_COMMONDATA_PATH.

ENUM_TERMINAL_INFO_STRING

Identificatore

Descrizione

Tipo

TERMINAL_LANGUAGE

Lingua del terminale

string

TERMINAL_COMMUNITY_ACCOUNT

Account in MQL5.community

string

TERMINAL_COMPANY

Nome della società

string

TERMINAL_NAME

Nome del terminale

string

TERMINAL_PATH

Cartella da cui viene avviato il terminale

string

TERMINAL_DATA_PATH

Cartella in cui sono memorizzati i dati dei terminali

string

TERMINAL_COMMONDATA_PATH

Percorso comune per tutti i terminali installati in un computer

string

TERMINAL_CPU_NAME

Nome CPU

string

TERMINAL_CPU_ARCHITECTURE

Architettura CPU

string

TERMINAL_OS_VERSION

Nome del Sistema Operativo dell'utente

string

Per una migliore comprensione dei percorsi memorizzati nelle proprietà di TERMINAL_PATH, TERMINAL_DATA_PATH e parametri TERMINAL_COMMONDATA_PATH, si consiglia di eseguire lo script, che restituirà questi valori per la copia corrente del terminale client, installato sul computer

Esempio: Lo script restituisce le informazioni riguardo i percorsi del terminale 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"
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }

Come risultato dell'esecuzione dello script nel Journal degli Experts si vedrà un messaggio, come il seguente:

TERMINAL_SCREEN_HEIGHTOttenere dati su una cartella di lavoro del terminale