Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2955
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
должен быть float вектор, а не double
Если убрать ключ ONNX_NO_CONVERSION, то можно подавать на вход double вектор. На выходе всё равно должен быть float вектор.
В справке по OnnxTypeInfo не хватает пояснений про поле dimensions[]. Было бы неплохо пояснить смысл этого массива хотя бы на примере проекта ONNX.Price.Prediction, где (версия МТ5 3621) он получается таким:
А вот моя реализация советника на собственной нейронке
Интересно, а что это за библиотека?
В справке по OnnxTypeInfo не хватает пояснений про поле dimensions[]. Было бы неплохо пояснить смысл этого массива хотя бы на примере проекта ONNX.Price.Prediction, где (версия МТ5 3621) он получается таким:
В терминах питона это shape объекта.
В терминах питона это shape объекта.
Тогда смущают отрицательные числа и то что длина массива на единичку больше числа измерений параметров.
К тому же shape для параметров задаётся в скрипте, а не берётся из свойств модели. Это какой-то баг или фича?
Тогда смущают отрицательные числа и то что длина массива на единичку больше числа измерений параметров.
К тому же shape для параметров задаётся в скрипте, а не берётся из свойств модели. Это какой-то баг или фича?
Да, забыл про отрицательные значения. Уточню.
Всем привет!
Удается торговать с некоторыми успехами в режиме ручной торговли, но хотелось бы все же автоматизировать процесс. Размышляя над этим, решил попробовать проконсультироваться по вопросу машинного обучения. Кто какие модели использует и с какими успехами? Сам же вижу проблему так:
Принципиальная идея, что нужно не направление тренда прогнозировать, а именно три точки: покупки, продажи и ожидания. То есть 1 (покупка), -1 (продажа), 0 (держать текущую сделку при ее наличии или ничего не делать при отсутствии сделок). Желательно работать с временными рядами на минутах, с чем пока не разобрался. Важно, чтобы учитывалась временной ряд за некоторое число прошлых баров, чтобы учитывались показатели на истории, иначе будет не ясна их динами. У меня их около 30, наверное, сложно в уме держать, но все же как то получается торговать руками.
Как я понял, в машинном обучении есть задачи классификации, например, тренд будет вверх или вниз, или прогнозирования конкретного значения типа цена будет здесь с такой-то погрешностью. Но на финансовых рынках задача несколько по другому стоит - максимизация прибыли при минимизации просадок. А я что-то не видел подобного рода моделей малинного обучения.
То есть больше прибыль, когда размер ее максимален для каждой возможной сделки и минимальны убытки, высокая точность входа и выхода из сделки:
Прибыль = положительные сделки - убыточные сделки, при учете спреда,
где сумма по положительным сделкам должна стремиться к максимуму, а сумма по убыточным сделка должна стремиться к нулю. Тогда прибыль будет стремиться к максимуму по определению при прочих равных условиях (например, размера лота).
То есть по-моему мнению, должна быть кака-та такая модель, тогда и входы с выходами будут точнее.
Тогда смущают отрицательные числа и то что длина массива на единичку больше числа измерений параметров.
К тому же shape для параметров задаётся в скрипте, а не берётся из свойств модели. Это какой-то баг или фича?
Отрицательное значение размерности означает, что данная размерность не фиксирована и задается через внешний параметр. Поэтому в скрипте явно должна быть задана размерность
Понятно, что пример использования модели ONNX в MQL5 только иллюстрация этого и ничего больше. Но все же хочу обратить внимания на очень важную ошибку. В машинном обучении первый этап -препроцессинг. Сюда входит много чего начиная с тривиальной нормализации и заканчивая уменьшением размерности и др инженерными трюками. Основное правило любых преобразований предикторов и целевой на этом этапе - все параметры преобразований(как то средняя, медиана, sd, mad и т.д) вычисляются на обучающем (train) наборе. Тестовый набор и новые данные обрабатываются с использованием параметров полученных на train наборе.
Поэтому в примере нужно было вычислить mean/sd на train, передать эти данные в часть где делается предикт, обработать новые данные с этими параметрами. После этого сделать денормализацию и получить реальные значения прогнозной цены. Эта последовательность важна.
Понятно, что никто реальные цены не подает на вход модели, но это уже частности.
Удачи