ONNX vs Python Socket vs DLL : Meilleure Intégration IA pour MT5 ?
Trois chemins pour exécuter l’IA dans un Expert Advisor MT5. Chacun a des compromis réels. Ce comparatif est pratique — pas ‘lequel est meilleur’, mais ‘lequel utiliser dans quelle situation’.
Comment fonctionne chaque approche
1. ONNX natif (recommandé 2026)
L’EA appelle OnnxRun() directement. Modèle intégré ou dans MQL5\Files. L’inférence tourne dans le même processus MT5 — pas de réseau, pas d’exécutable séparé.
2. Python Socket
Vous ouvrez un serveur Python (Flask, FastAPI, socket TCP simple) tenant le modèle chargé. L’EA envoie les features par socket, le serveur retourne la prédiction. Nécessite Python en parallèle.
3. DLL personnalisée
Compilez une DLL C++ avec libtorch, tensorflow-c ou onnxruntime. Fonctionnait bien pré-2023, aujourd’hui exagéré dans la plupart des cas.
Comparatif tête-à-tête
| Aspect | ONNX | Socket | DLL |
|---|---|---|---|
| Latence inférence | Comparable C++ | + overhead réseau | Natif C++ |
| Setup initial | Simple (1 fichier) | Moyen (serveur) | Complexe (C++) |
| Dépendances | Zéro | Python + libs | C++ + libs |
| VPS friendly | Oui | Plus de ressources | Oui mais pénible |
| Distribuer EA | 1 fichier .ex5 | EA + serveur | EA + DLL |
| Risque casse | Faible | Élevé (réseau) | Élevé (ABI) |
| Courbe apprentissage | Faible | Moyenne | Élevée (C++) |
Latence — le chiffre qui compte
La doc officielle mql5.com indique que MQL5 avec ONNX est « comparable aux applications C++ ». Les chiffres ci-dessous sont des estimations d’ordre de grandeur — mesurez sur votre hardware.
| Scénario | ONNX | Socket localhost | Socket VPS→cloud | DLL |
|---|---|---|---|---|
| Petit (RF ~1 MB) | < 1 ms | ~5-15 ms | ~30-100 ms | < 1 ms |
| Moyen (LSTM ~10 MB) | ~2-5 ms | ~10-25 ms | ~50-150 ms | ~2-5 ms |
| Grand (Transformer ~100 MB) | ~20-80 ms | ~50-200 ms | ~200-500 ms | ~20-80 ms |
Quand utiliser chacun
Utilisez ONNX si :
✓ EA self-contained · ✓ VPS avec peu de ressources · ✓ Distribuer aux clients · ✓ Maintenance minimale · ✓ Vous utilisez déjà PyTorch/TF/Sklearn · ✓ Choix sensible 2026
Utilisez Python Socket si :
✓ Libs Python sans export ONNX · ✓ Prototypage rapide · ✓ Vous avez déjà l’infra Python · ✓ Partager modèle entre EAs · ✓ Pré-traitement Python lourd (LLM, NLP)
Utilisez DLL personnalisée si :
✓ Vous êtes expert C++ · ✓ Lib spécifique sans support ONNX · Sinon : ignorez DLL.
Workflow de production recommandé
- Prototypez dans un notebook Python
- Exportez vers ONNX (skl2onnx / torch.onnx.export)
- Validez avec onnxruntime en Python
- Intégrez comme #resource dans l’EA MQL5
- Backtest dans Strategy Tester
- Démo trading 30 jours
- Live avec mise minimale
Conclusion honnête
🏆 Default 2026 : ONNX. Pour 90% des cas d’usage IA-in-trading sur MT5, ONNX natif est le choix évident. Simple, rapide, robuste, officiellement supporté. Réservez le socket pour les cas où Python doit rester vivant (LLMs, RL en ligne, prototypage) et la DLL presque jamais.
🚀 Pour tester des EA avec ONNX, démo gratuite Deriv MT5 (10 000 $ virtuels) :
