- CustomSymbolCreate
- CustomSymbolDelete
- CustomSymbolSetInteger
- CustomSymbolSetDouble
- CustomSymbolSetString
- CustomSymbolSetMarginRate
- CustomSymbolSetSessionQuote
- CustomSymbolSetSessionTrade
- CustomRatesDelete
- CustomRatesReplace
- CustomRatesUpdate
- CustomTicksAdd
- CustomTicksDelete
- CustomTicksReplace
- CustomBookAdd
CustomBookAdd
Передает состояние стакана цен по пользовательскому инструменту. Функция позволяет транслировать стакан цен так, как если бы он приходил от сервера брокера.
bool CustomBookAdd(
|
Параметры
symbol
[in] Имя пользовательского инструмента.
books[]
[in] Массив данных типа MqlBookInfo, полностью описывающих состояние стакана цен — все заявки на покупку и продажу. Переданное состояние стакана цен полностью заменяет предыдущее.
count=WHOLE_ARRAY
[in] Количество элементов массива books[], которое должно быть передано в функцию. По умолчанию используется весь массив.
Возвращаемое значение
true – в случае успеха, иначе false. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Примечание
Функция CustomBookAdd работает только для пользовательских символов, по которым открыт стакан цен — через интерфейс платформы или функцию MarketBookAdd.
При вбросе стакана цен Bid и Ask инструмента не обновляются. Вы должны самостоятельно контролировать изменение лучших цен и вбрасывать тики при помощи CustomTicksAdd.
Передаваемые данные проверяются на корректность: для каждого элемента должны быть указаны тип, цена и объем. При этом MqlBookInfo.volume и MqlBookInfo.volume_real не должны быть нулевыми или отрицательными, если оба объема отрицательны, то это будет считаться ошибкой. Указывать можно любой из объемов или оба — берется тот, который указан или является положительным:
volume=-1 && volume_real=2 — будет использован volume_real=2,
|
Объем с повышенной точностью MqlBookInfo.volume_real имеет больший приоритет по сравнению с обычным MqlBookInfo.volume. Если для элемента стакана указаны оба значения, будет использовано volume_real.
Если хотя бы один элемент стакана описан неверно, система отбросит переданное состояние полностью.
Порядок следования элементов MqlBookInfo в массиве books не имеет значения. При сохранении данных терминал сортирует их по цене самостоятельно.
При сохранении данных проверяется параметр "Глубина стакана" (SYMBOL_TICKS_BOOKDEPTH) принимающего пользовательского инструмента. Если количество заявок на продажу в передаваемом стакане цен превышает это значение, лишние уровни отбрасываются. Аналогично для заявок на покупку.
Пример заполнения массива books:
Состояние стакана цен |
Заполнение books[] |
---|---|
books[0].type=BOOK_TYPE_SELL; |
Пример:
//+------------------------------------------------------------------+ |
Смотри также