- CustomSymbolCreate
- CustomSymbolDelete
- CustomSymbolSetInteger
- CustomSymbolSetDouble
- CustomSymbolSetString
- CustomSymbolSetMarginRate
- CustomSymbolSetSessionQuote
- CustomSymbolSetSessionTrade
- CustomRatesDelete
- CustomRatesReplace
- CustomRatesUpdate
- CustomTicksAdd
- CustomTicksDelete
- CustomTicksReplace
- CustomBookAdd
CustomTicksReplace
Полностью заменяет ценовую историю пользовательского инструмента в указанном временном интервале данными из массива типа MqlTick.
int CustomTicksReplace(
|
Параметры
symbol
[in] Имя пользовательского инструмента.
from_msc
[in] Время первого тика в ценовой истории из указанного диапазона, подлежащего удалению. Время в миллисекундах с 01.01.1970.
to_msc
[in] Время последнего тика в ценовой истории из указанного диапазона, подлежащего удалению. Время в миллисекундах с 01.01.1970.
ticks[]
[in] Массив тиковых данных типа MqlTick, упорядоченных по времени в порядке возрастания.
count=WHOLE_ARRAY
[in] Количество элементов из массива ticks[], которые будут использованы для замены в указанном интервале времени. Значение WHOLE_ARRAY означает, что необходимо использовать все элементы массива ticks[].
Возвращаемое значение
Количество обновленных тиков либо -1 в случае ошибки.
Примечание
Так как в потоке котировок нередко несколько тиков могут иметь одно и то же время с точностью до миллисекунды (точное время тика хранится в поле time_msc структры MqlTick), то функция CustomTicksReplace не делает автоматической сортировки элементов массива ticks[] по времени. Поэтому массив тиков должен быть предварительно упорядочен по возрастанию времени.
Замена тиков производится последовательно день за днём до времени указанного в to_msc либо до момента возникновения ошибки. Сначала обрабатывается первый день из указанного диапазона, затем следующий, и так далее. Как только обнаружится несоответствие времени тика порядку возрастания (неубывания), то процесс замены тиков сразу же прекращается на текущем дне. При этом тики за предыдущие дни будут успешно заменены, а текущий день (на момент неправильного тика) и все оставшиеся дни в указанном интервале останутся без изменения.
Если в массиве ticks[] отсутствуют тиковые данные за какой-то день (вообще говоря, интервал любой длительности), то после применения тиковых данных из ticks[] в истории пользовательского инструмента образуется "дыра", соответствующая пропущенным данным. Другим словами, вызов CustomTicksReplace с вырезанными тиками за конкретный интервал будет равносильно удалению части тиковой истории как будто вызывается CustomTicksDelete с интервалом "дыры".
Если в базе тиков в указанном интервале времени данные отсутствуют, то CustomTicksReplace просто добавит в нее тики из массива ticks[].
Функция CustomTicksReplace работает напрямую с базой данных тиков.
Смотри также
CustomRatesDelete, CustomRatesUpdate, CustomTicksDelete, CopyTicks, CopyTicksRange