- Установка Python и пакета MetaTrader5
- Обзор функций пакета MetaTrader5 для Python
- Подключение скрипта Python к терминалу и счету
- Проверка ошибок: last_error
- Получение информации о торговом счете
- Получение информации о терминале
- Получение информации о финансовых инструментах
- Подписка на стакан цен
- Чтение котировок
- Чтение истории тиков
- Вычисление маржинальных требований и оценка прибыли
- Проверка и отправка торгового приказа
- Получение количества и списка действующих ордеров
- Получение количества и списка открытых позиций
- Чтение истории ордеров и сделок
Подключение скрипта Python к терминалу и счету
Функция initialize устанавливает соединение с терминалом MetaTrader 5 и имеет 2 формы: краткую (без параметров) и полную (с несколькими опциональными параметрами, первый из которых — path — позиционный, а все остальные — именованные).
bool initialize()
bool initialize(path, account = <ACCOUNT>, password = <"PASSWORD">,
server = <"SERVER">, timeout = 60000, portable = False)
Параметр path задает путь к файлу терминала (metatrader64.exe) (обратите внимание: это неименованный параметр, в отличие от всех остальных, поэтому, если он указывается, должен идти первым в списке).
Если путь не указан, модуль попытается найти исполняемый файл самостоятельно (точный алгоритм разработчики не раскрывают). Для исключения неоднозначностей используйте вторую форму функции с параметрами.
В параметре account можно указать номер торгового счета. Если он не указан, то будет использован последний торговый счет в выбранном экземпляре терминала.
Пароль к торговому счету задается в параметре password, и тоже может быть опущен: в этом случае автоматически подставляется сохраненный в базе терминала пароль для указанного торгового счета.
По похожему принципу обрабатывается параметр server с именем торгового сервера (в том виде, как оно задано в терминале): если оно не указано, то автоматически подставляется сохраненный в базе терминала сервер для указанного торгового счета.
В параметре timeout указывается таймаут в миллисекундах, который дается на подключение (при превышении возникнет ошибка). По умолчанию используется значение 60000 (60 секунд).
Параметр portable содержит признак запуска терминала в "перемещаемом" режиме (по умолчанию равен False).
Функция возвращает True в случае успешного подключения к терминалу MetaTrader 5, а иначе — False.
Если потребуется, при выполнении вызова initialize может быть запущен терминал MetaTrader 5.
Например, подключение к конкретному торговому счету производится следующим образом.
import MetaTrader5 as mt5
|
Еще одна функция login тоже подключается к торговому счету с указанными параметрами. Но при этом подразумевается, что соединение с терминалом уже установлено, то есть обычно функция используется для изменения счета.
bool login(account, password = <"PASSWORD">, server = <"SERVER">, timeout = 60000)
В параметре account указывается номер торгового счета. Это обязательный неименованный параметр, то есть он должен идти первым в списке.
Параметры password, server и timeout полностью аналогичны одноименным параметрам функции initialize.
Функция возвращает True в случае успешного подключения к торговому счету, а иначе — False.
shutdown()
Функция shutdown закрывает ранее установленное подключение к терминалу MetaTrader 5.
Пример использования вышеописанных функций см. в следующем разделе.
Когда соединение установлено, скрипт может узнать версию терминала.
tuple version()
Функция version возвращает краткую информацию о версии терминала MetaTrader 5 в виде кортежа из трех значений: номера версии, номера и даты сборки.
Тип поля |
Описание |
---|---|
integer |
Версия терминала MetaTrader 5 (текущая, 500) |
integer |
Номер сборки (например, 3456) |
string |
Дата сборки (например, '25 Feb 2022') |
В случае ошибки функция вернет None, а код ошибки можно получить с помощью last_error.
Более полную информацию о терминале позволяет получить функция terminal_info.