- Поддержка ONNX
- Преобразование форматов
- Автоконвертация данных
- Cоздание модели
- Запуск модели
- Проверка в тестере
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- Структуры данных
Cоздание модели
Есть несколько способов получить готовую модель в формате ONNX. Признанной библиотекой является ONNX Model Zoo, которая содержит несколько предварительно обученных моделей ONNX для разных типов задач. Достоинством данной коллекции является то, что в ноутбуке каждой модели содержатся ссылки на набор обучающих данных, а также ссылки на оригинальный научный документ, описывающий архитектуру модели.
Большинство платформ для машиного обучения использует Python, для установки среды выполнения ONNX для Python, используйте одну из следующих команд:
pip install onnxruntime # CPU build
|
Для вызова среды выполнения ONNX в Python используйте следующую команду
import onnxruntime
|
Входные и выходные данные для использования модели нужно смотреть в документации к соответствующей модели. Для просмотра модели можно также использовать такие средства визуализации, как Netron или WinML Dashboard. Среда выполнения ONNX также позволяет запрашивать метаданные модели и ее входные и выходные данные:
results = session.run(["output1", "output2"], {
|
Вы можете создавать ONNX модели прямо в терминале MetaTrader 5 или в среде разработки MetaEditor на Python.
Python в MetaTrader 5
Платформа MetaTrader 5 поддерживает работу со скриптами Python прямо из коробки. Для этого разработчики терминала предоставили и поддерживают модуль MetaTrader5 для Python — https://pypi.org/project/MetaTrader5.
Интегрированная среда разработки MetaEditor позволяет писать не только приложения на MQL5, но и запускать питоновские скрипты прямо из редактора. Для этого необходимо указать путь к исполняемому файлу в настройках MetaEditor:
Если Python отсутствует на вашем компьютере, нажмите "Установить", чтобы загрузить установочный файл.
Вы можете создать в MetaEdtior или загрузить в папку данных терминала скрипт на Python и сразу же запустить его по клавише F7 ("Компилировать"). После этого будет открыт терминал MetaTrader 5 и на текущем графике будет запущен скрипт. Сообщения из консоли Python (stdout, stderr) будут выведены в раздел "Ошибки".
Схема работы с моделями в MetaTrader 5
Язык MQL5 позволяет запускать ONNX модели прямо в терминале MetaTrader 5. Делается это в 3 шага:
- Натренировать модель в сторонней платформе, например, в Python.
- Сконвертировать модель в ONNX
- Включить ONNX модель в советника с помощью ONNX-функций и запустить в терминале MetaTrader 5.
Python интеграция языка MQL5 позволяет запускать питоновский скрипт и сохранять ONNX модель в редакторе MetaEditor или даже запуском на графике в MetaTrader 5. Вы можете тренировать модель с помощью однажды написанного скрипта на Python с нужной вам периодичностью прямо в терминале. Так как библиотека содержит встроенные готовые функции для получения ценовых данных, которые можно подать на вход ONNX модели:
- copy_rates_from - получает бары, начиная с указанной даты;
- copy_rates_from_pos - получает бары, начиная с указанного индекса;
- copy_rates_range - получает бары в указанном диапазоне дат;
- copy_ticks_from - получает тики, начиная с указанной даты;
- copy_ticks_range - получает тики за указанный диапазон дат.
Пример готовой модели #
Пример готовой ONNX модели вы можете найти в публичных проектах. Для этого необходимо предварительно активировать MQL5 Storage в Навигаторе, указав свой MQL5 логин в настройках MetaEditor с учетом регистра.
После активации найдите проект ONNX.Price.Prediction и присоединитесь к нему через команду контекстного меню.
Далее обновите проект из MQL5 Storage.
После этого вам станет доступен проект, в котором вы найдете готовую ONNX модель, два питоновских скрипта, MQL5 скрипт для работы проекта и файл MQL5 проекта (ONNX.Price.Prediction.mqproj).
Можно самостоятельно создать ONNX модель с помощью скрипта PricePredictionTraining.py, включенного в проект. Для этого необходимо предварительно из командной строки установить на компьютер необходимые модули.
python.exe -m pip install --upgrade pip
|
После установки модулей откройте в MetaEditor скрип PricePredictionTraining.py и запустите его на исполнение кнопкой "Компилировать" или клавишей F7.
Перед запуском питоновского скрипта убедитесь, что терминал MetaTrader 5 подключен к серверу, на котором есть символ EURUSD. Например, подключитесь к серверу MetaQuotes-Demo и проверьте в настройках терминала чек-бокс "Интеграция с Python"
В процессе тренировки сети MetaEditor будет выводить сообщения из питоновского скрипта, пока тренировка не завершится.
При достижении результата в 100% ONNX модель готова и сохраняется в папку проекта <каталог данных терминала>\MQL5\Shared Projects\ONNX.Price.Prediction\Python.
Проверить полученную модель можно запуском второго скрипта PricePrediction.py по кнопке F7.