AI Trading Bot Integration with MetaTrader 4/5 MQL API

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Trading Bot Integration with MetaTrader 4/5 MQL API
Medium
~3-5 business days
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

Интеграция AI-трейдинг-бота с MetaTrader 4/5 MQL/API

MetaTrader — доминирующая платформа для Forex и CFD retail трейдинга. Большинство Forex брокеров поддерживают MT4/MT5. Интеграция AI модели с MT реализуется несколькими способами.

Архитектуры интеграции

MQL5/MQL4 Expert Advisor с внешней ML-моделью

MQL5 вызывает DLL/Python/REST API для получения сигналов. EA (Expert Advisor) занимается исполнением, ML — прогнозами.

// MT5 EA connecting to Python ML service
#include <Trade/Trade.mqh>

CTrade trade;
string python_server = "http://localhost:5000";

int OnInit() {
    EventSetTimer(60);  // Проверка сигналов каждую минуту
    return INIT_SUCCEEDED;
}

void OnTimer() {
    // Get signal from Python ML service
    string url = python_server + "/signal?symbol=" + Symbol();
    string result = "";
    int timeout = 5000;

    ResetLastError();
    int res = WebRequest("GET", url, "", timeout, "", result, "");

    if (res == 200) {
        // Parse JSON response
        int signal = ParseSignal(result);
        double confidence = ParseConfidence(result);

        if (signal == 1 && confidence > 0.75) {
            // Buy signal with sufficient confidence
            double sl = ParseStopLoss(result);
            double tp = ParseTakeProfit(result);
            trade.Buy(0.1, Symbol(), 0, sl, tp, "AI Signal");
        } else if (signal == -1 && confidence > 0.75) {
            trade.Sell(0.1, Symbol(), 0, sl, tp, "AI Signal");
        }
    }
}

Python ML Bridge через MT5 Python API

MetaTrader 5 имеет официальный Python пакет:

import MetaTrader5 as mt5
import pandas as pd
from your_ml_model import predict_signal

# Инициализация
mt5.initialize()
mt5.login(account_number, password="your_pass", server="BrokerServer")

# Получение данных
rates = mt5.copy_rates_from_pos("EURUSD", mt5.TIMEFRAME_H1, 0, 1000)
df = pd.DataFrame(rates)
df['time'] = pd.to_datetime(df['time'], unit='s')

# ML предсказание
signal = predict_signal(df)

# Исполнение
if signal == 'buy':
    request = {
        "action": mt5.TRADE_ACTION_DEAL,
        "symbol": "EURUSD",
        "volume": 0.1,
        "type": mt5.ORDER_TYPE_BUY,
        "price": mt5.symbol_info_tick("EURUSD").ask,
        "sl": mt5.symbol_info_tick("EURUSD").ask - 0.0050,
        "tp": mt5.symbol_info_tick("EURUSD").ask + 0.0100,
        "deviation": 20,
        "magic": 234000,
        "comment": "AI_bot",
        "type_time": mt5.ORDER_TIME_GTC,
        "type_filling": mt5.ORDER_FILLING_IOC,
    }
    result = mt5.order_send(request)

MT4 vs MT5 различия

Аспект MT4 MT5
Python API Нет (только через DLL или ZeroMQ) Официальный пакет MetaTrader5
Тайм-фреймы 9 стандартных 21 тайм-фрейм
Хеджирование Нет (netting only) Да
Тестирование По одному символу Multi-currency
Рынки Forex/CFD Forex + stocks + futures

ZeroMQ для MT4

Популярный паттерн для MT4 без Python API: ZeroMQ брокер между MQL4 EA и Python:

  • MQL4 EA → ZeroMQ dealer socket → Python ML process
  • Python ML → ZeroMQ → MQL4 EA

Библиотека: mql4-lib-zeromq на GitHub.

Тестирование в Strategy Tester

MetaTrader Strategy Tester — встроенный backtester. Ограничения для ML:

  • Тестер работает внутри MT — внешние Python вызовы невозможны
  • Решение: предвычислить ML-сигналы → записать в Custom Indicator → EA использует indicator
  • Альтернатива: полный backtest в Python (vectorbt, backtrader) с реплицированными условиями

Срок интеграции: 1–3 недели для MT5 Python API, 3–5 недель для MT4 + ZeroMQ setup.