- Типы матриц и векторов
- Создание и инициализация матриц и векторов
- Копирование матриц, векторов и массивов
- Копирование таймсерий в матрицу или вектор
- Копирование истории тиков в матрицу или вектор
- Вычисление выражений с матрицами и векторами
- Манипуляции над матрицами и векторами
- Произведения матриц и векторов
- Преобразования (разложение) матриц
- Получение статистики
- Характеристики матриц и векторов
- Решение уравнений
- Методы машинного обучения
Копирование истории тиков в матрицу или вектор
Аналогично барам вы можете копировать в матрицу или вектор и тики: для этих целей предоставлена пара перегрузок методов CopyTicks и CopyTicksRange. Они работают по принципу, схожему с функциями CopyTicks и CopyTicksRange, но получают данные в вызывающий объект. Эти функции будут подробно описаны в 5-ой главе, в разделе о работе с массивами реальных тиков в структурах MqlTick. Здесь мы лишь покажем прототипы и упомянем основные моменты.
bool matrix<T>::CopyTicks(const string symbol, uint flags, ulong from_msc, uint count)
bool vector<T>::CopyTicks(const string symbol, uint flags, ulong from_msc, uint count)
bool matrix<T>::CopyTicksRange(const string symbol, uint flags, ulong from_msc, ulong to_msc)
bool matrix<T>::CopyTicksRange(const string symbol, uint flags, ulong from_msc, ulong to_msc)
Параметр symbol задает название финансового инструмента, тики которого запрашиваются. Диапазон тиков можно указать по-разному:
- в CopyTicks — как количество тиков (параметр count), начиная с некоторого момента (from_msc) в формате времени в миллисекундах;
- в CopyTicksRange — как диапазон двух моментов времени(от from_msc по to_msc).
Состав копируемых данных о каждом тике указывается в параметре flags как битовая маска значений из перечисления ENUM_COPY_TICKS.
Идентификатор |
Значение |
Описание |
---|---|---|
COPY_TICKS_INFO |
1 |
Тики, вызванные изменениями Bid и/или Ask |
COPY_TICKS_TRADE |
2 |
Тики, вызванные изменениями Last и Volume |
COPY_TICKS_ALL |
3 |
Все тики |
COPY_TICKS_TIME_MS |
1 << 8 |
Время в миллисекундах |
COPY_TICKS_BID |
1 << 9 |
Цена Bid |
COPY_TICKS_ASK |
1 << 10 |
Цена Ask |
COPY_TICKS_LAST |
1 << 11 |
Цена Last |
COPY_TICKS_VOLUME |
1 << 12 |
Объем |
COPY_TICKS_FLAGS |
1 << 13 |
Первые три бита (младший байт) обуславливают набор запрашиваемых тиков, а остальные биты (старший байт) — свойства этих тиков.
Комбинировать флаги старшего байта можно только для матриц, поскольку в вектор помещается только один ряд со значениями конкретного поля из всех тиков. Таким образом, для заполнения вектора следует выбрать лишь один бит старшего байта.
При выборе нескольких свойств тиков в процессе заполнения матрицы порядок строк в ней будет соответствовать порядку элементов в перечислении. Например, цена Bid всегда окажется в строке выше (с меньшим индексом), чем строка с ценами Ask.
Пример совместной работы с тиками и векторами будет представлен в разделе о машинном обучении.