Propriedades do Terminal Cliente

Informações sobre o terminal cliente podem ser obtidos através de duas funções: TerminalInfoInteger() e TerminalInfoString(). Por parâmetros, estas funções aceitam valores do ENUM_TERMINAL_INFO_INTEGER e ENUM_TERMINAL_INFO_STRING respectivamente.

ENUM_TERMINAL_INFO_INTEGER

Identificador

Descrição

Tipo

TERMINAL_BUILD

O número de compilação (build) do terminal cliente

int

TERMINAL_COMMUNITY_ACCOUNT

A flag indica a presença de dados autorizados do MQL5.community no terminal

int

TERMINAL_COMMUNITY_CONNECTION

Conexão com MQL5.community

bool

TERMINAL_CONNECTED

Conexão com um servidor de negociação

bool

TERMINAL_DLLS_ALLOWED

Permissão para usar DLL

bool

TERMINAL_TRADE_ALLOWED

Permissão para negociar

bool

TERMINAL_EMAIL_ENABLED

Permissão para enviar e-mails usando servidor-SMTP e login, especificado nas configurações do terminal

bool

TERMINAL_FTP_ENABLED

Permissão para enviar relatórios usando servidor-FTP e login, especificado nas configurações do terminal

bool

TERMINAL_NOTIFICATIONS_ENABLED

Permissão para enviar notificações ao smartphone

bool

TERMINAL_MAXBARS

A quantidade máxima de barras no gráfico

int

TERMINAL_MQID

O sinalizador indica a presença de dados de ID do MetaQuotes para enviar notificações Push

bool

TERMINAL_CODEPAGE

Número do código de página da linguagem instalado no terminal cliente

int

TERMINAL_CPU_CORES

O número de núcleos de CPU no sistema

int

TERMINAL_DISK_SPACE

Espaço livre de disco para a pasta MQL5\Files do terminal (agente), MB

int

TERMINAL_MEMORY_PHYSICAL

Memória física no sistema, MB

int

TERMINAL_MEMORY_TOTAL

Memória disponível para o processo do terminal (agente), MB

int

TERMINAL_MEMORY_AVAILABLE

Memória livre do processo do terminal (agente), MB

int

TERMINAL_MEMORY_USED

Memória usada pelo terminal (agente), MB

int

TERMINAL_X64

Indicação do "terminal 64-bit"

bool

TERMINAL_OPENCL_SUPPORT

A versão do OpenCL suportado no formato 0x00010002 = 1.2.  "0" significa que OpenCL não é suportado

int

TERMINAL_SCREEN_DPI

A qualidade de resolução ao exibir informações no ecrã é medida pelo número de pontos por polegada linear da superfície (DPI).

O conhecimento desse parâmetro permite que você especifique as dimensões dos objetos gráficos de modo que pareçam iguais em monitores com uma resolução diferente.

int

TERMINAL_SCREEN_LEFT

Coordenada esquerda da tela virtual. A tela virtual é o retângulo que cobre todos os monitores. Se o sistema tiver dois monitores e sua ordem for definida da direita para a esquerda, a coordenada esquerda da tela virtual poderá estar na borda de dois monitores.

int

TERMINAL_SCREEN_TOP

Coordenada superior da tela virtual

int

TERMINAL_SCREEN_WIDTH

Largura do terminal

int

TERMINAL_SCREEN_HEIGHT

Altura do terminal

int

TERMINAL_LEFT

Coordenada esquerda do terminal em relação à tela virtual

int

TERMINAL_TOP

Coordenada direita do terminal em relação à tela virtual

int

TERMINAL_RIGHT

Coordenada superior do terminal em relação à tela virtual

int

TERMINAL_BOTTOM

Coordenada inferior do terminal em relação à tela virtual

int

TERMINAL_PING_LAST

Último valor conhecido do ping até ao servidor de negociação em microssegundos. Em um segundo existe um milhão de microssegundos

int

TERMINAL_VPS

Sinal de que o terminal está sendo executado no servidor virtual MetaTrader Vitrtual Hosting (VPS MetaTrader)

bool

Identificador de tecla

Descrição

 

TERMINAL_KEYSTATE_LEFT

Status da tecla "Seta para a esquerda"

int

TERMINAL_KEYSTATE_UP

Status da tecla "Seta para cima"

int

TERMINAL_KEYSTATE_RIGHT

Status da tecla "Seta para a direita"

int

TERMINAL_KEYSTATE_DOWN

Status da tecla "Seta para baixo"

int

TERMINAL_KEYSTATE_SHIFT

Status da tecla "Shift"

int

TERMINAL_KEYSTATE_CONTROL

Status da tecla "Ctrl"

int

TERMINAL_KEYSTATE_MENU

Status da tecla "Windows"

int

TERMINAL_KEYSTATE_CAPSLOCK

Status da tecla "CapsLock"

int

TERMINAL_KEYSTATE_NUMLOCK

Status da tecla "NumLock"

int

TERMINAL_KEYSTATE_SCRLOCK

Status da tecla "ScrollLock"

int

TERMINAL_KEYSTATE_ENTER

Status da tecla "Enter"

int

TERMINAL_KEYSTATE_INSERT

Status da tecla "Insert"

int

TERMINAL_KEYSTATE_DELETE

Status da tecla "Delete"

int

TERMINAL_KEYSTATE_HOME

Status da tecla "Home"

int

TERMINAL_KEYSTATE_END

Status da tecla "End"

int

TERMINAL_KEYSTATE_TAB

Status da tecla "Tab"

int

TERMINAL_KEYSTATE_PAGEUP

Status da tecla "PageUp"

int

TERMINAL_KEYSTATE_PAGEDOWN

Status da tecla "PageDown"

int

TERMINAL_KEYSTATE_ESCAPE

Status da tecla "Escape"

int

A chamada de TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) retorna o mesmo código de status de tecla como a função GetKeyState() a partir de MSDN.

 

Exemplo de como calcular o coeficiente da escala:

//--- criamos um botão de 1.5 polegadas de largura no ecrã
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // obtemos o DPI do monitor do usuário
int base_width = 144;                                      // largura básica em pixels para monitores padrão com um DPI=96
int width      = (button_width * screen_dpi) / 96;         // calculamos a largura do botão para o monitor do usuário (tendo em conta o seu DPI)
...
 
//--- cálculo do coeficiente da escala em porcentagens
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- uso do coeficiente de escala
width=(base_width * scale_factor) / 100;

Usando o recurso gráfico desse modo, ele irá ter o mesmo tamanho, à primeira vista, em monitores de diferente qualidade de resolução. Além disso, os parâmetros que controlam os elementos (botões, caixas de diálogo, etc.) irão corresponder às configurações personalizadas.

 

ENUM_TERMINAL_INFO_DOUBLE

Identifier

Descrição

tipo

TERMINAL_COMMUNITY_BALANCE

Saldo no MQL5.community

double

TERMINAL_RETRANSMISSION

Porcentagem de pacotes de rede re-enviados no protocolo TCP/IP para todos os aplicativos e serviços executados no computador. A perda de pacotes ocorre mesmo em redes rápidas e configuradas corretamente. Quando ela ocorre, não há confirmação da entrega de pacotes entre o receptor e o remetente. Por conseguinte, pacotes "perdidos" são reenviados.

 

Ele não é uma indicação da qualidade da conexão entre um terminal particular e um servidor de negociação, uma vez que a porcentagem é calculada para toda a atividade da rede, incluindo a de sistema e de fundo.

 

O valor TERMINAL_TRESSMISSION é solicitado no sistema operacional uma vez por minuto. O próprio terminal não calcula estes valores.

double

 

Operações de arquivo podem ser realizadas somente em dois diretórios; os caminhos correspondentes podem ser obtidos usando solicitação para as propriedades TERMINAL_DATA_PATH e TERMINAL_COMMONDATA_PATH.

ENUM_TERMINAL_INFO_STRING

Identificador

Descrição

Tipo

TERMINAL_LANGUAGE

Linguagem do terminal

string

TERMINAL_COMPANY

Nome da empresa

string

TERMINAL_NAME

Nome do terminal

string

TERMINAL_PATH

Pasta a partir da qual o terminal foi iniciado

string

TERMINAL_DATA_PATH

Pasta na qual dados do terminal são armazenados

string

TERMINAL_COMMONDATA_PATH

Caminho comum para todos os terminais instalados em um computador

string

Para um melhor entendimento dos caminhos armazenados nas propriedades dos parâmetros TERMINAL_PATH, TERMINAL_DATA_PATH e TERMINAL_COMMONDATA_PATH, é recomendado executar o script, que retornará estes valores para a cópia corrente do terminal cliente, instalado em seu computador.

Example: Script retorna informações sobre os caminhos do terminal cliente

//+----------´--------------------------------------------------------+
//|                                          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"
//+----------´--------------------------------------------------------+
//| Programa Script da função start (iniciar)                        |
//+----------´--------------------------------------------------------+
void OnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }

Como resultado da execução do script no Diário de Experts, você verá mensagens, como as seguintes:

Obtendo dados em uma pasta de trabalho do terminal