Подключение скрипта 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 
if not mt5.initialize(login = 562175752, server = "MetaQuotes-Demo", password = "abc"):
   print("initialize() failed, error code =", mt5.last_error()) 
   quit()
...

Еще одна функция 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.