- Установка Python и пакета MetaTrader5
- Обзор функций пакета MetaTrader5 для Python
- Подключение скрипта Python к терминалу и счету
- Проверка ошибок: last_error
- Получение информации о торговом счете
- Получение информации о терминале
- Получение информации о финансовых инструментах
- Подписка на стакан цен
- Чтение котировок
- Чтение истории тиков
- Вычисление маржинальных требований и оценка прибыли
- Проверка и отправка торгового приказа
- Получение количества и списка действующих ордеров
- Получение количества и списка открытых позиций
- Чтение истории ордеров и сделок
Чтение истории тиков
Python API включает 2 функции для чтения истории реальных тиков: copy_ticks_from — с указанием количества тиков, начиная с указанной даты, и copy_ticks_range — для всех тиков за указанный период.
Обе функции имеют 4 обязательных неименованных параметра, первый из которых предназначен для указания символа. Второй параметр задает начальное время запрашиваемых тиков. В третьем параметре передается либо требуемое количество тиков (в функции copy_ticks_from), либо конечное время тиков (в функции copy_ticks_range).
Последний параметр определяет, какого рода тики будут возвращены. В нем можно указать один из следующих флагов (COPY_TICKS):
Идентификатор |
Описание |
---|---|
COPY_TICKS_ALL |
Все тики |
COPY_TICKS_INFO |
Тики, содержащие изменения цен Bid и/или Ask |
COPY_TICKS_TRADE |
Тики, содержащие изменения цены Last и/или объема (Volume) |
Обе функции возвращают тики в виде массива numpy.ndarray (из пакета numpy) с именованными столбцами time, bid, ask, last и flags. Значение поля flags является комбинацией битовых флагов из перечисления TICK_FLAG: каждый бит означает изменение соответствующего поля со свойством тика.
Идентификатор |
Измененное свойство тика |
---|---|
TICK_FLAG_BID |
Цена Bid |
TICK_FLAG_ASK |
Цена Ask |
TICK_FLAG_LAST |
Цена Last |
TICK_FLAG_VOLUME |
Объем (Volume) |
TICK_FLAG_BUY |
Цена последней покупки (Buy) |
TICK_FLAG_SELL |
Цена последней продажи (Sell) |
numpy.ndarray copy_ticks_from(symbol, date_from, count, flags)
Функция copy_ticks_from запрашивает тики, начиная с указанного времени (date_from) в заданном количестве (count).
Функция является аналогом CopyTicks.
numpy.array copy_ticks_range(symbol, date_from, date_to, flags)
Функция copy_ticks_range позволяет получить тики за указанный диапазон времени.
Функция является аналогом CopyTicksRange.
В следующем примере (MQL5/Scripts/MQL5Book/Python/copyticks.py) сгенерируем интерактивную веб-страницу с графиком тиков (внимание: используется пакет plotly — напомним, что для его установки в Python нужно предварительно выполнить команду pip install plotly).
import MetaTrader5 as mt5
|
Вот как может выглядеть результат.
График тиков, полученных в скрипте Python
Веб-страница copyticks.html сгенерируется в подкаталоге MQL5/Files/MQL5Book.