Работа с MT5 из Python.
Настройка. Подключение. Счёт. Котировки. Отключение.
Скачать пример на Python · ZIP ↓
Пошаговая инструкция
- 0:00
Работа с MT5 из Python.
В этом уроке вы узнаете, как подключиться к MT5 из Python, прочитать данные демосчёта, получить котировки в реальном времени и правильно завершить подключение.
- 0:13
Начните со скачивания.
Откройте страницу mrpc.pro/api, войдите в свой аккаунт и выберите Python. Нажмите «Скачать пример». Пример с сайта создаёт новый демосчёт и выполняет полный торговый сценарий. Для него нужен ваш личный ключ API. Скачанный файл может содержать этот ключ, поэтому не передавайте файл другим людям.
- 0:39
Выберите нужный пример.
В этом уроке мы используем отдельный пример на Python для получения котировок. Он подключается к уже существующему демосчёту и не отправляет торговые запросы. Для такого подключения можно использовать TRIAL, если доступны пробные терминалы. Для создания нового демосчёта нужен личный ключ. Это два разных варианта начала работы.
- 1:07
Подготовьте Python.
Используйте Python версии три десять или новее. Создайте виртуальное окружение в папке проекта. Установите requests и websocket-client через интерпретатор Python из этого окружения. Requests отправляет REST-запросы, а websocket-client получает поток котировок. Исходный пример с сайта использует стандартную библиотеку; эти два пакета нужны именно для нашего потокового примера.
- 1:39
Укажите данные подключения.
Задайте четыре переменные окружения, показанные на экране. Замените каждое примерное значение своим. Укажите точное название демосервера брокера и торговый пароль этого счёта. Переменные окружения позволяют не хранить секретные данные в исходном коде. В macOS и Linux используйте export вместо синтаксиса переменных окружения PowerShell.
- 2:08
Подключитесь и сохраните ID.
Пример вызывает ConnectEx с логином демосчёта, паролем и сервером, а затем сохраняет terminalInstanceGuid в памяти. Последующие REST-запросы передают это значение в заголовке id, а ключ API — в заголовке APIKey. Ключ определяет ваш доступ к MetaRPC, а идентификатор терминала выбирает конкретный подключённый счёт.
- 2:35
Проверяйте каждый ответ.
Сначала проверьте код состояния HTTP. При коде состояния HTTP двести разберите JSON и проверьте поле error. Если оно не равно null, остановите этот шаг и изучите код и сообщение ошибки, не раскрывая их посторонним. В противном случае прочитайте data. Наш пример выводит краткие сообщения об ошибках без адресов запросов подключения: эти адреса содержат торговый пароль.
- 3:07
Прочитайте данные счёта.
На экране показан результат настоящего запуска Python. Сводка использует поля accountCurrency, accountBalance и accountEquity из data. Это показатели брокерского счёта, а не баланс сервисных средств MetaRPC. Следующие три строки — реальные сообщения с котировками, полученные нашим примером, а не выдуманные значения.
- 3:34
Подпишитесь на котировки.
Адрес WebSocket оформляет подписку на EURUSD. Python может передавать APIKey и id в заголовках при установке соединения. В каждом JSON-сообщении сначала проверяйте error, затем читайте data.symbolTick. Bid — котировка для продажи, ask — для покупки. Поле timeUtc содержит время по UTC.
- 4:00
Остановите поток и терминал.
Полный пример останавливается после трёх сообщений с котировками. При завершении он сначала закрывает WebSocket, затем вызывает Disconnect с тем же идентификатором терминала, даже если поток завершился с ошибкой. Закрытие сокета останавливает подписку; Disconnect освобождает размещённый терминал. Запрошенный срок действия в пять минут — запасная мера, а не замена явному отключению.
- 4:33
Первая локальная интеграция.
Запустите пример через Python из вашего виртуального окружения. Успешный запуск выводит сводку счёта, три тика, сообщение о закрытии WebSocket и сообщение об отключении терминала. Сохраните проверки ошибок и завершающую очистку при адаптации кода. Теперь можно заменить вывод на экран логикой вашего приложения и перейти на личный ключ API.