Propriedades do Terminal Cliente

Identificadores para obter informações do terminal do cliente com as funções TerminalInfoInteger() e TerminalInfoString(). Como parâmetro, essas funções recebem valores dos enums ENUM_TERMINAL_INFO_INTEGER e ENUM_TERMINAL_INFO_STRING, respectivamente.

ENUM_TERMINAL_INFO_INTEGER

Identificador

Descrição

Tipo

TERMINAL_BUILD

Número do build do terminal em execução

int

TERMINAL_COMMUNITY_ACCOUNT

Flag indicando presença de dados de autenticação da MQL5.community no terminal

int

TERMINAL_COMMUNITY_CONNECTION

Presença de conexão com a MQL5.community

bool

TERMINAL_CONNECTED

Presença de conexão com o servidor de negociação

bool

TERMINAL_DLLS_ALLOWED

Permissão para uso de DLL

bool

TERMINAL_TRADE_ALLOWED

Permissão para negociar

bool

TERMINAL_EMAIL_ENABLED

Permissão para envio de e-mails utilizando o servidor SMTP e login especificados nas configurações do terminal

bool

TERMINAL_FTP_ENABLED

Permissão para envio de relatórios via FTP para o servidor indicado na conta de negociação configurada no terminal

bool

TERMINAL_NOTIFICATIONS_ENABLED

Permissão para envio de notificações para smartphone

bool

TERMINAL_MAXBARS

Quantidade máxima de barras no gráfico

int

TERMINAL_MQID

Flag indicando presença de MetaQuotes ID para envio de notificações Push

bool

TERMINAL_CODEPAGE

Número da página de código do idioma configurado no terminal do cliente

int

TERMINAL_CPU_CORES

Número de processadores no sistema

int

TERMINAL_DISK_SPACE

Espaço livre em disco disponível para a pasta MQL5\Files do terminal (agente), em MB

int

TERMINAL_MEMORY_PHYSICAL

Tamanho da memória física do sistema, em MB

int

TERMINAL_MEMORY_TOTAL

Tamanho da memória disponível para o processo do terminal (agente), em 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 TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) retorna o mesmo código de estado da tecla que a função GetKeyState() da MSDN.

 

Exemplo de cálculo do fator de escala:

//--- criamos um botão com largura de 1.5 polegada na tela
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 fator de escala em porcentagem
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- uso do fator de escala
width=(base_width * scale_factor) / 100;

Com esse uso, o recurso gráfico manterá o mesmo tamanho visual em monitores com diferentes resoluções. Além disso, os tamanhos dos elementos de controle (botões, janelas de diálogo etc.) corresponderão às configurações de personalização.

 

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

TERMINAL_CPU_NAME

Nome do processador

string

TERMINAL_CPU_ARCHITECTURE

Arquitetura do processador

string

TERMINAL_OS_VERSION

Nome do sistema operacional do usuário

string

TERMINAL_COLORTHEME_NAME

Esquema de cores do terminal, valores possíveis: Light e Dark.

string

Para melhor compreensão dos caminhos armazenados nas propriedades dos parâmetros TERMINAL_PATH, TERMINAL_DATA_PATH e TERMINAL_COMMONDATA_PATH, é recomendável executar um script que informe esses valores para a cópia do terminal instalada no 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

 

Obtenção de informações sobre o esquema de cores do terminal #

O terminal permite definir esquemas de cores: claro (padrão) e escuro. Ao criar aplicativos personalizados que possuem interface gráfica para interação com o usuário, os desenvolvedores precisam considerar o esquema de cores atual do terminal. Portanto, é necessário adaptar dinamicamente os componentes visuais usados no aplicativo para oferecer conforto aos usuários.

Para isso, foram adicionadas funções para determinar o esquema de cores do terminal:

 

Identificador

Descrição

Tipo de propriedade

THEME_COLOR_WINDOW

Fundo da janela

color

THEME_COLOR_WINDOWTEXT

Texto na janela

color

THEME_COLOR_WINDOW

Fundo da janela

color

THEME_COLOR_WINDOWTEXT

Texto na janela

color

THEME_COLOR_BTNTEXT

Texto nos botões

color

THEME_COLOR_GRAYTEXT

Texto inativo (desativado)

color

THEME_COLOR_INFOTEXT

Texto em dicas

color

THEME_COLOR_INFOBK

Fundo das dicas

color

THEME_COLOR_3DFACE

Frente de elementos 3D

color

THEME_COLOR_3DLIGHT

Lado claro de elementos 3D

color

THEME_COLOR_3DSHADOW

Lado com sombra de elementos 3D

color

THEME_COLOR_3DDKSHADOW

Sombra escura de elementos 3D

color

THEME_COLOR_3DHILIGHT

Realce de elementos 3D

color

THEME_COLOR_HIGHLIGHT

Fundo dos elementos selecionados

color

THEME_COLOR_HIGHLIGHTTEXT

Texto dos elementos selecionados

color

THEME_COLOR_BTNFACE

Frente dos botões

color

THEME_COLOR_BTNHILIGHT

Realce dos botões

color

THEME_COLOR_BTNSHADOW

Sombra dos botões

color

THEME_COLOR_MENU

Fundo do menu

color

THEME_COLOR_MENUBAR

Fundo da barra de menu

color

THEME_COLOR_MENUTEXT

Texto do menu

color

THEME_COLOR_MENUHILIGHT

Realce do item de menu selecionado

color

THEME_COLOR_ACTIVECAPTION

Título da janela ativa

color

THEME_COLOR_INACTIVECAPTION

Título da janela inativa

color

THEME_COLOR_GRADIENTINACTIVECAPTION

Gradiente do título da janela inativa

color

THEME_COLOR_CAPTIONTEXT

Texto do título da janela

color

THEME_COLOR_INACTIVECAPTIONTEXT

Texto do título da janela inativa

color

THEME_COLOR_HOTTEXT

Hyperlinks ou elementos ativos

color

THEME_COLOR_NONE

Cor não selecionada

color

THEME_COLOR_SEPARATOR

Separador

color

THEME_COLOR_SCROLLBACK

Barra de rolagem

color

THEME_COLOR_LINE1

Cor de fundo de linha ímpar no log

color

THEME_COLOR_LINE2

Cor de fundo de linha par no log

color

THEME_COLOR_GRID

Cor da grade no log

color

THEME_COLOR_SUMMARY

Cor de fundo da linha de total no log

color

THEME_COLOR_ERROR

Cor do texto de erro

color

THEME_COLOR_INVALID

Cor do texto de valor inválido

color

THEME_COLOR_NEGATIVE

Cor de valor negativo

color

THEME_COLOR_POSITIVE

Cor de valor positivo

color

THEME_COLOR_LINK

Cor do link

color

THEME_COLOR_LINKHOVER

Cor do link ao passar o mouse

color

THEME_COLOR_LINKTESTER

Cor dos links em cache de resultados de execuções anteriores de testes/otimizações

color

THEME_COLOR_TEXTUP

Botão não pressionado

color

THEME_COLOR_TEXTDOWN

Botão pressionado

color

THEME_COLOR_BACKUP

Cor dos botões "BUY" e "SELL" na janela "One Click Trading" quando o preço proposto sobe

color

THEME_COLOR_BACKDOWN

Cor dos botões "BUY" e "SELL" na janela "One Click Trading" quando o preço proposto desce

color

THEME_COLOR_CLOSE

Botão de operação "Close"

color

THEME_COLOR_BUY

Botão de operação "BUY"

color

THEME_COLOR_SELL

Botão de operação "SELL"

color

THEME_COLOR_DEPOSIT

Cor do botão "Deposit"

color

THEME_COLOR_WITHDRAWAL

Cor do botão "Withdrawal"

color

THEME_COLOR_BID

Cor da linha "Bid"

color

THEME_COLOR_ASK

Cor da linha "Ask"

color

THEME_COLOR_STOPS

Cor da linha "Stop"

color

THEME_COLOR_STOPS_RED

Realce do valor StopLoss quando o lucro está negativo na aba de Negociação

color

THEME_COLOR_STOPS_GREEN

Realce do valor StopLoss quando o lucro está positivo na aba de Negociação

color

THEME_COLOR_CONFIRM

Cor do botão "Accept" na janela de envio de ordem

color

THEME_COLOR_REQUOTE

Cor do botão "Requote" na janela de envio de ordem

color

THEME_COLOR_REJECT

Cor do botão "Reject" na janela de envio de ordem

color

THEME_COLOR_NOTIFICATION

Cor do texto de alterações do servidor na janela de envio de ordem

color

THEME_COLOR_RATING

Cor da barra de avaliação em sistema de aprendizado

color

THEME_COLOR_BOOK_BUY

Cor do fundo dos níveis de compra no Livro de Ofertas

color

THEME_COLOR_BOOK_SELL

Cor do fundo dos níveis de venda no Livro de Ofertas

color

THEME_COLOR_BOOK_LAST

Cor da última negociação no Livro de Ofertas

color

THEME_COLOR_BOOK_STOP

Cor do nível StopLoss no Livro de Ofertas

color

THEME_COLOR_BOOK_SPREAD

Cor do fundo dos níveis dentro do spread no Livro de Ofertas

color

THEME_COLOR_TICKS_BID

Cor da linha Bid no gráfico de ticks na janela de envio de ordem

color

THEME_COLOR_TICKS_ASK

Cor da linha Ask no gráfico de ticks na janela de envio de ordem

color

THEME_COLOR_TICKS_LAST

Cor da linha Last no gráfico de ticks na janela de envio de ordem

color

THEME_COLOR_TICKS_CROSS

Cor do cursor cruzado no gráfico de ticks na janela de envio de ordem

color

THEME_COLOR_TICKS_SL

Cor da linha StopLoss no gráfico de ticks na janela de envio de ordem

color

THEME_COLOR_TICKS_TP

Cor da linha TakeProfit no gráfico de ticks na janela de envio de ordem

color

THEME_COLOR_TESTER_START

Cor do botão "Start" do teste/otimização

color

THEME_COLOR_TESTER_STOP

Cor do botão "Stop" do teste/otimização

color

THEME_COLOR_TESTER_START_FRAME

Cor da borda do botão "Start" do teste/otimização

color

THEME_COLOR_TESTER_STOP_FRAME

Cor da borda do botão "Stop" do teste/otimização

color

THEME_COLOR_TESTER_PROGRESS

Cor da barra de progresso do teste/otimização

color

THEME_COLOR_TESTER_BALANCE

Cor da linha de Balanço no testador de estratégias

color

THEME_COLOR_TESTER_EQUITY

Cor da linha de Equity no testador de estratégias

color

THEME_COLOR_TESTER_MARGIN

Cor do gráfico de carregamento do depósito no testador de estratégias

color

THEME_COLOR_PROFILER_CALL

Cor da linha de código com chamada no Perfilador

color

THEME_COLOR_PROFILER_CALLSEL

Cor da linha de código destacada com chamada no Perfilador

color

THEME_COLOR_PROFILER_LINE

Cor da linha no log do Perfilador

color

THEME_COLOR_PROFILER_LINESEL

Cor da linha destacada no log do Perfilador

color