ONNX vs Python Socket vs DLL: Tích hợp AI Tốt nhất cho MT5?
Ba con đường để chạy AI bên trong Expert Advisor MT5. Mỗi cách có những đánh đổi thực sự. So sánh này thực tế — không phải ‘cái nào tốt hơn’, mà là ‘dùng cái nào trong tình huống nào’.
Cách mỗi cách tiếp cận hoạt động
1. ONNX native (khuyến nghị 2026)
EA gọi OnnxRun() trực tiếp. Mô hình được nhúng hoặc trong MQL5\Files. Suy luận chạy trong cùng tiến trình MT5 — không mạng, không executable riêng.
2. Python Socket
Bạn mở server Python (Flask, FastAPI, TCP socket) giữ mô hình đã tải. EA gửi features qua socket, server trả về dự đoán. Yêu cầu Python chạy song song.
3. DLL tùy chỉnh
Compile DLL C++ với libtorch, tensorflow-c hoặc onnxruntime. Hoạt động tốt trước 2023, hôm nay overkill trong hầu hết các trường hợp.
So sánh trực tiếp
| Khía cạnh | ONNX | Socket | DLL |
|---|---|---|---|
| Latency suy luận | Tương đương C++ | + overhead mạng | Native C++ |
| Setup ban đầu | Đơn giản (1 file) | Trung bình | Phức tạp (C++) |
| Phụ thuộc | Không | Python + libs | C++ + libs |
| VPS friendly | Có | Cần nhiều resource | Có nhưng khó |
| Phân phối EA | 1 file .ex5 | EA + server | EA + DLL |
| Rủi ro hỏng | Thấp | Cao (mạng) | Cao (ABI) |
| Đường cong học tập | Thấp | Trung bình | Cao (C++) |
Latency — con số quan trọng
Tài liệu chính thức mql5.com nêu MQL5 với ONNX “tương đương ứng dụng C++”. Các con số bên dưới là ước tính bậc độ lớn — đo trên phần cứng của bạn.
| Kịch bản | ONNX | Socket localhost | Socket VPS→cloud | DLL |
|---|---|---|---|---|
| Nhỏ (RF ~1 MB) | < 1 ms | ~5-15 ms | ~30-100 ms | < 1 ms |
| Trung bình (LSTM ~10 MB) | ~2-5 ms | ~10-25 ms | ~50-150 ms | ~2-5 ms |
| Lớn (Transformer ~100 MB) | ~20-80 ms | ~50-200 ms | ~200-500 ms | ~20-80 ms |
Khi nào dùng cái nào
Dùng ONNX nếu:
✓ EA self-contained · ✓ VPS ít resource · ✓ Phân phối cho khách hàng · ✓ Bảo trì tối thiểu · ✓ Đã dùng PyTorch/TF/Sklearn · ✓ Default 2026 hợp lý
Dùng Python Socket nếu:
✓ Libs Python không có export ONNX · ✓ Prototyping nhanh · ✓ Đã có infra Python · ✓ Chia sẻ mô hình giữa nhiều EA · ✓ Pre-processing Python nặng (LLM, NLP)
Dùng DLL tùy chỉnh nếu:
✓ Đã là chuyên gia C++ · ✓ Lib cụ thể không có ONNX support · Nếu không: bỏ qua DLL.
Workflow production khuyến nghị
- Prototype trong Python notebook
- Xuất sang ONNX (skl2onnx / torch.onnx.export)
- Validate với onnxruntime trong Python
- Nhúng dưới dạng #resource trong EA MQL5
- Backtest trong Strategy Tester
- Demo trade 30 ngày
- Live với stake tối thiểu
Kết luận trung thực
🏆 Default 2026: ONNX. Cho 90% các use case AI-in-trading trên MT5, ONNX native là lựa chọn hiển nhiên. Đơn giản, nhanh, mạnh mẽ, được hỗ trợ chính thức. Dành socket cho các trường hợp Python phải tồn tại (LLMs, RL online, prototyping) và DLL hầu như không bao giờ.
🚀 Để kiểm tra EA với ONNX, demo Deriv MT5 miễn phí ($10.000 ảo):
