Константы, описывающие текущую среду выполнения mql5-программы делятся на группы:
- Состояние клиентского терминала – информация о клиентском терминале;
- Информация о запущенной MQL5-программе – свойства mql5-программы, которые помогают дополнительно управлять ее поведением;
- Информация об инструменте – получение торговой информации об инструменте;
- Информация о счете – информация о текущем торговом счете;
- Статистика тестирования – результаты тестирования эксперта.
Состояние клиентского терминала
Идентификаторы для получения информации о клиентском терминале функциями TerminalInfoInteger() и TerminalInfoString(). В качестве параметра эти функции принимают значения из перечислений ENUM_TERMINAL_INFO_INTEGER и ENUM_TERMINAL_INFO_STRING соответственно.
Идентификатор |
Описание |
Тип свойства |
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_PING_LAST |
Последнее известное значение пинга до торгового сервера в микросекундах. В одной секунде миллион микросекунд. |
int |
Идентификатор клавиши |
Описание |
|
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;
При таком использовании графический ресурс будет иметь одинаковый на глаз размер на мониторах с различной разрешающей способностью. При этом размеры управляющих элементов (кнопки, окна диалогов и т.д.) будут соответствовать настройкам персонализации.
Идентификатор |
Описание |
Тип свойства |
TERMINAL_COMMUNITY_BALANCE |
Баланс пользователя в MQL5.community |
double |
Файловые операции можно проводить только в двух каталогах, пути к которым можно получить при запросе свойств TERMINAL_DATA_PATH и TERMINAL_COMMONDATA_PATH.
Идентификатор |
Описание |
Тип свойства |
TERMINAL_LANGUAGE |
Язык терминала |
string |
TERMINAL_COMPANY |
Имя компании |
string |
TERMINAL_NAME |
Имя терминала |
string |
TERMINAL_PATH |
Папка, из которой запущен терминал |
string |
TERMINAL_DATA_PATH |
Папка, в которой хранятся данные терминала |
string |
TERMINAL_COMMONDATA_PATH |
Общая папка всех клиентских терминалов, установленных на компьютере |
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)); }
В результате выполнения скрипта в Журнал Экспертов будут выведены сообщения, подобные приведенным на рисунке ниже.
Информация о запущенной MQL5-программе
Константы, для получения информации о выполняющейся mql5-программе, перечислены в ENUM_MQL_INFO_INTEGER и ENUM_MQL_INFO_STRING.
Для функции MQLInfoInteger()
ENUM_MQL_INFO_INTEGER
Идентификатор |
Описание |
Тип свойства |
MQL_MEMORY_LIMIT |
Максимально возможный объём динамической памяти для MQL5-программы в MB |
int |
MQL_MEMORY_USED |
Размер использованной памяти MQL5-программой в MB |
int |
MQL_PROGRAM_TYPE |
Тип mql5-программы |
ENUM_PROGRAM_TYPE |
MQL_DLLS_ALLOWED |
Разрешение на использование DLL для данной запущенной программы |
bool |
MQL_TRADE_ALLOWED |
Разрешение на торговлю для данной запущенной программы |
bool |
MQL_SIGNALS_ALLOWED |
Разрешение на работу с сигналами данной запущенной программы |
bool |
MQL_DEBUG |
Признак работы запущенной программы в режиме отладки |
bool |
MQL_PROFILER |
Признак работы запущенной программы в режиме профилирования кода |
bool |
MQL_TESTER |
Признак работы запущенной программы в тестере |
bool |
MQL_OPTIMIZATION |
Признак работы запущенной программы в процессе оптимизации |
bool |
MQL_VISUAL_MODE |
Признак работы запущенной программы в визуальном режиме тестирования |
bool |
MQL_FRAME_MODE |
Признак работы запущенного эксперта на графике в режиме сбора фреймов результатов оптимизации |
bool |
MQL_LICENSE_TYPE |
Тип лицензии модуля EX5. Лицензия относится именно к тому модулю EX5, из которого делается запрос с помощью MQLInfoInteger(MQL_LICENSE_TYPE). |
ENUM_LICENSE_TYPE |
Для функции MQLInfoString()
Идентификатор |
Описание |
Тип свойства |
MQL_PROGRAM_NAME |
Имя запущенной MQL5-программы |
string |
MQL_PROGRAM_PATH |
Путь для данной запущенной программы |
string |
Для получения информации о типе выполняемой программы предназначены значения перечисления ENUM_PROGRAM_TYPE.
ENUM_PROGRAM_TYPE
Идентификатор |
Описание |
PROGRAM_SCRIPT |
Скрипт |
PROGRAM_EXPERT |
Эксперт |
PROGRAM_INDICATOR |
Индикатор |
ENUM_LICENSE_TYPE
Идентификатор |
Описание |
LICENSE_FREE |
Бесплатная неограниченная версия |
LICENSE_DEMO |
Демо-версия платного продукта из Маркета. Работает только в тестере стратегий |
LICENSE_FULL |
Купленная лицензионная версия допускает не менее 5 активаций. Продавец может увеличить разрешенное число активаций |
LICENSE_TIME |
Версия с ограниченной по времени лицензией |
Пример:
ENUM_PROGRAM_TYPE mql_program=(ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE); switch(mql_program) { case PROGRAM_SCRIPT: { Print(__FILE__+" is script"); break; } case PROGRAM_EXPERT: { Print(__FILE__+" is Expert Advisor"); break; } case PROGRAM_INDICATOR: { Print(__FILE__+" is custom indicator"); break; } default:Print("MQL5 type value is ",mql_program); }
Информация об инструменте
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно.
Для функции SymbolInfoInteger()
Идентификатор |
Описание |
Тип свойства |
SYMBOL_CUSTOM |
Признак того, что символ является пользовательским, то есть искусственно созданным на основе других символов из Market Watch или/и внешних источников данных |
bool |
SYMBOL_BACKGROUND_COLOR |
Цвет фона, которым подсвечивается символ в Market Watch |
color |
SYMBOL_CHART_MODE |
Тип цены для построения баров – Bid или Last |
ENUM_SYMBOL_CHART_MODE |
SYMBOL_SELECT |
Признак того, что символ выбран в Market Watch |
bool |
SYMBOL_VISIBLE |
Признак того, что выбранный символ отображается в Market Watch.
Некоторые символы (как правило, это кросс-курсы, которые необходимы для расчёта маржевых требований и прибыли в валюте депозита) выбираются автоматически, при этом могут не отображаться в Market Watch. Для отображения такие символы должны быть выбраны явно. |
bool |
SYMBOL_SESSION_DEALS |
Количество сделок в текущей сессии |
long |
SYMBOL_SESSION_BUY_ORDERS |
Общее число ордеров на покупку в текущий момент |
long |
SYMBOL_SESSION_SELL_ORDERS |
Общее число ордеров на продажу в текущий момент |
long |
SYMBOL_VOLUME |
Volume — объем в последней сделке |
long |
SYMBOL_VOLUMEHIGH |
Максимальный Volume за день |
long |
SYMBOL_VOLUMELOW |
Минимальный Volume за день |
long |
Время последней котировки |
datetime |
|
SYMBOL_DIGITS |
Количество знаков после запятой |
int |
SYMBOL_SPREAD |
Размер спреда в пунктах |
int |
SYMBOL_SPREAD_FLOAT |
Признак плавающего спреда |
bool |
SYMBOL_TICKS_BOOKDEPTH |
Максимальное количество показываемых заявок в стакане. Для инструментов, не имеющих очереди заявок, значение равно 0 |
int |
SYMBOL_TRADE_CALC_MODE |
Способ вычисления стоимости контракта |
ENUM_SYMBOL_CALC_MODE |
SYMBOL_TRADE_MODE |
Тип исполнения ордеров |
ENUM_SYMBOL_TRADE_MODE |
SYMBOL_START_TIME |
Дата начала торгов по инструменту (обычно используется для фьючерсов) |
datetime |
SYMBOL_EXPIRATION_TIME |
Дата окончания торгов по инструменту (обычно используется для фьючерсов) |
datetime |
SYMBOL_TRADE_STOPS_LEVEL |
Минимальный отступ в пунктах от текущей цены закрытия для установки Stop ордеров |
int |
SYMBOL_TRADE_FREEZE_LEVEL |
Дистанция заморозки торговых операций (в пунктах) |
int |
SYMBOL_TRADE_EXEMODE |
Режим заключения сделок |
ENUM_SYMBOL_TRADE_EXECUTION |
SYMBOL_SWAP_MODE |
Модель расчета свопа |
ENUM_SYMBOL_SWAP_MODE |
SYMBOL_SWAP_ROLLOVER3DAYS |
День недели для начисления тройного свопа |
ENUM_DAY_OF_WEEK |
SYMBOL_MARGIN_HEDGED_USE_LEG |
Режим расчета хеджированной маржи по наибольшей стороне (Buy или Sell) |
bool |
SYMBOL_EXPIRATION_MODE |
Флаги разрешенных режимов истечения ордера |
int |
SYMBOL_FILLING_MODE |
Флаги разрешенных режимов заливки ордера |
int |
SYMBOL_ORDER_MODE |
Флаги разрешенных типов ордера |
int |
SYMBOL_ORDER_GTC_MODE |
Срок действия StopLoss и TakeProfit ордеров, если SYMBOL_EXPIRATION_MODE=SYMBOL_EXPIRATION_GTC (Good till cancelled) |
ENUM_SYMBOL_ORDER_GTC_MODE |
SYMBOL_ORDER_CLOSEBY |
Разрешение на закрытие позиции с помощью встречной – то есть открытой в противоположном направлении по тому же инструменту. Свойство задается для счетов с хеджинговой системой учета (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) |
bool |
SYMBOL_OPTION_MODE |
Тип опциона |
ENUM_SYMBOL_OPTION_MODE |
SYMBOL_OPTION_RIGHT |
Право опциона (Call/Put) |
ENUM_SYMBOL_OPTION_RIGHT |
Для функции SymbolInfoDouble()
Идентификатор |
Описание |
Тип свойства |
SYMBOL_BID |
Bid — лучшее предложение на продажу |
double |
SYMBOL_BIDHIGH |
Максимальный Bid за день |
double |
SYMBOL_BIDLOW |
Минимальный Bid за день |
double |
SYMBOL_ASK |
Ask — лучшее предложение на покупку |
double |
SYMBOL_ASKHIGH |
Максимальный Ask за день |
double |
SYMBOL_ASKLOW |
Минимальный Ask за день |
double |
SYMBOL_LAST |
Цена, по которой совершена последняя сделка |
double |
SYMBOL_LASTHIGH |
Максимальный Last за день |
double |
SYMBOL_LASTLOW |
Минимальный Last за день |
double |
SYMBOL_OPTION_STRIKE |
Цена исполнения опциона. Это цена, по которой покупатель опциона может купить (при опционе Call) или продать (при опционе Put) базовый актив, а продавец опциона соответственно обязан продать или купить соответствующее количество базового актива. |
double |
SYMBOL_POINT |
Значение одного пункта |
double |
SYMBOL_TRADE_TICK_VALUE |
Значение SYMBOL_TRADE_TICK_VALUE_PROFIT |
double |
SYMBOL_TRADE_TICK_VALUE_PROFIT |
Рассчитанная стоимость тика для прибыльной позиции |
double |
SYMBOL_TRADE_TICK_VALUE_LOSS |
Рассчитанная стоимость тика для убыточной позиции |
double |
SYMBOL_TRADE_TICK_SIZE |
Минимальное изменение цены |
double |
SYMBOL_TRADE_CONTRACT_SIZE |
Размер торгового контракта |
double |
SYMBOL_TRADE_ACCRUED_INTEREST |
Накопленный купонный доход – часть купонного процентного дохода по облигации, рассчитываемая пропорционально количеству дней, прошедших от даты выпуска купонной облигации или даты выплаты предшествующего купонного дохода |
double |
SYMBOL_TRADE_FACE_VALUE |
Номинальная стоимость – начальная стоимость облигации, установленная эмитентом |
double |
SYMBOL_TRADE_LIQUIDITY_RATE |
Коэффициент ликвидности – доля от стоимости актива, которую можно использовать в качестве залога. Используется для Collateral-инструментов |
double |
SYMBOL_VOLUME_MIN |
Минимальный объем для заключения сделки |
double |
SYMBOL_VOLUME_MAX |
Максимальный объем для заключения сделки |
double |
SYMBOL_VOLUME_STEP |
Минимальный шаг изменения объема для заключения сделки |
double |
SYMBOL_VOLUME_LIMIT |
Максимально допустимый для данного символа совокупный объем открытой позиции и отложенных ордеров в одном направлении (покупка или продажа). Например, при ограничении в 5 лотов можно иметь открытую позицию на покупку объемом 5 лотов и выставить отложенный ордер Sell Limit объемом 5 лотов. Но при этом нельзя выставить отложенный ордер Buy Limit (поскольку совокупный объем в одном направлении превысит ограничение) или выставить Sell Limit объемом более 5 лотов. |
double |
SYMBOL_SWAP_LONG |
Значение свопа в покупку |
double |
SYMBOL_SWAP_SHORT |
Значение свопа в продажу |
double |
SYMBOL_MARGIN_INITIAL |
Начальная (инициирующая) маржа обозначает размер необходимых залоговых средств в маржинальной валюте для открытия позиции объемом в один лот. Используется при проверке средств клиента при входе в рынок. |
double |
SYMBOL_MARGIN_MAINTENANCE |
Поддерживающая маржа по инструменту. В случае если задана – указывает размер маржи в маржинальной валюте инструмента, удерживаемой с одного лота. Используется при проверке средств клиента при изменении состояния счета клиента. Если поддерживающая маржа равна 0, то используется начальная маржа. |
double |
SYMBOL_SESSION_VOLUME |
Cуммарный объём сделок в текущую сессию |
double |
SYMBOL_SESSION_TURNOVER |
Cуммарный оборот в текущую сессию |
double |
SYMBOL_SESSION_INTEREST |
Cуммарный объём открытых позиций |
double |
SYMBOL_SESSION_BUY_ORDERS_VOLUME |
Общий объём ордеров на покупку в текущий момент |
double |
SYMBOL_SESSION_SELL_ORDERS_VOLUME |
Общий объём ордеров на продажу в текущий момент |
double |
SYMBOL_SESSION_OPEN |
Цена открытия сессии |
double |
SYMBOL_SESSION_CLOSE |
Цена закрытия сессии |
double |
SYMBOL_SESSION_AW |
Средневзвешенная цена сессии |
double |
SYMBOL_SESSION_PRICE_SETTLEMENT |
Цена поставки на текущую сессию |
double |
SYMBOL_SESSION_PRICE_LIMIT_MIN |
Минимально допустимое значение цены на сессию |
double |
SYMBOL_SESSION_PRICE_LIMIT_MAX |
Максимально допустимое значение цены на сессию |
double |
SYMBOL_MARGIN_HEDGED |
Размер контракта или маржи для одного лота перекрытых позиций (разнонаправленные позиции по одному символу). Существует два способа расчета маржи для перекрытых позиций. Способ расчета определяется брокером. Базовый расчет:
Расчет по наибольшей позиции:
|
double |
Для функции SymbolInfoString()
Идентификатор |
Описание |
Тип свойства |
SYMBOL_BASIS |
Имя базового актива для производного инструмента |
string |
SYMBOL_CURRENCY_BASE |
Базовая валюта инструмента |
string |
SYMBOL_CURRENCY_PROFIT |
Валюта прибыли |
string |
SYMBOL_CURRENCY_MARGIN |
Валюта в которой вычисляется залоговые средства |
string |
SYMBOL_BANK |
Источник текущей котировки |
string |
SYMBOL_DESCRIPTION |
Строковое описание символа |
string |
SYMBOL_FORMULA |
Формула для построения цены пользовательского символа |
string |
SYMBOL_ISIN |
Имя торгового символа в системе международных идентификационных кодов ценных бумаг — ISIN (International Securities Identification Number). Международный идентификационный код ценной бумаги — это 12-разрядный буквенно-цифровой код, однозначно идентифицирующий ценную бумагу. Наличие данного свойства символа определяется на стороне торгового сервера. |
string |
SYMBOL_PAGE |
Адрес интернет страницы с информацией по символу. Данный адрес будет отображаться в виде ссылки при просмотре свойств символа в терминале |
string |
SYMBOL_PATH |
Путь в дереве символов |
string |
Ценовой график по символу может строиться на основе цены Bid или Last. От выбора цены для построения графиков зависит то, как формируются и отображаются бары в терминале. Возможные значения свойства SYMBOL_CHART_MODE приводятся в перечислении ENUM_SYMBOL_CHART_MODE
Идентификатор |
Описание |
SYMBOL_CHART_MODE_BID |
Бары строятся по ценам Bid |
SYMBOL_CHART_MODE_LAST |
Бары строятся по ценам Last |
Для каждого финансового инструмента могут быть указаны несколько режимов срока действия (истечения) отложенных ордеров. Каждому режиму сопоставлен флаг, флаги могут комбинироваться операцией логического ИЛИ (|), например, SYMBOL_EXPIRATION_GTC|SYMBOL_EXPIRATION_SPECIFIED. Чтобы проверить разрешенность конкретного режима для инструмента, необходимо результат логического И (&) сравнить с флагом режима.
Если для символа указан флаг SYMBOL_EXPIRATION_SPECIFIED, то при отправке отложенного ордера можно конкретно указать, до какого момента действует данный отложенный ордер.
Идентификатор |
Значение |
Описание |
SYMBOL_EXPIRATION_GTC |
1 |
Ордер действителен неограниченно по времени до явной его отмены |
SYMBOL_EXPIRATION_DAY |
2 |
Ордер действителен до конца дня |
SYMBOL_EXPIRATION_SPECIFIED |
4 |
Срок истечения указывается в ордере |
SYMBOL_EXPIRATION_SPECIFIED_DAY |
8 |
День истечения указывается в ордере |
Пример:
//+------------------------------------------------------------------+ //| проверяет разрешенность указанного режима экспирации | //+------------------------------------------------------------------+ bool IsExpirationTypeAllowed(string symbol,int exp_type) { //--- получим значение свойства, описывающего допустимые режимы истечения срока действия int expiration=(int)SymbolInfoInteger(symbol,SYMBOL_EXPIRATION_MODE); //--- вернем true, если режим exp_type разрешен return((expiration&exp_type)==exp_type); }
Если свойство SYMBOL_EXPIRATION_MODE имеет значение SYMBOL_EXPIRATION_GTC (ордер действителен до отмены), то срок действия отложенных ордеров и установленных уровней StopLoss/TakeProfit дополнительно задается с помощью перечисления ENUM_SYMBOL_ORDER_GTC_MODE.
Идентификатор |
Описание |
SYMBOL_ORDERS_GTC |
Отложенные ордеры и уровни Stop Loss/Take Profit действительны неограниченно по времени до явной отмены |
SYMBOL_ORDERS_DAILY |
Ордеры действуют только внутри одного торгового дня. По его завершении все уровни StopLoss и TakeProfit удаляются, а также удаляются отложенные ордеры |
SYMBOL_ORDERS_DAILY_EXCLUDING_STOPS |
При смене торгового дня удаляются только отложенные ордеры, уровни StopLoss и TakeProfit сохраняются |
При отправке ордера можно указать политику заполнения заявленного в торговом приказе объема. Допустимые варианты исполнения ордера по объему для каждого символа указаны таблице. Для каждого инструмента может быть установлен не один режим, а несколько через комбинацию флагов. Комбинация флагов выражается операцией логического ИЛИ (|), например, SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC. Чтобы проверить разрешенность конкретного режима для инструмента, необходимо результат логического И (&) сравнить с флагом режима.
Политика заполнения |
Идентификатор |
Значение |
Описание |
Все/Ничего |
SYMBOL_FILLING_FOK |
1 |
Данная политика исполнения означает, что ордер может быть исполнен исключительно в указанном объеме. Если на рынке в данный момент не присутствует достаточного объема финансового инструмента, то ордер не будет исполнен. Необходимый объем может быть составлен из нескольких предложений, доступных в данный момент на рынке. |
Все/Частично |
SYMBOL_FILLING_IOC |
2 |
В данном случае трейдер соглашается совершить сделку по максимально доступному на рынке объему в пределах указанного в ордере. В случае невозможности полного исполнения ордер будет исполнен на доступный объем, а неисполненный объем ордера будет отменен. Возможность использования IOC ордеров определяется на торговом сервере. |
Вернуть |
Идентификатор отсутствует |
|
Данный режим используется для рыночных (Buy и Sell), лимитных и стоп-лимитных ордеров и только в режимах «Исполнение по рынку» и «Биржевое исполнение». В случае частичного исполнения рыночный или лимитный ордер с остаточным объемом не снимается, а продолжает действовать. |
В режимах исполнения «По запросу» и «Немедленный» для рыночных ордеров всегда используется политика заполнения Все/Ничего, а для лимитных ордеров — режим «Вернуть». В данном случае, при от отсылке ордеров функциями OrderSend или OrderSendAsync тип заполнения для них можно не указывать.
В режимах исполнения «По рынку» и «Биржевой» политика заполнения «Вернуть» всегда разрешена для всех типов ордеров. Разрешенность остальных типов проверяется при помощи свойств SYMBOL_FILLING_FOK и SYMBOL_FILLING_IOC.
Пример:
//+------------------------------------------------------------------+ //| проверяет разрешенность указанного режима заполнения | //+------------------------------------------------------------------+ bool IsFillingTypeAllowed(string symbol,int fill_type) { //--- получим значение свойства, описывающего режим заполнения int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE); //--- вернем true, если режим fill_type разрешен return((filling&fill_type)==fill_type); }
При отправке торгового запроса функцией OrderSend() для некоторых операций необходимо указать тип ордера из перечисления ENUM_ORDER_TYPE. Не все типы ордеров могут быть разрешены для конкретного финансового инструмента, свойство SYMBOL_ORDER_MODE описывает флаги разрешенных типов ордеров.
Идентификатор |
Значение |
Описание |
SYMBOL_ORDER_MARKET |
1 |
Разрешены рыночные ордера (Buy и Sell) |
SYMBOL_ORDER_LIMIT |
2 |
Разрешены лимитные ордера (Buy Limit и Sell Limit) |
SYMBOL_ORDER_STOP |
4 |
Разрешены стоп-ордера (Buy Stop и Sell Stop) |
SYMBOL_ORDER_STOP_LIMIT |
8 |
Разрешены стоп-лимит ордера (Buy Stop Limit и Sell Stop Limit) |
SYMBOL_ORDER_SL |
16 |
Разрешена установка Stop Loss |
SYMBOL_ORDER_TP |
32 |
Разрешена установка Take Profit |
Пример:
//+------------------------------------------------------------------+ //| Функция выводит на печать разрешенные для символа типы ордеров | //+------------------------------------------------------------------+ void Check_SYMBOL_ORDER_MODE(string symbol) { //--- получим значение свойства, описывающего разрешенные типы ордеров int symbol_order_mode=(int)SymbolInfoInteger(symbol,SYMBOL_ORDER_MODE); //--- проверка на рыночные ордера (Market Execution) if((SYMBOL_ORDER_MARKET&symbol_order_mode)==SYMBOL_ORDER_MARKET) Print(symbol+": Рыночные ордера разрешены (Buy и Sell)"); //--- проверка на ордера типа Limit if((SYMBOL_ORDER_LIMIT&symbol_order_mode)==SYMBOL_ORDER_LIMIT) Print(symbol+": Ордера Buy Limit и Sell Limit разрешены"); //--- проверка на ордера типа Stop if((SYMBOL_ORDER_STOP&symbol_order_mode)==SYMBOL_ORDER_STOP) Print(symbol+": Ордера Buy Stop и Sell Stop разрешены"); //--- проверка на ордера типа Stop Limit if((SYMBOL_ORDER_STOP_LIMIT&symbol_order_mode)==SYMBOL_ORDER_STOP_LIMIT) Print(symbol+": Ордера Buy Stop Limit и Sell Stop Limit разрешены"); //--- проверка на возможность установки ордеров Stop Loss if((SYMBOL_ORDER_SL&symbol_order_mode)==SYMBOL_ORDER_SL) Print(symbol+": Ордера Stop Loss разрешены"); //--- проверка на возможность установки ордеров Take Profit if((SYMBOL_ORDER_TP&symbol_order_mode)==SYMBOL_ORDER_TP) Print(symbol+": Ордера Take Profit разрешены"); //--- }
Для получения информации о способе вычисления величины залоговых средств по инструменту (размера маржинальных требований) предназначено перечисление ENUM_SYMBOL_CALC_MODE.
Идентификатор |
Описание |
Формула |
SYMBOL_CALC_MODE_FOREX |
Forex mode – расчет прибыли и маржи для Форекс |
Margin: Lots*Contract_Size/Leverage Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_FUTURES |
Futures mode – расчет залога и прибыли для фьючерсов |
Margin: Lots *InitialMargin*Percentage/100 Profit: (close_price-open_price)*TickPrice/TickSize*Lots |
SYMBOL_CALC_MODE_CFD |
CFD mode – расчет залога и прибыли для CFD |
Margin: Lots *ContractSize*MarketPrice*Percentage/100 Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_CFDINDEX |
CFD index mode – расчет залога и прибыли для CFD на индексы |
Margin: (Lots*ContractSize*MarketPrice)*TickPrice/TickSize Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_CFDLEVERAGE |
CFD Leverage mode – расчет залога и прибыли для CFD при торговле с плечом |
Margin: (Lots*ContractSize*MarketPrice*Percentage)/Leverage Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_EXCH_STOCKS |
Exchange mode – расчет залога и прибыли для торговли ценными бумагами на бирже |
Margin: Lots*ContractSize*OpenPrice Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_EXCH_FUTURES |
Futures mode – расчет залога и прибыли для торговли фьючерсными контрактами на бирже |
Margin: Lots*InitialMargin или Lots*MaintenanceMargin Profit: (close_price-open_price)*Lots*TickPrice/TickSize |
SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS |
FORTS Futures mode – расчет залога и прибыли для торговли фьючерсными контрактами на FORTS. Размер маржи может уменьшаться на величину отклонения MarginDiscount по следующим правилам: 1. Если цена длинной позиции (ордера на покупку) меньше расчетной цены, то MarginDiscount = Lots*((PriceSettle-PriceOrder)*TickPrice/TickSize) 2. Если цена короткой позиций (ордера на продажу) больше расчетной цены, то MarginDiscount = Lots*((PriceOrder-PriceSettle)*TickPrice/TickSize) где:
|
Margin: Lots*InitialMargin или Lots*MaintenanceMargin Profit: (close_price-open_price)*Lots*TickPrice/TickSize |
SYMBOL_CALC_MODE_SERV_COLLATERAL |
Collateral mode — инструмент используется в качестве неторгуемого актива на торговом счете. Рыночная стоимость открытой позиции рассчитывается на основании объема, текущей цены рынка, размера контракта и коэффициента ликвидности. Стоимость учитывается в Активах (Assets), которые суммируются с собственными средствами (Equity). Тем самым открытые позиции по такому инструменту увеличивают размер свободных средств (Free Margin) и служат дополнительным обеспечением под открытые позиции по торгуемым инструментам |
Margin: нет Profit: нет Рыночная стоимость: Lots*ContractSize*MarketPrice*LiqudityRate |
Существует несколько режимов торговли по финансовым инструментам. Информация о режимах торговли по конкретному инструменту отображена в значениях перечисления ENUM_SYMBOL_TRADE_MODE.
Идентификатор |
Описание |
SYMBOL_TRADE_MODE_DISABLED |
Торговля по символу запрещена |
SYMBOL_TRADE_MODE_LONGONLY |
Разрешены только покупки |
SYMBOL_TRADE_MODE_SHORTONLY |
Разрешены только продажи |
SYMBOL_TRADE_MODE_CLOSEONLY |
Разрешены только операции закрытия позиций |
SYMBOL_TRADE_MODE_FULL |
Нет ограничений на торговые операции |
Возможные режимы заключения сделок по конкретному инструменту определены в перечислении ENUM_SYMBOL_TRADE_EXECUTION.
Идентификатор |
Описание |
SYMBOL_TRADE_EXECUTION_REQUEST |
Торговля по запросу |
SYMBOL_TRADE_EXECUTION_INSTANT |
Торговля по потоковым ценам |
SYMBOL_TRADE_EXECUTION_MARKET |
Исполнение ордеров по рынку |
SYMBOL_TRADE_EXECUTION_EXCHANGE |
Биржевое исполнение |
Способы начисления свопов при переносе позиции указаны в перечислении ENUM_SYMBOL_SWAP_MODE. Способ начисления свопов определяет единицы измерения параметров SYMBOL_SWAP_LONG и SYMBOL_SWAP_SHORT. Например, если свопы начисляются в валюте депозита клиента, в параметрах объем начисляемых свопов указывается именно в валюте депозита клиента.
Идентификатор |
Описание |
SYMBOL_SWAP_MODE_DISABLED |
Нет свопов |
SYMBOL_SWAP_MODE_POINTS |
Свопы начисляются в пунктах |
SYMBOL_SWAP_MODE_CURRENCY_SYMBOL |
Свопы начисляются в деньгах в базовой валюте символа |
SYMBOL_SWAP_MODE_CURRENCY_MARGIN |
Свопы начисляются в деньгах в маржинальной валюте символа |
SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT |
Свопы начисляются в деньгах в валюте депозита клиента |
SYMBOL_SWAP_MODE_INTEREST_CURRENT |
Свопы начисляются в годовых процентах от цены инструмента на момент расчета свопа(банковский режим – 360 дней в году) |
SYMBOL_SWAP_MODE_INTEREST_OPEN |
Свопы начисляются в годовых процентах от цены открытия позиции по символу (банковский режим – 360 дней в году) |
SYMBOL_SWAP_MODE_REOPEN_CURRENT |
Свопы начисляются переоткрытием позиции. В конце торгового дня позиция принудительно закрывается. На следующий день позиция переоткрывается по цене закрытия +/- указанное количество пунктов (в параметрах SYMBOL_SWAP_LONG и SYMBOL_SWAP_SHORT) |
SYMBOL_SWAP_MODE_REOPEN_BID |
Свопы начисляются переоткрытием позиции. В конце торгового дня позиция принудительно закрывается. На следующий день позиция переоткрывается по текущей цене Bid +/- указанное количество пунктов (в параметрах SYMBOL_SWAP_LONG и SYMBOL_SWAP_SHORT) |
Для указания дня недели предназначены значения перечисления ENUM_DAY_OF_WEEK.
Идентификатор |
Описание |
SUNDAY |
Воскресенье |
MONDAY |
Понедельник |
TUESDAY |
Вторник |
WEDNESDAY |
Среда |
THURSDAY |
Четверг |
FRIDAY |
Пятница |
SATURDAY |
Суббота |
Опцион – это контракт, который дает право, но не обязанность купить или продать базовый актив (товар, акцию, фьючерс и т.д.) по фиксированной цене в течении жизни опциона или в определенный момент времени. Для описания свойств опционов предназначены перечисления, которые описывают тип опциона и право, который он представляет.
Идентификатор |
Описание |
SYMBOL_OPTION_RIGHT_CALL |
Опцион, дающий право купить актив по фиксированной цене |
SYMBOL_OPTION_RIGHT_PUT |
Опцион, дающий право продать актив по фиксированной цене |
Идентификатор |
Описание |
SYMBOL_OPTION_MODE_EUROPEAN |
Европейский тип опциона – может быть погашен только в указанную дату (дата истечения срока, дата исполнения, дата погашения) |
SYMBOL_OPTION_MODE_AMERICAN |
Американский тип опциона – может быть погашен в любой день до истечения срока опциона. Для такого типа задаётся период, в течение которого покупатель может исполнить данный опцион |
Информация о счете
Для получения информации о текущем счете предназначены функции AccountInfoInteger(), AccountInfoDouble() и AccountInfoString(). В качестве параметра эти функции принимают значения из соответствующих перечислений ENUM_ACCOUNT_INFO.
Для функции AccountInfoInteger()
Идентификатор |
Описание |
Тип свойства |
ACCOUNT_LOGIN |
Номер счета |
long |
ACCOUNT_TRADE_MODE |
Тип торгового счета |
ENUM_ACCOUNT_TRADE_MODE |
ACCOUNT_LEVERAGE |
Размер предоставленного плеча |
long |
ACCOUNT_LIMIT_ORDERS |
Максимально допустимое количество действующих отложенных ордеров |
int |
ACCOUNT_MARGIN_SO_MODE |
Режим задания минимально допустимого уровня залоговых средств |
ENUM_ACCOUNT_STOPOUT_MODE |
ACCOUNT_TRADE_ALLOWED |
Разрешенность торговли для текущего счета |
bool |
ACCOUNT_TRADE_EXPERT |
Разрешенность торговли для эксперта |
bool |
ACCOUNT_MARGIN_MODE |
Режим расчета маржи |
ENUM_ACCOUNT_MARGIN_MODE |
Для функции AccountInfoDouble()
Идентификатор |
Описание |
Тип свойства |
ACCOUNT_BALANCE |
Баланс счета в валюте депозита |
double |
ACCOUNT_CREDIT |
Размер предоставленного кредита в валюте депозита |
double |
ACCOUNT_PROFIT |
Размер текущей прибыли на счете в валюте депозита |
double |
ACCOUNT_EQUITY |
Значение собственных средств на счете в валюте депозита |
double |
ACCOUNT_MARGIN |
Размер зарезервированных залоговых средств на счете в валюте депозита |
double |
ACCOUNT_MARGIN_FREE |
Размер свободных средств на счете в валюте депозита, доступных для открытия позиции |
double |
ACCOUNT_MARGIN_LEVEL |
Уровень залоговых средств на счете в процентах |
double |
ACCOUNT_MARGIN_SO_CALL |
Уровень залоговых средств, при котором требуется пополнение счета (Margin Call). В зависимости от установленного ACCOUNT_MARGIN_SO_MODE выражается в процентах либо в валюте депозита |
double |
ACCOUNT_MARGIN_SO_SO |
Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out). В зависимости от установленного ACCOUNT_MARGIN_SO_MODE выражается в процентах либо в валюте депозита |
double |
ACCOUNT_MARGIN_INITIAL |
Размер средств, зарезервированных на счёте, для обеспечения гарантийной суммы по всем отложенным ордерам |
double |
ACCOUNT_MARGIN_MAINTENANCE |
Размер средств, зарезервированных на счёте, для обеспечения минимальной суммы по всем открытым позициям |
double |
ACCOUNT_ASSETS |
Текущий размер активов на счёте |
double |
ACCOUNT_LIABILITIES |
Текущий размер обязательств на счёте |
double |
ACCOUNT_COMMISSION_BLOCKED |
Текущая сумма заблокированных комиссий по счёту |
double |
Для функции AccountInfoString()
Идентификатор |
Описание |
Тип свойства |
ACCOUNT_NAME |
Имя клиента |
string |
ACCOUNT_SERVER |
Имя торгового сервера |
string |
ACCOUNT_CURRENCY |
Валюта депозита |
string |
ACCOUNT_COMPANY |
Имя компании, обслуживающей счет |
string |
Существует несколько видов счетов, которые могут быть открыты на торговом сервере. Для того чтобы узнать тип счета, на котором работает MQL5-программа, предназначено перечисление ENUM_ACCOUNT_TRADE_MODE.
Идентификатор |
Описание |
ACCOUNT_TRADE_MODE_DEMO |
Демонстрационный торговый счет |
ACCOUNT_TRADE_MODE_CONTEST |
Конкурсный торговый счет |
ACCOUNT_TRADE_MODE_REAL |
Реальный торговый счет |
При нехватке собственных средств для поддержания открытых позиций возникает ситуация принудительного закрытия Stop Out. Минимальный уровень маржи, при котором наступает Stop Out, может задаваться в процентах или в денежном выражении. Узнать какой режим задан для данного счета можно с помощью перечисления ENUM_ACCOUNT_STOPOUT_MODE.
Идентификатор |
Описание |
ACCOUNT_STOPOUT_MODE_PERCENT |
Уровень задается в процентах |
ACCOUNT_STOPOUT_MODE_MONEY |
Уровень задается в деньгах |
Идентификатор |
Описание |
ACCOUNT_MARGIN_MODE_RETAIL_NETTING |
Используется для внебиржевого рынка при учете позиций в режиме «неттинг» (по одному символу может быть только одна позиция). Расчет маржи осуществляется на основе типа инструмента (SYMBOL_TRADE_CALC_MODE). |
ACCOUNT_MARGIN_MODE_EXCHANGE |
Используется для биржевого рынка. Расчет маржи осуществляется на основе дисконтов, указанных в настройках инструментов. Дисконты устанавливаются брокером, однако не могут быть ниже значений, определенных биржей. |
ACCOUNT_MARGIN_MODE_RETAIL_HEDGING |
Используется для внебиржевого рынка при независимом учете позиций («хеджинг», по одному символу может быть несколько позиций). Расчет маржи осуществляется на основе типа инструмента (SYMBOL_TRADE_CALC_MODE) и с учетом размера захеджированной маржи (SYMBOL_MARGIN_HEDGED). |
Пример скрипта, выводящего краткую информацию о счете.
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- имя компании string company=AccountInfoString(ACCOUNT_COMPANY); //--- имя клиента string name=AccountInfoString(ACCOUNT_NAME); //--- номер счета long login=AccountInfoInteger(ACCOUNT_LOGIN); //--- имя сервера string server=AccountInfoString(ACCOUNT_SERVER); //--- валюта счета string currency=AccountInfoString(ACCOUNT_CURRENCY); //--- демо, конкурсный или реальный счет ENUM_ACCOUNT_TRADE_MODE account_type=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE); //--- теперь превратим значение перечисления в понятный вид string trade_mode; switch(account_type) { case ACCOUNT_TRADE_MODE_DEMO: trade_mode="demo"; break; case ACCOUNT_TRADE_MODE_CONTEST: trade_mode="конкурсный"; break; default: trade_mode="реальный"; break; } //--- в процентах или в денежном выражении задается уровень Stop Out ENUM_ACCOUNT_STOPOUT_MODE stop_out_mode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE); //--- получим значения уровней, при которых наступает Margin Call и Stop Out double margin_call=AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL); double stop_out=AccountInfoDouble(ACCOUNT_MARGIN_SO_SO); //--- выведем краткую информацию по счету PrintFormat("Счет клиента '%s' #%d %s открыт в '%s' на сервере '%s'", name,login,trade_mode,company,server); PrintFormat("Валюта счета - %s, уровень MarginCall и StopOut задается в %s", currency,(stop_out_mode==ACCOUNT_STOPOUT_MODE_PERCENT)?"процентах":" в деньгах"); PrintFormat("Уровень MarginCall=%G, уровень StopOut=%G",margin_call,stop_out); }
Статистика тестирования
После окончания тестирования вычисляются статистические показатели результатов торговли по множеству параметров. Значения показателей можно получить с помощью функции TesterStatistics(), указав идентификатор показателя из перечисления ENUM_STATISTICS.
Хотя при вычислении статистики используются показатели двух типов — int и double — функция возвращает все значения в виде double. Все статистические величины, имеющие тип double, по умолчанию выражаются в валюте депозита, если не сказано иное.
Идентификатор |
Описание статистического показателя |
Тип |
STAT_INITIAL_DEPOSIT |
Значение начального депозита |
double |
STAT_WITHDRAWAL |
Количество выведенных со счета средств |
double |
STAT_PROFIT |
Чистая прибыль по окончании тестирования, сумма STAT_GROSS_PROFIT и STAT_GROSS_LOSS (STAT_GROSS_LOSS всегда меньше или равно нулю) |
double |
STAT_GROSS_PROFIT |
Общая прибыль, сумма всех прибыльных (положительных) трейдов. Значение больше или равно нулю |
double |
STAT_GROSS_LOSS |
Общий убыток, сумма всех убыточных (отрицательных) трейдов. Значение меньше или равно нулю |
double |
STAT_MAX_PROFITTRADE |
Максимальная прибыль – наибольшее значение среди всех прибыльных трейдов. Значение больше или равно нулю |
double |
STAT_MAX_LOSSTRADE |
Максимальный убыток – наименьшее значение среди всех убыточных трейдов. Значение меньше или равно нулю |
double |
STAT_CONPROFITMAX |
Максимальная прибыль в последовательности прибыльных трейдов. Значение больше или равно нулю |
double |
STAT_CONPROFITMAX_TRADES |
Количество трейдов, сформировавших STAT_CONPROFITMAX (максимальная прибыль в последовательности прибыльных трейдов) |
int |
STAT_MAX_CONWINS |
Общая прибыль в самой длинной серии прибыльных трейдов |
double |
STAT_MAX_CONPROFIT_TRADES |
Количество трейдов в самой длинной серии прибыльных трейдов STAT_MAX_CONWINS |
int |
STAT_CONLOSSMAX |
Максимальный убыток в последовательности убыточных трейдов. Значение меньше или равно нулю |
double |
STAT_CONLOSSMAX_TRADES |
Количество трейдов, сформировавших STAT_CONLOSSMAX (максимальный убыток в последовательности убыточных трейдов) |
int |
STAT_MAX_CONLOSSES |
Общий убыток в самой длинной серии убыточных трейдов |
double |
STAT_MAX_CONLOSS_TRADES |
Количество трейдов в самой длинной серии убыточных трейдов STAT_MAX_CONLOSSES |
int |
STAT_BALANCEMIN |
Минимальное значение баланса |
double |
STAT_BALANCE_DD |
Максимальная просадка баланса в деньгах. В процессе торговли баланс может испытать множество просадок, берется наибольшее значение. |
double |
STAT_BALANCEDD_PERCENT |
Просадка баланса в процентах, которая была зафиксирована в момент максимальной просадки баланса в деньгах (STAT_BALANCE_DD). |
double |
STAT_BALANCE_DDREL_PERCENT |
Максимальная просадка баланса в процентах. В процессе торговли баланс может испытать множество просадок, для каждой фиксируется относительное значение просадки в процентах. Возвращается наибольшее значение |
double |
STAT_BALANCE_DD_RELATIVE |
Просадка баланса в деньгах, которая была зафиксирована в момент максимальной просадки баланса в процентах (STAT_BALANCE_DDREL_PERCENT). |
double |
STAT_EQUITYMIN |
Минимальное значение собственных средств |
double |
STAT_EQUITY_DD |
Максимальная просадка средств в деньгах. В процессе торговли средства могут испытать множество просадок, берется наибольшее значение. |
double |
STAT_EQUITYDD_PERCENT |
Просадка средств в процентах, которая была зафиксирована в момент максимальной просадки средств в деньгах (STAT_EQUITY_DD). |
double |
STAT_EQUITY_DDREL_PERCENT |
Максимальная просадка средств в процентах. В процессе торговли средства могут испытать множество просадок, для каждой фиксируется относительное значение просадки в процентах. Возвращается наибольшее значение |
double |
STAT_EQUITY_DD_RELATIVE |
Просадка средств в деньгах, которая была зафиксирована в момент максимальной просадки средств в процентах (STAT_EQUITY_DDREL_PERCENT). |
double |
STAT_EXPECTED_PAYOFF |
Математическое ожидание выигрыша |
double |
STAT_PROFIT_FACTOR |
Прибыльность – отношение STAT_GROSS_PROFIT/STAT_GROSS_LOSS. Если STAT_GROSS_LOSS=0, то прибыльность принимает значение DBL_MAX |
double |
STAT_RECOVERY_FACTOR |
Фактор восстановления – отношение STAT_PROFIT/STAT_BALANCE_DD |
double |
STAT_SHARPE_RATIO |
Коэффициент Шарпа |
double |
STAT_MIN_MARGINLEVEL |
Минимальное достигнутое значение уровня маржи |
double |
STAT_CUSTOM_ONTESTER |
Значение рассчитанного пользовательского критерия оптимизации, возвращаемого функцией OnTester() |
double |
STAT_DEALS |
Количество совершенных сделок |
int |
STAT_TRADES |
Количество трейдов |
int |
STAT_PROFIT_TRADES |
Прибыльные трейды |
int |
STAT_LOSS_TRADES |
Убыточные трейды |
int |
STAT_SHORT_TRADES |
Короткие трейды |
int |
STAT_LONG_TRADES |
Длинные трейды |
int |
STAT_PROFIT_SHORTTRADES |
Короткие прибыльные трейды |
int |
STAT_PROFIT_LONGTRADES |
Длинные прибыльные трейды |
int |
STAT_PROFITTRADES_AVGCON |
Средняя длина прибыльной серии трейдов |
int |
STAT_LOSSTRADES_AVGCON |
Средняя длина убыточной серии трейдов |
int |