Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2956
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если кто-то решит такую сложную задачу, то вряд ли он будет делиться решением.
Если убрать ключ ONNX_NO_CONVERSION, то можно подавать на вход double вектор. На выходе всё равно должен быть float вектор.
После компиляции модель остается отдельным файлом или зашивается в .ex5 ?
Если не "зашивается", то как её продавать? Предполагаю, что становиться ресурсом, как и другие файлы.
Понятно, что пример использования модели ONNX в MQL5 только иллюстрация этого и ничего больше. Но все же хочу обратить внимания на очень важную ошибку. В машинном обучении первый этап -препроцессинг. Сюда входит много чего начиная с тривиальной нормализации и заканчивая уменьшением размерности и др инженерными трюками. Основное правило любых преобразований предикторов и целевой на этом этапе - все параметры преобразований(как то средняя, медиана, sd, mad и т.д) вычисляются на обучающем (train) наборе. Тестовый набор и новые данные обрабатываются с использованием параметров полученных на train наборе.
Поэтому в примере нужно было вычислить mean/sd на train, передать эти данные в часть где делается предикт, обработать новые данные с этими параметрами. После этого сделать денормализацию и получить реальные значения прогнозной цены. Эта последовательность важна.
Понятно, что никто реальные цены не подает на вход модели, но это уже частности.
Удачи
В нашем примере onnx-модели входные цены нормализуются при помощи mean и std на всей серии. Полученный результат потом разнормализуется по тем же правилам
После компиляции модель остается отдельным файлом или зашивается в .ex5 ?
В моём примере нет, остаётся отдельным файлом. В примере Рената (публичный проект ONNX.Price.Prediction) зашивается в .ex5.
В нашем примере onnx-модели входные цены нормализуются при помощи mean и std на всей серии. Полученный результат потом разнормализуется по тем же правилам
Объясняю на пальцах. В ONNX.Price.Prediction.mq5 Вы получаете 10 OHLC. Затем на этих данных Вы определяете mean и sd, и ними же нормируете эти 10 значений. Это не правильно.
Для этих новых данных нужно использовать mean и sd полученные на обучающемся наборе. Т.е. в предыдущем скрипте. Так понятно?
Объясняю на пальцах. В ONNX.Price.Prediction.mq5 Вы получаете 10 OHLC. Затем на этих данных Вы определяете mean и sd, и ними же нормируете эти 10 значений. Это не правильно.
Для этих новых данных нужно использовать mean и sd полученные на обучающемся наборе. Т.е. в предыдущем скрипте. Так понятно?
Конечно понятно и сделано осознанно.
Пример был сделан ради тестирования загрузки onnx модели, а не для извлечения разумного результата модели.
После компиляции модель остается отдельным файлом или зашивается в .ex5 ?
Используйте *.mqproj проекты вместо одиночных файлов, включайте свои onnx модели и другие файлы в виде ресурсов. Это теперь предпочтительный вариант написания программ.
Тем более, что у него больше настроек и мы только в *.mqproj файлах будем увеличивать конфигурабельность программ. Скоро включим управление AVX/AVX2/AVX512 набора команд при оптимизации кода роботов.
Ресурсы автоматически встраиваются в EX5 файл, сжимаются и шифруются для защиты.
Посмотрите публичный проект ONNX.Price.Prediction для примера.
Конечно понятно и сделано осознанно.
Пример был сделан ради тестирования загрузки onnx модели, а не для извлечения разумного результата модели.
Да конечно я это понял. Но пользующие пример поняли ли?
Наверное придираюсь.