越来越多的 EA 开发者开始把 Python 训练的机器学习模型直接跑在 MetaTrader 5 里了。不是概念验证,是真上实盘。
我们 FXTool 团队过去一年测试了不少带 ONNX 模型的 EA,说实话,有些结果挺让人意外。这篇文章聊聊 ONNX 到底改变了什么,以及你该不该跟进。
以前想在 EA 里跑 AI,有多麻烦
大多数 EA 的核心逻辑是规则驱动的——均线交叉买入、RSI 超卖开多、布林带突破跟趋势。用了十几年,谈不上过时,但天花板就在那。
想往 EA 里加机器学习?问题马上就来了。
模型训练在 Python 里完成,用 TensorFlow、PyTorch 这些框架。EA 跑在 MQL5 环境里。这两个世界之间没有桥。你要么把 Python 训练好的模型用 MQL5 重写一遍——模型结构、权重参数、预处理逻辑全部手动翻译——要么就别想了。
线性回归勉强能翻。LSTM?CNN?Transformer?别开玩笑了。
我们团队 2024 年试过手动把一个 LSTM 价格预测模型移植到 MQL5。花了三周,最后精度还是对不上。放弃了。
ONNX 是什么(真的只要 30 秒)
ONNX,全称 Open Neural Network Exchange。微软、Meta、亚马逊联合搞的开放标准。
一句话:不管你用 PyTorch、TensorFlow、scikit-learn 还是 XGBoost 训练的模型,都能导出成一个 .onnx 文件,任何支持 ONNX Runtime 的平台直接就能跑。
类比一下——ONNX 之于 AI 模型,就像 PDF 之于文档。Word 写的、Pages 排的、LaTeX 编的,导出成 PDF 谁都能打开。就这么回事。
MT5 现在原生支持 ONNX
关键来了。MetaTrader 5 已经在平台层面内置了 ONNX Runtime。你的 EA 代码可以直接调 OnnxCreate() 加载模型,OnnxRun() 跑推理。不用装插件,不用起外部进程。
MetaQuotes 还在持续投入。2026 年 1 月的 Build 5572 更新带来了几个大改进:
- CUDA GPU 加速 — 显卡支持 CUDA 的话,推理速度大幅提升。跑高频策略的人会明显感受到区别。
- 多 GPU 设备选择 — 多卡系统可以指定模型跑在哪张卡上。
- 模型 Profiling — 可以分析每一层的耗时,找性能瓶颈。
- 资源上限 1GB — 以前大模型塞不进 EA,现在可以。
平台方在认真推这件事,不只是社区在玩。

开发流程:四步走
把 ML 模型跑在 EA 里,完整流程其实没那么复杂:
Python 端训练模型。 拿历史行情数据,比如 120 根 H1 K线的 OHLC,训练一个预测下根 K 线方向的模型。XGBoost、LSTM、CNN 都行。
导出 ONNX。 TensorFlow 用 tf2onnx,PyTorch 用 torch.onnx.export(),scikit-learn 用 skl2onnx。记得固定输入张量的形状。
MQL5 加载模型。 OnnxCreateFromBuffer() 或 OnnxCreate() 加载,OnnxSetInputShape() 设好输入维度。
实时推理。 OnTick() 或 OnBar() 里拿最新行情数据,归一化后喂给 OnnxRun(),拿到预测结果,结合交易逻辑下单。
Python 负责训练,MQL5 负责执行,ONNX 文件是中间的桥。你不需要在 MQL5 里写任何机器学习代码。
如果你对 EA 开发还不太熟,可以先看看我们的 EA 入门指南。
社区里已经有人跑通了
这不是纸上谈兵。MQL5 社区已经有不少成熟案例:
Larry Williams XGBoost ONNX EA — 把经典的 Outside Bar 价格行为策略和 XGBoost 结合。规则先找信号,AI 再过滤噪音,判断这笔交易成功的概率。思路很清晰:规则管方向,AI 管胜率。
CNN-LSTM 混合架构 — MQL5 教程里有完整实现。CNN 提取价格序列的空间特征,LSTM 处理时间依赖,两者合力在 EURUSD H1 上做预测,R² 达到 0.9684。原文注明了"不建议直接实盘",但这个精度确实说明 ONNX 通道没有损失模型能力。
ONNX Strategy 1 — 同时跑 5 个深度学习模型,包含一个专门为黄金训练的。多模型投票,集成学习的思路。
有个开发者写了篇博文,标题很直白:"How I Built a Hybrid, ML-Powered EA for MT5 (And Why a 'Black Box' Isn't Enough)"。核心观点是纯黑箱 ML 不靠谱,必须跟传统技术分析做混合。
我们自己测过几个带 ONNX 的公开 EA,有一个观察跟这位开发者一致:所有能稳定跑的方案都是"AI + 规则"的混合架构。纯 AI 决策的,我们还没见过能扛住实盘三个月以上的。
这其实也很好理解——如果你对过拟合和曲线拟合有了解的话,就知道纯数据驱动的模型在金融市场上有天然的脆弱性。
行业大趋势
不只是 MQL5 社区在动。
NVIDIA 2026 年金融服务 AI 调查显示,几乎所有受访金融机构都计划增加或维持 AI 预算。算法交易目前占美股交易量约 70%。超过 80% 的机构已经在用 AI。
更值得注意的是"瘦身"趋势。行业的兴趣正在从百亿参数的大模型,转向 70 亿参数以下的轻量专用模型。原因很直接:交易场景对延迟敏感,一个精度高但推理慢的模型,实盘可能还不如一个精度稍低但响应快的。
对散户 EA 开发者来说,这是好消息。你不需要 A100 集群,一张消费级显卡甚至纯 CPU,跑一个针对特定品种优化过的小模型就够了。
几个坑,提前说
我们测这些 EA 的时候踩过,所以你不用再踩了:
过拟合。 训练集上完美,实盘一塌糊涂。这不是 ONNX 的问题,是建模的问题。交叉验证、Walk-forward 分析、样本外测试,一个都不能省。我们有篇专门的文章讲回测和实盘的差距,建议看看。
预处理不一致。 训练时 Min-Max 归一化到 [0,1],推理时用了不同的参数范围——模型输出直接就是垃圾。这个坑新手几乎 100% 会踩。
模型会过期。 市场结构在变。半年前训练的模型,今天的预测能力可能已经大打折扣。你需要监控模型表现并定期重新训练。
回测数据泄露。 用未来数据训练模型再回测,成绩当然好看——但实盘没有未来数据给你。训练集和测试集必须严格按时间划分,没有例外。
总结
ONNX 不会把烂策略变成好策略。但它把一件以前只有专业量化团队才能做的事——在交易终端里跑 ML 模型——变成了任何会 Python 的开发者都能做的事。
工具到位了,MT5 原生支持,GPU 加速也有了,社区案例在不断增加。
问题不再是"能不能做",而是"你的模型和策略,值不值得上"。
想了解更多 EA 相关的内容,可以看看我们的外汇入门指南或者如何选择 EA。
关于作者:FXTool 团队每天都在开发和测试 MetaTrader 交易工具。我们在实盘账户上运行每一款上架的 EA,并公开结果。本文来自我们开发 50+ 款 EA、服务数千名交易者的实战经验。