Criação de modelo

Existem várias maneiras de obter um modelo ONNX pronto para uso. Uma biblioteca reconhecida é a ONNX Model Zoo, que contém vários modelos ONNX pré-treinados para diferentes tipos de tarefas. A vantagem dessa coleção é que o notebook de cada modelo contém referências ao conjunto de dados de treinamento, bem como links para o documento científico original que descreve a arquitetura do modelo.

A maioria das plataformas de aprendizado de máquina usa Python. Para instalar o ambiente de execução do ONNX para Python, use um dos seguintes comandos:

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

Para chamar o ambiente de execução do ONNX em Python, use o seguinte comando

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

Os dados de entrada e saída para usar o modelo devem ser vistos na documentação do modelo correspondente. Ferramentas de visualização como Netron ou WinML Dashboard também podem ser usadas para visualizar o modelo. O ambiente de execução do ONNX também permite consultar os metadados do modelo e seus dados de entrada e saída:.

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

Você pode criar modelos ONNX diretamente no terminal MetaTrader 5 ou no ambiente de desenvolvimento MetaEditor em Python.

Python no MetaTrader 5

A plataforma MetaTrader 5 suporta o trabalho com scripts Python assim que retirados da embalagem. Para isso, os desenvolvedores do terminal disponibilizam o módulo MetaTrader 5 para Python - https://pypi.org/project/MetaTrader5.

O ambiente de desenvolvimento integrado MetaEditor permite não apenas escrever aplicativos em MQL5, mas também executar scripts Python diretamente do editor. Para fazer isso, especifique o caminho para o arquivo executável nas configurações do MetaEditor:.

Definição do caminho para um arquivo executável Python nas configurações do MetaEditor

Se você não tiver o Python em seu computador, clique em "Instalar" para baixar o arquivo de instalação.

Você pode criar um script Python no MetaEdtior ou carregá-lo na pasta de dados do terminal e executá-lo imediatamente pressionando F7 ("Compilar"). Depois disso, o terminal MetaTrader 5 será aberto e o script será rodado no gráfico atual. As mensagens do console Python (stdout, stderr) serão exibidas na seção "Error".

Como trabalhar com modelos no MetaTrader 5

A linguagem MQL5 permite que você execute modelos ONNX diretamente no terminal MetaTrader 5. Isso pode ser feito em três etapas:

  1. Treinar um modelo em uma plataforma de terceiros, por exemplo, em Python.
  2. Conversão do modelo no ONNX
  3. Incorpore o modelo ONNX no EA usando funções ONNX e execute no terminal do MetaTrader 5.

Integração Python da linguagem MQL5 permite executar um script python e salvar o modelo ONNX no MetaEditor ou até mesmo executá-lo em um gráfico no MetaTrader 5. Você pode treinar seu modelo usando um script escrito em Python com a frequência desejada diretamente no terminal. Como a biblioteca contém funções prontas incorporadas para obter dados de preços com os quais você pode alimentar o modelo ONNX:

 

Exemplo de um modelo pronto para uso #

Você pode encontrar esse exemplo de modelo ONNX pronto em projetos públicos. Para fazer isso, primeiro ative o MQL5 Storage no Navegador, especificando seu login MQL5 nas configurações do MetaEditor, diferenciando maiúsculas de minúsculas.

activate_storage

Após a ativação, localize o projeto ONNX.Price.Prediction e acesse-o por meio do comando do menu de contexto.

project_join

 

Em seguida, atualize o projeto a partir do MQL5 Storage.

update_project

Depois disso, o projeto estará disponível, você encontrará nele um modelo ONNX pronto, dois scripts python, um script MQL5 para rodar o projeto e o arquivo de projeto MQL5 (ONNX.Price.Prediction.mqproj).

python_script

 

 

Você mesmo pode criar um modelo ONNX usando o script PricePredictionTraining.py incluído no projeto. Para fazer isso, primeiro instale os módulos necessários a partir da linha de comando em seu computador.

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

Depois de instalar os módulos, abra o script PricePredictionTraining.py no MetaEditor e execute-o pressionando o botão "Compile" ou a tecla F7.

python_script_compile

 

Antes de executar o script python, confira se seu terminal MetaTrader 5 está conectado ao servidor com o símbolo EURUSD. Por exemplo, conecte-se ao servidor MetaQuotes-Demo e verifique a caixa de seleção "Integração com Python" nas configurações do terminal.

terminal_py_integration_check_box

 

Durante o treinamento da rede, o MetaEditor exibirá mensagens do script Python até que o treinamento seja concluído.

onnx_model_ready

 

Quando o resultado for 100%, o modelo ONNX estará pronto e será salvo na pasta do projeto <pasta de dados do terminal>\MQL5\Shared Projects\ONNX.Price.Prediction\Python.

Verifique o modelo resultante executando o segundo script PricePrediction.py clicando em F7.

prediction_result