Состояние окружения

Константы, описывающие текущую среду выполнения mql5-программы делятся на группы:

  • Состояние клиентского терминала – информация о клиентском терминале;
  • Информация о запущенной MQL5-программе – свойства mql5-программы, которые помогают дополнительно управлять ее поведением;
  • Информация об инструменте – получение торговой информации об инструменте;
  • Информация о счете – информация о текущем торговом счете;
  • Статистика тестирования – результаты тестирования эксперта.

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

Идентификаторы для получения информации о клиентском терминале функциями 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_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;

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

 

ENUM_TERMINAL_INFO_DOUBLE

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

Описание

Тип свойства

TERMINAL_COMMUNITY_BALANCE

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

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_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()

ENUM_MQL_INFO_STRING

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

Описание

Тип свойства

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()

ENUM_SYMBOL_INFO_INTEGER

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

Описание

Тип свойства

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

SYMBOL_TIME

Время последней котировки

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()

ENUM_SYMBOL_INFO_DOUBLE

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

Описание

Тип свойства

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

Размер контракта или маржи для одного лота перекрытых позиций (разнонаправленные позиции по одному символу). Существует два способа расчета маржи для перекрытых позиций. Способ расчета определяется брокером.

Базовый расчет:

  • Если для инструмента задана первоначальная маржа (SYMBOL_MARGIN_INITIAL), то хеджированная маржа указывается как абсолютное значение (в деньгах).
  • Если первоначальная маржа не задана (равна 0), то в SYMBOL_MARGIN_HEDGED указывается размер контракта, который будет использован при расчете маржи по формуле, соответствующей типу торгового инструмента (SYMBOL_TRADE_CALC_MODE).

 Расчет по наибольшей позиции:

  • Значение SYMBOL_MARGIN_HEDGED не учитывается.
  • Вычисляется объем всех коротких и всех длинных позиций по инструменту.
  • Для каждой стороны рассчитывается средневзвешенная цена открытия, а также средневзвешенная цена конвертации в валюту депозита.
  • Далее по формулам, соответствующим типу инструмента (SYMBOL_TRADE_CALC_MODE), рассчитывается маржа для короткой и для длинной стороны.
  • В качестве итогового значения используется наибольшее.

double

 

Для функции SymbolInfoString()

ENUM_SYMBOL_INFO_STRING

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

Описание

Тип свойства

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

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.

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.

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)

где:

    • PriceSettle – расчетная (клиринговая) цена предыдущей сессии;
    • PriceOrder – средневзвешенная цена позиции или цена открытия, указанная в ордере (заявке);
    • 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.

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.

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. Например, если свопы начисляются в валюте депозита клиента, в параметрах объем начисляемых свопов указывается именно в валюте депозита клиента.

ENUM_SYMBOL_SWAP_MODE

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

Описание

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.

ENUM_DAY_OF_WEEK

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

Описание

SUNDAY

Воскресенье

MONDAY

Понедельник

TUESDAY

Вторник

WEDNESDAY

Среда

THURSDAY

Четверг

FRIDAY

Пятница

SATURDAY

Суббота

 

Опцион – это контракт, который дает право, но не обязанность купить или продать базовый актив (товар, акцию, фьючерс и т.д.) по фиксированной цене в течении жизни опциона или в определенный момент времени. Для описания свойств опционов предназначены перечисления, которые описывают тип опциона и право, который он представляет.  

ENUM_SYMBOL_OPTION_RIGHT

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

Описание

SYMBOL_OPTION_RIGHT_CALL

Опцион, дающий право купить актив по фиксированной цене

SYMBOL_OPTION_RIGHT_PUT

Опцион, дающий право продать актив по фиксированной цене

 

ENUM_SYMBOL_OPTION_MODE

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

Описание

SYMBOL_OPTION_MODE_EUROPEAN

Европейский тип опциона – может быть погашен только в указанную дату (дата истечения срока, дата исполнения, дата погашения)

SYMBOL_OPTION_MODE_AMERICAN

Американский тип опциона – может быть погашен в любой день до истечения срока опциона. Для такого типа задаётся период, в течение которого покупатель может исполнить данный опцион

 

Информация о счете

Для получения информации о текущем счете предназначены функции AccountInfoInteger(), AccountInfoDouble() и AccountInfoString(). В качестве параметра эти функции принимают значения из соответствующих перечислений ENUM_ACCOUNT_INFO.

Для функции AccountInfoInteger()

ENUM_ACCOUNT_INFO_INTEGER

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

Описание

Тип свойства

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()

ENUM_ACCOUNT_INFO_DOUBLE

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

Описание

Тип свойства

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()

ENUM_ACCOUNT_INFO_STRING

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

Описание

Тип свойства

ACCOUNT_NAME

Имя клиента

string

ACCOUNT_SERVER

Имя торгового сервера

string

ACCOUNT_CURRENCY

Валюта депозита

string

ACCOUNT_COMPANY

Имя компании, обслуживающей счет

string

Существует несколько видов счетов, которые могут быть открыты на торговом сервере. Для того чтобы узнать тип счета, на котором работает MQL5-программа, предназначено перечисление ENUM_ACCOUNT_TRADE_MODE.

ENUM_ACCOUNT_TRADE_MODE

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

Описание

ACCOUNT_TRADE_MODE_DEMO

Демонстрационный торговый счет

ACCOUNT_TRADE_MODE_CONTEST

Конкурсный торговый счет

ACCOUNT_TRADE_MODE_REAL

Реальный торговый счет

При нехватке собственных средств для поддержания открытых позиций возникает ситуация принудительного закрытия Stop Out. Минимальный уровень маржи, при котором наступает Stop Out, может задаваться в процентах или в денежном выражении. Узнать какой режим задан для данного счета можно с помощью перечисления ENUM_ACCOUNT_STOPOUT_MODE.

ENUM_ACCOUNT_STOPOUT_MODE

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

Описание

ACCOUNT_STOPOUT_MODE_PERCENT

Уровень задается в процентах

ACCOUNT_STOPOUT_MODE_MONEY

Уровень задается в деньгах

ENUM_ACCOUNT_MARGIN_MODE

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

Описание

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, по умолчанию выражаются в валюте депозита, если не сказано иное.

ENUM_STATISTICS

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

Описание статистического показателя

Тип

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