DevGang
Авторизоваться

Как подключиться к MetaTrader 5 с помощью Python

MetaTrader - одна из самых популярных платформ для розничного инвестирования на планете. Многие брокеры используют его, включая IC Markets и Blueberry Markets.

Долгое время программирование в MetaTrader было ограничено торговым языком MetaQuotes — производным от C++. Хотя это было здорово с точки зрения скорости выполнения, это резко повысило барьеры для входа.

MetaTrader 5 (MT5) изменил это. В рамках разработки была представлена торговая библиотека Python на базе Cython, позволяющая повседневным скриптерам получать доступ ко многим внутренним функциям, которые развивались с годами.

Если вы хотите использовать MT5 в своем алгоритмическом торговом боте, вам нужно знать, как успешно подключиться к MT5.

Я предполагаю, что вы уже нашли способ безопасного импорта необходимых вам учетных данных и переменных, включая:

  1. Имя пользователя (username): это будет 8-значное целое число
  2. Пароль (password): случайная буквенно-цифровая строка, обычно длиной 8 символов
  3. Сервер (server): предоставляется вам вашим брокером
  4. Путь (pathway): расположение программы terminal64.exe на вашей конечной точке (по умолчанию хранится в C:\Program Files\<broker name>\terminal64.exe).

Двухэтапный процесс

Успешное подключение к MetaTrader 5 на самом деле состоит из двух шагов:

  • Инициализация MetaTrader 5
  • Вход в MetaTrader 5

Если вы не выполните второй шаг (вход в систему), вы обнаружите, что будут случаи, когда ваш скрипт внезапно не сможет извлечь данные без видимой причины.

Вот полная функция (включая импорт библиотеки MetaTrader5 python.

mt5_interface.py
import MetaTrader5


# Function to start Meta Trader 5 (MT5)
def start_mt5(username, password, server, path):
    # Ensure that all variables are the correct type
    uname = int(username) # Username must be an int
    pword = str(password) # Password must be a string
    trading_server = str(server) # Server must be a string
    filepath = str(path) # Filepath must be a string

    # Attempt to start MT5
    if MetaTrader5.initialize(login=uname, password=pword, server=trading_server, path=filepath):
        # Login to MT5
        if MetaTrader5.login(login=uname, password=pword, server=trading_server):
            return True
        else:
            print("Login Fail")
            quit()
            return PermissionError
    else:
        print("MT5 Initialization Failed")
        quit()
        return ConnectionAbortedError
#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В подарок 100$ на счет при регистрации

Получить