← Back to Blog
Guides 12 min read

MT5中的ONNX模型:真正的AI交易如何运作

大多数'AI交易机器人'根本不使用AI。ONNX改变了这一切——它让你能在MetaTrader 5中运行真正的神经网络。深度技术解析。

EN ES DE FR PT RU ZH JA AR

TL;DR

  • ONNX是一种开源格式,可以直接在MT5中运行ML模型——无需外部服务器。
  • MetaTrader 5从build 3600+开始原生支持ONNX Runtime。
  • 没有.onnx文件的EA不是真正的机器学习。
  • Karat Killer使用4个ONNX模型进行XAUUSD集成交易。

什么是ONNX?为什么交易者应该关注

ONNX(Open Neural Network Exchange)是机器学习模型的开源格式。你在Python中训练模型,导出为.onnx格式,然后在MetaTrader 5中直接运行——无需外部服务器或API。

MetaTrader 5原生支持ONNX Runtime。模型在终端内以C++速度运行,零外部依赖。ONNX之前,在MT5中运行ML需要硬编码权重、HTTP调用Python服务器或DLL导入——都有严重缺陷。

ONNX项目由Microsoft、Meta、Amazon等支持,是行业标准。

ONNX在MetaTrader 5中的工作原理

MetaQuotes从build 3600+添加了原生支持。流程如下:

  1. 训练:在Python中训练模型,进行特征工程和walk-forward验证
  2. 导出:使用onnxmltools导出为.onnx格式
  3. 嵌入:将.onnx文件作为MQL5 EA的资源
  4. 运行:使用OnnxCreate()OnnxRun()OnnxRelease()

关键函数:OnnxCreate()加载模型,OnnxRun()执行预测,OnnxSetInputShape()配置张量维度。推理速度低于1毫秒

ONNX为何是EA开发的革命性技术

ONNX解决了五个关键问题:

ONNX训练工作流程(分步指南)

步骤1:特征工程——将原始价格数据转换为有意义的特征。80%的工作在这里。

步骤2:训练与验证——Walk-forward验证是标准方法。绝不能对时间序列使用随机分割。详见机器学习EA:炒作vs现实

步骤3:ONNX导出——使用onnxmltools导出,文件大小100KB-5MB。

步骤4:MQL5集成——嵌入.onnx资源,在OnInit()加载,OnTick()预测。

步骤5:策略测试器验证——包括样本外期间的完整回测。

集成模型:为什么一个ONNX不够

在竞争性ML中,单一模型很少获胜。集成方法一致地超越单个模型。

Karat Killer EA使用4个ONNX模型并行运行进行XAUUSD交易。只在集成达成共识时才执行交易。回测结果:10年XAUUSD数据+7,229%。

ONNX与MT5中其他AI方法的比较

方法优点缺点适合
ONNX Runtime原生支持、快速、可回测需要ML专业知识生产级ML EA
外部API完整Python生态延迟、可靠性研究
硬编码权重简单脆弱、有限非常简单的模型
DLL导入完全灵活安全风险、MQL5市场禁止机构系统
仅"AI"标签易于营销不是真正的AI营销(不幸地很常见)

BLODSALGO如何使用ONNX(真实架构)

Karat Killer——4个ONNX模型的XAUUSD集成:

Stability Killer AI——AUDCAD ML:

两个EA都包含.onnx文件作为嵌入资源。更多关于黄金和AI的内容:XAUUSD的AI和机器学习

在自己的EA中开始使用ONNX

前提条件:Python 3.8+、MetaTrader 5 build 3600+、ML基础知识、5+年历史数据。

最小示例:

int handle = OnnxCreate("model.onnx", 0);
OnnxSetInputShape(handle, 0, input_shape);
OnnxRun(handle, 0, features, prediction);
OnnxRelease(handle);

常见错误:特征不匹配、张量形状错误、过拟合、归一化不一致。参考MetaQuotes ONNX文档

ONNX在算法交易中的未来

MT5中的ONNX采用仍处于早期阶段。未来趋势:Transformer模型、强化学习、更大特征集、自动重训练。

理解ONNX是评估EA的实用技能——区分真正的ML产品和营销标签。寻找.onnx文件,询问训练方法论。

FAQ:MetaTrader 5中的ONNX模型

哪个版本的MT5支持ONNX?
从build 3600+开始。
ONNX会减慢EA吗?
影响极小。每次预测不到1毫秒。4模型集成每tick增加2-3ms。
ONNX能在策略测试器中使用吗?
是的——原生支持,这是最大优势之一。
哪些框架可以导出ONNX?
scikit-learn、XGBoost、LightGBM、CatBoost、PyTorch、TensorFlow等。
如何验证EA是否真的使用ONNX?
在MetaEditor中检查Resources标签。没有.onnx文件=没有ML。
ONNX在VPS上能用吗?
可以。在MT5进程内运行,兼容所有系统。

Risk Disclaimer: Trading foreign exchange, gold (XAUUSD), and other financial instruments involves significant risk of loss and is not suitable for all investors. The information in this article is for educational purposes only and does not constitute financial advice. Past performance of any Expert Advisor does not guarantee future results. Always test strategies on a demo account before trading with real capital, and never risk money you cannot afford to lose.