Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2955
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В справке по 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, передать эти данные в часть где делается предикт, обработать новые данные с этими параметрами. После этого сделать денормализацию и получить реальные значения прогнозной цены. Эта последовательность важна.
Понятно, что никто реальные цены не подает на вход модели, но это уже частности.
Удачи
Отрицательное значение размерности означает, что данная размерность не фиксирована и задается через внешний параметр. Поэтому в скрипте явно должна быть задана размерность
Спасибо, стало понятнее.
Как я понял, в машинном обучении есть задачи классификации, например, тренд будет вверх или вниз, или прогнозирования конкретного значения типа цена будет здесь с такой-то погрешностью. Но на финансовых рынках задача несколько по другому стоит - максимизация прибыли при минимизации просадок. А я что-то не видел подобного рода моделей малинного обучения.
Эта задача решается использованием соответствующей функции потерь при обучении моделей МО. Есть две проблемы связанные с этим. Первая, техническая - стандартные функции потерь в пакетах МО связаны с максимизацией прибыли лишь косвенно, что приводит к необходимости создания кастомных. Это довольно трудно сделать - нужно хорошо разбираться в пакетах МО на уровне кода. Если эта проблема решена, то может появиться вторая, математическая, когда кастомная функция потерь плоха для обучения модели.
Если кто-то решит такую сложную задачу, то вряд ли он будет делиться решением.