- Получение списков доступных символов и Обзора рынка
- Редактирование списка Обзора рынка
- Проверка символа на существование
- Проверка актуальности данных по символу
- Получение последнего тика по символу
- Расписания торговых и котировочных сессий
- Маржинальные коэффициенты по символу
- Обзор функций получения свойств символа
- Проверка состояния символа
- Тип цены для построения графиков по символу
- Базовая, котировочная и маржинальная валюты инструмента
- Точность представления и шаг изменения цен
- Разрешенные объемы торговых операций
- Разрешения на торговлю
- Торговые условия и режимы исполнения приказов по символу
- Маржинальные требования
- Правила истечения сроков отложенных ордеров
- Спреды и отступы приказов от текущей цены
- Получение величины свопов
- Текущая рыночная информация (тик)
- Описательные свойства символов
- Глубина стакана цен
- Свойства пользовательских символов
- Специфические свойства (биржа, срочный рынок, облигации)
Текущая рыночная информация (тик)
В разделе Получение последнего тика по символу мы уже познакомились с функцией SymbolInfoTick, которая предоставляет полную информацию о последнем тике (событии изменении цены) в виде структуры MqlTick. При необходимости MQL-программа может запросить значения цен и объемов, соответствующих полям этой структуры, по отдельности. Все они обозначаются свойствами разных типов, входящих в состав перечислений ENUM_SYMBOL_INFO_INTEGER и ENUM_SYMBOL_INFO_DOUBLE.
Идентификатор |
Описание |
Тип свойства |
---|---|---|
SYMBOL_TIME |
Время последней котировки |
datetime |
SYMBOL_BID |
Цена Bid — лучшее предложение на продажу |
double |
SYMBOL_ASK |
Цена Ask — лучшее предложение на покупку |
double |
SYMBOL_LAST |
Last — цена совершения последней сделки |
double |
SYMBOL_VOLUME |
Объем в последней сделке |
long |
SYMBOL_TIME_MSC |
Время последней котировки в миллисекундах с 1970.01.01 |
long |
SYMBOL_VOLUME_REAL |
Объем в последней сделке с повышенной точностью |
double |
Следует отметить, что код двух свойств, связанных с объемом — SYMBOL_VOLUME и SYMBOL_VOLUME_REAL — одинаковый в обоих перечислениях. Это единственный случай, когда идентификаторы элементов разных перечислений пересекаются. Дело в том, что они возвращают по сути одно и то же свойство тика, но с разной точностью представления.
В отличие от структуры, среди свойств нет аналога полю uint flags, которое сообщает, какие именно изменения на рынке повлекли генерацию тика. Данное поле имеет смысл только внутри структуры.
Попробуем запросить свойства тика по отдельности и сравнить с результатом вызова SymbolInfoTick. При быстром рынке существует вероятность, что результаты будут отличаться. Новый тик (или даже несколько тиков) может прийти между вызовами функций.
void OnStart()
|
Нетрудно убедиться, что в конкретном случае информация совпала.
TimeToString(SymbolInfoInteger(_Symbol,SYMBOL_TIME),TIME_DATE|TIME_SECONDS)
|