- ONNX支持
- 格式转换
- 自动数据类型转换
- 创建模型
- 运行模型
- 运行策略测试
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- 数据结构
创建模型
有多种方法可以获得ONNX格式的现有模型。受欢迎的ONNX Model Zoo程序库包含针对不同任务类型的几个预训练ONNX模型。这个集合的优势是每个模型的笔记本都包含训练数据集的链接和对描述模型体系结构的原始论文的引用。
大部分机器学习框架使用Python。要对Python安装ONNX runtime,请在以下命令中选择一个:
pip install onnxruntime # CPU build
|
要在Python中调用ONNX runtime,请使用以下命令
import onnxruntime
|
对于模型输入和输出, 请检查相关模型的文档。您还可以使用可视化工具来查看模型,例如Netron或WinML Dashboard。在ONNX runtime中, 您还可以查询模型的元数据及其输入和输出:
results = session.run(["output1", "output2"], {
|
您可以使用Python直接在MetaTrader 5程序端或MetaEditor中创建ONNX模型。
MetaTrader 5中的Python
MetaTrader 5为Python脚本提供了即时可用的支持。若要启用这些操作,程序端开发人员提供了MetaTrader5 Python模块:https://pypi.org/project/MetaTrader5。
在MetaEditor集成开发环境中,除了用MQL5创建应用程序外,还可以直接从编辑器中运行Python脚本。为此,请在MetaEditor设置中指定可执行文件的路径:
如果您的计算机上没有安装Python,请点击“安装”并下载安装文件。
您可以在MetaEdtior中创建Python脚本,或者将其上传到程序端的数据文件夹中,并使用F7 (Compile)键立即运行。这将打开MetaTrader 5程序端,脚本在当前图表上运行。来自Python控制板(stdout, stderr)的消息将显示在错误部分。
MetaTrader 5中的模型操作
MQL5语言允许您直接在MetaTrader 5程序端中运行ONNX模型。分为三个步骤:
- 在第三方平台(例如 Python)中训练模型。
- 将模型转换为ONNX。
- 使用ONNX函数将ONNX模型加入到EA交易中,并在MetaTrader 5程序端中运行。
MQL5中的Python集成允许运行python脚本并在MetaEditor中保存ONNX模型或直接在MetaTrader 5图表上运行。您可以在程序端中根据需要随时使用预先编写的Python脚本来训练模型。该程序库包含用于获取价格数据的现有函数,这些数据可以输入到ONNX模型中:
- copy_rates_from - 获取从指定日期开始的柱形图
- copy_rates_from_pos - 获取从指定索引开始的柱形图
- copy_ticks_range - 获取指定日期范围的柱形图
- copy_ticks_from - 获取从指定日期开始的报价
- copy_ticks_range - 获取指定日期范围的报价
模型示例 #
完整的ONNX模型示例可在公共项目中获得。您应该首先在导航器中通过在MetaEditor设置中指定您的MQL5登录名(区分大小写)激活MQL5存储。
激活后,找到ONNX.Price.Prediction项目并通过快捷菜单命令加入。
接下来,从MQL5存储更新项目。
该项目包含一个ONNX模型、两个python脚本、一个用于项目操作的MQL5脚本和一个MQL5项目文件 (ONNX.Price.Prediction.mqproj)。
您可以使用项目中包含的PricePredictionTraining.py脚本自行创建ONNX模型。为此,您应该首先从命令行安装所需的模块。
python.exe -m pip install --upgrade pip
|
安装模块后,在MetaEditor中打开PricePredictionTraining.py脚本,并使用编译按键或F7键运行它。
在运行Python脚本之前,请确保MetaTrader 5程序端已连接到具有EURUSD交易品种可用的服务器。例如,连接到MetaQuotes-Demo服务器,并在程序端设置中选中“与Python集成”。
在训练网络时,MetaEditor将打印来自Python脚本的消息,直到训练完成。
当结果为100%时,ONNX模型准备就绪,它被保存到位于<terminal data directory>\MQL5\Shared Projects\ONNX.Price.Prediction\Python的项目文件夹中。
您可以通过运行第二个脚本PricePrediction.py,按 F7来检查生成的模型。