创建模型

有多种方法可以获得ONNX格式的现有模型。受欢迎的ONNX Model Zoo程序库包含针对不同任务类型的几个预训练ONNX模型。这个集合的优势是每个模型的笔记本都包含训练数据集的链接和对描述模型体系结构的原始论文的引用。

大部分机器学习框架使用Python。要对Python安装ONNX runtime,请在以下命令中选择一个:

pip install onnxruntime       # CPU build
pip install onnxruntime-gpu   # GPU build

要在Python中调用ONNX runtime,请使用以下命令

import onnxruntime
session = onnxruntime.InferenceSession("path to model")

对于模型输入输出, 请检查相关模型的文档。您还可以使用可视化工具来查看模型,例如NetronWinML Dashboard。在ONNX runtime中, 您还可以查询模型的元数据及其输入和输出:

results = session.run(["output1""output2"], {
                      "input1"indata1"input2"indata2})
results = session.run([], {"input1"indata1"input2"indata2})

您可以使用Python直接在MetaTrader 5程序端或MetaEditor中创建ONNX模型。

MetaTrader 5中的Python

MetaTrader 5为Python脚本提供了即时可用的支持。若要启用这些操作,程序端开发人员提供了MetaTrader5 Python模块:https://pypi.org/project/MetaTrader5

在MetaEditor集成开发环境中,除了用MQL5创建应用程序外,还可以直接从编辑器中运行Python脚本。为此,请在MetaEditor设置中指定可执行文件的路径:

在MetaEditor设置中设置Python可执行文件的路径

如果您的计算机上没有安装Python,请点击“安装”并下载安装文件。

您可以在MetaEdtior中创建Python脚本,或者将其上传到程序端的数据文件夹中,并使用F7 (Compile)键立即运行。这将打开MetaTrader 5程序端,脚本在当前图表上运行。来自Python控制板(stdout, stderr)的消息将显示在错误部分。

MetaTrader 5中的模型操作

MQL5语言允许您直接在MetaTrader 5程序端中运行ONNX模型。分为三个步骤:

  1. 在第三方平台(例如 Python)中训练模型。
  2. 将模型转换为ONNX。
  3. 使用ONNX函数将ONNX模型加入到EA交易中,并在MetaTrader 5程序端中运行。

MQL5中的Python集成允许运行python脚本并在MetaEditor中保存ONNX模型或直接在MetaTrader 5图表上运行。您可以在程序端中根据需要随时使用预先编写的Python脚本来训练模型。该程序库包含用于获取价格数据的现有函数,这些数据可以输入到ONNX模型中:

 

模型示例 #

完整的ONNX模型示例可在公共项目中获得。您应该首先在导航器中通过在MetaEditor设置中指定您的MQL5登录名(区分大小写)激活MQL5存储

activate_storage

激活后,找到ONNX.Price.Prediction项目并通过快捷菜单命令加入。

project_join

 

接下来,从MQL5存储更新项目。

update_project

该项目包含一个ONNX模型、两个python脚本、一个用于项目操作的MQL5脚本和一个MQL5项目文件 (ONNX.Price.Prediction.mqproj)。

python_script

 

 

您可以使用项目中包含的PricePredictionTraining.py脚本自行创建ONNX模型。为此,您应该首先从命令行安装所需的模块。

python.exe -m pip install --upgrade pip
python -m pip install --upgrade tensorflow
python -m pip install --upgrade pandas
python -m pip install --upgrade scikit-learn
python -m pip install --upgrade matplotlib
python -m pip install --upgrade tqdm
python -m pip install --upgrade metatrader5
python -m pip install --upgrade onnx==1.12
python -m pip install --upgrade tf2onnx
python -m pip install --upgrade numpy
python -m pip install onnxruntime

安装模块后,在MetaEditor中打开PricePredictionTraining.py脚本,并使用编译按键或F7键运行它。

python_script_compile

 

在运行Python脚本之前,请确保MetaTrader 5程序端已连接到具有EURUSD交易品种可用的服务器。例如,连接到MetaQuotes-Demo服务器,并在程序端设置中选中“与Python集成”。

terminal_py_integration_check_box

 

在训练网络时,MetaEditor将打印来自Python脚本的消息,直到训练完成。

onnx_model_ready

 

当结果为100%时,ONNX模型准备就绪,它被保存到位于<terminal data directory>\MQL5\Shared Projects\ONNX.Price.Prediction\Python的项目文件夹中。

您可以通过运行第二个脚本PricePrediction.py,按 F7来检查生成的模型。

prediction_result