← Все видеоинструкции
MT5 API · 5:03

Работа с MT5 из Python.

Настройка. Подключение. Счёт. Котировки. Отключение.

Скачать пример на Python · ZIP ↓

Пошаговая инструкция

  1. 0:00

    Работа с MT5 из Python.

    В этом уроке вы узнаете, как подключиться к MT5 из Python, прочитать данные демосчёта, получить котировки в реальном времени и правильно завершить подключение.

  2. 0:13

    Начните со скачивания.

    Откройте страницу mrpc.pro/api, войдите в свой аккаунт и выберите Python. Нажмите «Скачать пример». Пример с сайта создаёт новый демосчёт и выполняет полный торговый сценарий. Для него нужен ваш личный ключ API. Скачанный файл может содержать этот ключ, поэтому не передавайте файл другим людям.

  3. 0:39

    Выберите нужный пример.

    В этом уроке мы используем отдельный пример на Python для получения котировок. Он подключается к уже существующему демосчёту и не отправляет торговые запросы. Для такого подключения можно использовать TRIAL, если доступны пробные терминалы. Для создания нового демосчёта нужен личный ключ. Это два разных варианта начала работы.

  4. 1:07

    Подготовьте Python.

    Используйте Python версии три десять или новее. Создайте виртуальное окружение в папке проекта. Установите requests и websocket-client через интерпретатор Python из этого окружения. Requests отправляет REST-запросы, а websocket-client получает поток котировок. Исходный пример с сайта использует стандартную библиотеку; эти два пакета нужны именно для нашего потокового примера.

  5. 1:39

    Укажите данные подключения.

    Задайте четыре переменные окружения, показанные на экране. Замените каждое примерное значение своим. Укажите точное название демосервера брокера и торговый пароль этого счёта. Переменные окружения позволяют не хранить секретные данные в исходном коде. В macOS и Linux используйте export вместо синтаксиса переменных окружения PowerShell.

  6. 2:08

    Подключитесь и сохраните ID.

    Пример вызывает ConnectEx с логином демосчёта, паролем и сервером, а затем сохраняет terminalInstanceGuid в памяти. Последующие REST-запросы передают это значение в заголовке id, а ключ API — в заголовке APIKey. Ключ определяет ваш доступ к MetaRPC, а идентификатор терминала выбирает конкретный подключённый счёт.

  7. 2:35

    Проверяйте каждый ответ.

    Сначала проверьте код состояния HTTP. При коде состояния HTTP двести разберите JSON и проверьте поле error. Если оно не равно null, остановите этот шаг и изучите код и сообщение ошибки, не раскрывая их посторонним. В противном случае прочитайте data. Наш пример выводит краткие сообщения об ошибках без адресов запросов подключения: эти адреса содержат торговый пароль.

  8. 3:07

    Прочитайте данные счёта.

    На экране показан результат настоящего запуска Python. Сводка использует поля accountCurrency, accountBalance и accountEquity из data. Это показатели брокерского счёта, а не баланс сервисных средств MetaRPC. Следующие три строки — реальные сообщения с котировками, полученные нашим примером, а не выдуманные значения.

  9. 3:34

    Подпишитесь на котировки.

    Адрес WebSocket оформляет подписку на EURUSD. Python может передавать APIKey и id в заголовках при установке соединения. В каждом JSON-сообщении сначала проверяйте error, затем читайте data.symbolTick. Bid — котировка для продажи, ask — для покупки. Поле timeUtc содержит время по UTC.

  10. 4:00

    Остановите поток и терминал.

    Полный пример останавливается после трёх сообщений с котировками. При завершении он сначала закрывает WebSocket, затем вызывает Disconnect с тем же идентификатором терминала, даже если поток завершился с ошибкой. Закрытие сокета останавливает подписку; Disconnect освобождает размещённый терминал. Запрошенный срок действия в пять минут — запасная мера, а не замена явному отключению.

  11. 4:33

    Первая локальная интеграция.

    Запустите пример через Python из вашего виртуального окружения. Успешный запуск выводит сводку счёта, три тика, сообщение о закрытии WebSocket и сообщение об отключении терминала. Сохраните проверки ошибок и завершающую очистку при адаптации кода. Теперь можно заменить вывод на экран логикой вашего приложения и перейти на личный ключ API.