Состояние клиентского терминала

Идентификаторы для получения информации о клиентском терминале функциями TerminalInfoInteger() и TerminalInfoString(). В качестве параметра эти функции принимают значения из перечислений ENUM_TERMINAL_INFO_INTEGER и ENUM_TERMINAL_INFO_STRING соответственно.

ENUM_TERMINAL_INFO_INTEGER

Идентификатор

Описание

Тип свойства

TERMINAL_BUILD

Номер билда запущенного терминала

int

TERMINAL_COMMUNITY_ACCOUNT

Флаг наличия авторизационных данных MQL5.community в терминале

bool

TERMINAL_COMMUNITY_CONNECTION

Наличие подключения к MQL5.community

bool

TERMINAL_CONNECTED

Наличие подключения к торговому серверу

bool

TERMINAL_DLLS_ALLOWED

Разрешение на использование DLL

bool

TERMINAL_TRADE_ALLOWED

Разрешение на торговлю

bool

TERMINAL_EMAIL_ENABLED

Разрешение на отправку писем с использованием SMTP-сервера и логина, указанных в настройках терминала

bool

TERMINAL_FTP_ENABLED

Разрешение на отправку отчетов по FTP на указанный сервер для указанного в настройках терминала торгового счета

bool

TERMINAL_NOTIFICATIONS_ENABLED

Разрешение на отправку уведомлений на смартфон

bool

TERMINAL_MAXBARS

Максимальное количество баров на графике

int

TERMINAL_MQID

Флаг наличия MetaQuotes ID для отправки Push-уведомлений

bool

TERMINAL_CODEPAGE

Номер кодовой страницы языка, установленного в клиентском терминале

int

TERMINAL_CPU_CORES

Количество процессоров в системе

int

TERMINAL_DISK_SPACE

Объем свободной памяти на диске для папки MQL5\Files терминала (агента), в MB

int

TERMINAL_MEMORY_PHYSICAL

Размер физической памяти в системе, в MB

int

TERMINAL_MEMORY_TOTAL

Размер памяти, доступной процессу терминала (агента), в MB

int

TERMINAL_MEMORY_AVAILABLE

Размер свободной памяти процесса терминала (агента), в MB

int

TERMINAL_MEMORY_USED

Размер памяти, использованной терминалом (агентом), в MB

int

TERMINAL_X64

Признак "64 битный терминал"

bool

TERMINAL_OPENCL_SUPPORT

Версия поддерживаемой OpenCL в виде 0x00010002 = 1.2.  "0" означает, что OpenCL не поддерживается

int

TERMINAL_SCREEN_DPI

Разрешающая способность вывода информации на экран измеряется в количестве точек на линейный дюйм поверхности (DPI).

Знание этого параметра позволяет задавать размеры графических объектов таким образом, чтобы они выглядели одинаково на мониторах с различной разрешающей способностью.

int

TERMINAL_SCREEN_LEFT

Левая координата виртуального экрана. Виртуальным экраном является прямоугольник, охватывающий все мониторы. Если в системе имеется два монитора и их порядок задан справа налево, то левая координата виртуального экрана может оказаться на границе двух мониторов.

int

TERMINAL_SCREEN_TOP

Верхняя координата виртуального экрана

int

TERMINAL_SCREEN_WIDTH

Ширина терминала

int

TERMINAL_SCREEN_HEIGHT

Высота терминала

int

TERMINAL_LEFT

Левая координата терминала относительно виртуального экрана

int

TERMINAL_TOP

Верхняя координата терминала относительно виртуального экрана

int

TERMINAL_RIGHT

Правая координата терминала относительно виртуального экрана

int

TERMINAL_BOTTOM

Нижняя координата терминала относительно виртуального экрана

int

TERMINAL_PING_LAST

Последнее известное значение пинга до торгового сервера в микросекундах. В одной секунде миллион микросекунд

int

TERMINAL_VPS

Признак того, что терминал запущен на виртуальном сервере MetaTrader Virtual Hosting (MetaTrader VPS)

bool

Идентификатор клавиши

Описание

 

TERMINAL_KEYSTATE_LEFT

Состояние клавиши "Стрелка влево"

int

TERMINAL_KEYSTATE_UP

Состояние клавиши "Стрелка вверх"

int

TERMINAL_KEYSTATE_RIGHT

Состояние клавиши "Стрелка вправо"

int

TERMINAL_KEYSTATE_DOWN

Состояние клавиши "Стрелка вниз"

int

TERMINAL_KEYSTATE_SHIFT

Состояние клавиши "Shift"

int

TERMINAL_KEYSTATE_CONTROL

Состояние клавиши "Ctrl"

int

TERMINAL_KEYSTATE_MENU

Состояние клавиши "Windows"

int

TERMINAL_KEYSTATE_CAPSLOCK

Состояние клавиши "CapsLock"

int

TERMINAL_KEYSTATE_NUMLOCK

Состояние клавиши "NumLock"

int

TERMINAL_KEYSTATE_SCRLOCK

Состояние клавиши "ScrollLock"

int

TERMINAL_KEYSTATE_ENTER

Состояние клавиши "Enter"

int

TERMINAL_KEYSTATE_INSERT

Состояние клавиши "Insert"

int

TERMINAL_KEYSTATE_DELETE

Состояние клавиши "Delete"

int

TERMINAL_KEYSTATE_HOME

Состояние клавиши "Home"

int

TERMINAL_KEYSTATE_END

Состояние клавиши "End"

int

TERMINAL_KEYSTATE_TAB

Состояние клавиши "Tab"

int

TERMINAL_KEYSTATE_PAGEUP

Состояние клавиши "PageUp"

int

TERMINAL_KEYSTATE_PAGEDOWN

Состояние клавиши "PageDown"

int

TERMINAL_KEYSTATE_ESCAPE

Состояние клавиши "Escape"

int

Вызов TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) возвращает такой же код состояния клавиши, как и функция GetKeyState() из MSDN.

 

Пример вычисления коэффициента масштабирования:

//--- создаём кнопку шириной 1.5 дюйма на экране
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI)
...
 
//--- вычисление коэффициента масштабирования в процентах
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- использование коэффициента масштабирования
width=(base_width * scale_factor) / 100;

При таком использовании графический ресурс будет иметь одинаковый на глаз размер на мониторах с различной разрешающей способностью. При этом размеры управляющих элементов (кнопки, окна диалогов и т.д.) будут соответствовать настройкам персонализации.

 

ENUM_TERMINAL_INFO_DOUBLE

Идентификатор

Описание

Тип свойства

TERMINAL_COMMUNITY_BALANCE

Баланс пользователя в MQL5.community

double

TERMINAL_RETRANSMISSION

Процент повторно отправляемых сетевых пакетов в TCP/IP протоколе для всех запущенных приложений и служб на данном компьютере. Даже в самой быстрой и правильно настроенной сети происходят потери пакетов и, как следствие, отсутствие подтверждений о доставке пакетов между получателем и отправителем. В таких случаях производится повторная отправка "потерянного" пакета.
 

Не является показателем качества подключения конкретного терминала к конкретному торговому серверу, так как считается для всей сетевой активности, включая системную и фоновую.
 

Показатель TERMINAL_RETRANSMISSION запрашивается раз в минуту из операционной системы. Сам терминал не считает этот показатель.

double

 

Файловые операции можно проводить только в двух каталогах, пути к которым можно получить при запросе свойств TERMINAL_DATA_PATH и TERMINAL_COMMONDATA_PATH.

ENUM_TERMINAL_INFO_STRING

Идентификатор

Описание

Тип свойства

TERMINAL_LANGUAGE

Язык терминала

string

TERMINAL_COMPANY

Имя компании

string

TERMINAL_NAME

Имя терминала

string

TERMINAL_PATH

Папка, из которой запущен терминал

string

TERMINAL_DATA_PATH

Папка, в которой хранятся данные терминала

string

TERMINAL_COMMONDATA_PATH

Общая папка всех клиентских терминалов, установленных на компьютере

string

TERMINAL_CPU_NAME

Наименование процессора

string

TERMINAL_CPU_ARCHITECTURE

Архитектура процессора

string

TERMINAL_OS_VERSION

Наименование операционной системы пользователя

string

TERMINAL_COLORTHEME_NAME

Цветовая схема терминала, возможные значения: Light и Dark.

string

Для лучшего понимания путей, хранящихся в свойствах параметров TERMINAL_PATH, TERMINAL_DATA_PATH и TERMINAL_COMMONDATA_PATH, рекомендуется выполнить скрипт, которых сообщит эти значения для данной копии терминала, установленного на вашем компьютере.

Пример: скрипт выводит информацию о путях терминала

//+------------------------------------------------------------------+
//|                                          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"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }

В результате выполнения скрипта в Журнал Экспертов будут выведены сообщения,  подобные приведенным на рисунке ниже.

Получение информации о рабочей папке терминала

 

 

Получение информации о цветовой схеме терминала #

Терминал позволяет задавать цветовые схемы — светлую (по умолчанию) и темную. При создании пользовательских приложений, которые имеют графические интерфейс для взаимодействия с пользователем, разработчикам необходимо учитывать текущую цветовую схему терминала. Следовательно, требуется динамическая адаптация использованных в приложении визуальных компонентов для удобства пользователей.

С этой целью добавлены функции для определения цветовой схемы терминала:

  • Значение TERMINAL_COLORTHEME_NAME из перечислении ENUM_TERMINAL_INFO_STRING позволяет получить название цветовой схемы при помощи функции TerminalInfoString. Возможные значения: Light и Dark.
  • Используйте свойства THEME_COLOR_*  из перечислении ENUM_TERMINAL_INFO_INTEGER для получения цветов конкретных элементов интерфейса при помощи функции TerminalInfoInteger.

 

Идентификатор

Описание

Тип свойства

THEME_COLOR_WINDOW

Фон окна

color

THEME_COLOR_WINDOWTEXT

Текст в окне

color

THEME_COLOR_BTNTEXT

Текст на кнопках

color

THEME_COLOR_GRAYTEXT

Неактивный (отключённый) текст

color

THEME_COLOR_INFOTEXT

Текст в подсказках

color

THEME_COLOR_INFOBK

Фон подсказок

color

THEME_COLOR_3DFACE

Лицевая сторона 3D-элементов

color

THEME_COLOR_3DLIGHT

Светлая сторона 3D-элементов

color

THEME_COLOR_3DSHADOW

Теневая сторона 3D-элементов

color

THEME_COLOR_3DDKSHADOW

Тёмная тень 3D-элементов

color

THEME_COLOR_3DHILIGHT

Подсветка 3D-элементов

color

THEME_COLOR_HIGHLIGHT

Фон выделенных элементов

color

THEME_COLOR_HIGHLIGHTTEXT

Текст выделенных элементов

color

THEME_COLOR_BTNFACE

Лицевая сторона кнопок

color

THEME_COLOR_BTNHILIGHT

Подсветка кнопок

color

THEME_COLOR_BTNSHADOW

Тень кнопок

color

THEME_COLOR_MENU

Фон меню

color

THEME_COLOR_MENUBAR

Фон панели меню

color

THEME_COLOR_MENUTEXT

Текст меню

color

THEME_COLOR_MENUHILIGHT

Подсветка выбранного пункта меню

color

THEME_COLOR_ACTIVECAPTION

Заголовок активного окна

color

THEME_COLOR_INACTIVECAPTION

Заголовок неактивного окна

color

THEME_COLOR_GRADIENTINACTIVECAPTION

Градиент заголовка неактивного окна

color

THEME_COLOR_CAPTIONTEXT

Текст заголовка окна

color

THEME_COLOR_INACTIVECAPTIONTEXT

Текст заголовка неактивного окна

color

THEME_COLOR_HOTTEXT

Гиперссылки или активные элементы

color

THEME_COLOR_NONE

Цвет не выбран

color

THEME_COLOR_SEPARATOR

Разделитель

color

THEME_COLOR_SCROLLBACK

Скроллбар

color

THEME_COLOR_LINE1

Цвет фона нечетной строки в Журнале

color

THEME_COLOR_LINE2

Цвет фона четной строки в Журнале

color

THEME_COLOR_GRID

Цвет сетки в Журнале

color

THEME_COLOR_SUMMARY

Цвет фона итоговой строки в Журнале

color

THEME_COLOR_ERROR

Цвет текста об ошибки

color

THEME_COLOR_INVALID

Цвет текста о невалидном значении

color

THEME_COLOR_NEGATIVE

Цвет отрицательного значения

color

THEME_COLOR_POSITIVE

Цвет положительного значения

color

THEME_COLOR_LINK

Цвет ссылки

color

THEME_COLOR_LINKHOVER

Цвет ссылки при наведении мышки

color

THEME_COLOR_LINKTESTER

Цвет ссылок в кеше результатов предыдущих запусков тестирования/оптимизации

color

THEME_COLOR_TEXTUP

Кнопка отжата

color

THEME_COLOR_TEXTDOWN

Кнопка нажата

color

THEME_COLOR_BACKUP

Цвет кнопок "BUY" и "SELL" в окне "One Click Trading" при повышении предложенной цены

color

THEME_COLOR_BACKDOWN

Цвет кнопок "BUY" и "SELL" в окне "One Click Trading" при понижении предложенной цены

color

THEME_COLOR_CLOSE

Кнопка операции "Close"

color

THEME_COLOR_BUY

Кнопка операции "BUY"

color

THEME_COLOR_SELL

Кнопка операции "SELL"

color

THEME_COLOR_DEPOSIT

Цвет кнопки "Deposit"

color

THEME_COLOR_WITHDRAWAL

Цвет кнопки "Withdrawal"

color

THEME_COLOR_BID

Цвет линии "Bid"

color

THEME_COLOR_ASK

Цвет линии "Ask"

color

THEME_COLOR_STOPS

Цвет линии "Stop"

color

THEME_COLOR_STOPS_RED

Подсветка значения StopLoss при отрицательном значении прибыли на вкладке Торговля

color

THEME_COLOR_STOPS_GREEN

Подсветка значения StopLoss при положительном значении прибыли на вкладке Торговля

color

THEME_COLOR_CONFIRM

Цвет кнопки "Accept" в окне отправки ордера

color

THEME_COLOR_REQUOTE

Цвет кнопки "Requote"  в окне отправки ордера

color

THEME_COLOR_REJECT

Цвет кнопки "Reject"  в окне отправки ордера

color

THEME_COLOR_NOTIFICATION

Цвет текста об изменении от сервера в окне отправки ордера

color

THEME_COLOR_RATING

Цвет полоски рейтинга в системе обучения

color

THEME_COLOR_BOOK_BUY

Цвет фона уровней на покупку в Стакане цен

color

THEME_COLOR_BOOK_SELL

Цвет фона уровней на продажу в Стакане цен

color

THEME_COLOR_BOOK_LAST

Цвет последней сделки в Стакане цен

color

THEME_COLOR_BOOK_STOP

Цвет уровня StopLoss в Стакане цен

color

THEME_COLOR_BOOK_SPREAD

Цвет фона уровней внутри спреда в Стакане цен

color

THEME_COLOR_TICKS_BID

Цвет линии Bid тикового графика в окне отправки ордера

color

THEME_COLOR_TICKS_ASK

Цвет линии Ask тикового графика в окне отправки ордера

color

THEME_COLOR_TICKS_LAST

Цвет линии Last тикового графика в окне отправки ордера

color

THEME_COLOR_TICKS_CROSS

Цвет перекрестья на тиковом графике в окне отправки ордера

color

THEME_COLOR_TICKS_SL

Цвет линии StopLoss на тиковом графике в окне отправки ордера

color

THEME_COLOR_TICKS_TP

Цвет линии TakeProfit на тиковом графике в окне отправки ордера

color

THEME_COLOR_TESTER_START

Цвет кнопки "Старт" тестирования/оптимизации

color

THEME_COLOR_TESTER_STOP

Цвет кнопки "Стоп" тестирования/оптимизации

color

THEME_COLOR_TESTER_START_FRAME

Цвет рамки кнопки "Старт" тестирования/оптимизации

color

THEME_COLOR_TESTER_STOP_FRAME

Цвет рамки кнопки "Стоп" тестирования/оптимизации

color

THEME_COLOR_TESTER_PROGRESS

Цвет прогресс-бара тестирования/оптимизации

color

THEME_COLOR_TESTER_BALANCE

Цвет линии Баланс в тестере стратегий

color

THEME_COLOR_TESTER_EQUITY

Цвет линии Эквити в тестере стратегий

color

THEME_COLOR_TESTER_MARGIN

Цвет графика загрузки депозита в тестере стратегий

color

THEME_COLOR_PROFILER_CALL

Цвет строки кода с вызовом при Профилировке

color

THEME_COLOR_PROFILER_CALLSEL

Цвет выделенной строки кода с вызовом при Профилировки

color

THEME_COLOR_PROFILER_LINE

Цвет строки в Журнале Профилировки

color

THEME_COLOR_PROFILER_LINESEL

Цвет выделенной строки в Журнале Профилировки

color