Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 186
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Потому, что мороженное.
Извиняюсь, но каков вопрос, таков и ответ.
Т.е. юмора не понял, поскольку для принятия решения необходимо значение выхода классификатора с чем-то сравнивать, например, с пороговым значением. А поскольку в Вашей постановке задачи сравнимые величины по какой-то причине является неизвестными, а известны, лишь те, что для классификации нафиг не нужны, то нехило было бы внести уточнения.
Завершил я многодневные расчеты (модели на 6-ти отобранных предикторах (из 114) для форекса).
Вот титульная картинка. Распределение точности регрессии (считаю по L1 норме: сумма абсолютных значений ошибки) на валидации для моделей, которые были отобраны как лучшие (по этой же мере) на тестовых блоках.
В каждом боксе по 99 значений, каждое из которых это метрика 1 - sum(abs(X-Y))/sum(abs(X-mean(X)) на уникальной валид.выборке. Аналог R^2, понятно, да..
Всего получилось 8908 моделей... Для всех исследуемых инструментов и таргетов.
В среднем уменьшение ошибки на 0.2% (всего лишь). Но это значимо... Для каждой модели генерировалась уникальная валидационная выборка.
Все исследования я хочу публиковать. Там дальше идет оценка МО модели и т.д. до логического конца. Если опубликуюсь (не на MQL), дам ссылочку некоторым людям, с которыми здесь общаюсь или в профиле выложу.
И туда же. Гораздо более интересная картинка с практической точки зрения. Связь между мат.ожиданием модели на тестовых блоках (внутри кроссвалидации) и на валидации.
Тут сразу нужно смотреть, значима ли положительная зависимость (так как отрицательная вообще не поддается здравому смыслу) и есть ли на валидации положительные значения МО. Ну, сами можете все видеть.
99 точек - это модели.
Ну вот это хороший наглядный пример почему сливают, 99% наивных трейдеров...
А эта ветка - хороший, наглядный пример того, что машинное обучение в торговле, это только теория...
Завершил я многодневные расчеты.
Слежу за вашими исследованиями, очень познавательно, спасибо что выкладываете. Но мне кажется вы хоть и успешно решаете такие сложные проблемы, но пропускаете при этом подготовительные задачи и это вам портит результат. А именно - игнорируете отбор предикторов.
Вы взяли 114 предикторов, потом как-то отобрали 6, и после обучения моделей можете сделать вывод о том какая цель лучше. Но этот полученный результат - всего лишь локальный максимум. Можно говорить не глобально о том что "eurusd лучше предсказывать на 16 баров вперёд", а всего лишь о том что "набор из 114 предикторов: (пред1, пред2, пред3,..) используя gbm лучше всего предсказывает направление цены через 16 баров".
Если вы возьмёте нейронку вместо gbm то и лучшая цель получится другой. Взяв других 114 предикторов - лучшая цель опять получится другой. Ваших 114 предикторов это настолько важная база, что от неё зависит весь последующий ход эксперимента, а вы просто взяли их с потолка без никакой подготовки.
Где-то полгода назад СанСаныч выкладывал файл с его предикторами. Особенность их в том, что большинство моделей в rattle имеют на них небольшую ошибку, и при этом ошибка на новых данных не растёт. Можно обучить модели на любом отрезке, а на оставшихся данных провести oos тест и увидеть что ничего не ухудшилось. Это предикторы и цель настолько связаны, что модели находят единственно возможную связь между ними на любых барах.
Я пытаюсь такое повторить. Использую более десяти тысяч исходных предикторов (индикаторы с разными параметрами и лагами из mt5), и учусь подбирать их так чтоб они тоже имели такую единственно возможную связь с целевой колонкой. Вам рекомендую тоже заняться таким экспериментом, на мой взгляд умение определять или находить такие взаимосвязанные предикторы и цель - верный пуль к граалю.
MQL5 с недавних пор имеет генератор экспертов, когда выбираешь список нужных индикаторов, и создаётся сразу готовый эксперт с кодом, дальше его довольно просто оптимизировать генетикой. В таком эксперте имеется 20 индикаторов, нету вообще никаких моделей машинного обучения (всё что есть это коэффициенты важности присваиваемые каждому индикатору).
(eurusd h1)
Я добавил только свой кастомный код для фитнесс функции генетики, включив в него некоторые критерии чтоб цель и индикаторы по моему мнению считались тесно связанными. Получилось так:
первые 2/3 - backtest (sample), последняя треть - fronttest (oos). Там после 2/3 времени не слив, а баланс сбрасывается на начальный для oos теста. Имея такой скудный набор возможностей, и просто добавив "сырые и недоделанные критерии зависимости предикторов и цели" - получается хоть и плохенько, но уже не слив. 51% успешных сделок на oos. Разве не замечательно? А ведь можно было бы взять не 20 индикаторов, а 20000, и добавить какую-то модель машинного обучения, и убрать бы лимит в 10000 итераций из mt5 генетики, и получился бы даже профитный советник.
А эта ветка - хороший, наглядный пример того, что машинное обучение в торговле, это только теория...
Да в торговле теории вообще быть не может в принципе, точнее теория есть про то что заработать невозможно, эффективный рынок и тп, всё учтено в цене, биржевом механизме..., тобиш торговать что играть в рулетку, а статистика и машинное обучение ставшая более доступной в последнее время благодаря разным мат-пакетам и библиотекам, дает возможность прям таки по настоящему увидеть ПОЧЕМУ так грустно со стандартным ТА, не ученым а простым трейдерам, недельку повозивщись в R-studio или Matlab.
Если МО в торговле - "только теория", что в общем то отчасти правда, то ТА это даже не теория, а вообще то бред сивой кобылы, вроде астрологии или вуду.
Но многие здесь знают что заработать всё таки можно, эффективный рынок не просто так по воле Божьей, а из-за того что некоторые наловчились лучше доставать и обрабатывать информацию чем большинство. На мой взгляд самым существенным препятствием для трейдера является иллюзия простоты этого вида бизнеса, как будто как чиновнику бабки будут носить за подпись, здесь на этом форуме не однократно звучало что то в стиле "что бы торговать не нужно создавать адронный коллайдер"...
А вот нужно оказывается....
Слежу за вашими исследованиями, очень познавательно, спасибо что выкладываете. Но мне кажется вы хоть и успешно решаете такие сложные проблемы, но пропускаете при этом подготовительные задачи и это вам портит результат. А именно - игнорируете отбор предикторов.
Вы взяли 114 предикторов, потом как-то отобрали 6, и после обучения моделей можете сделать вывод о том какая цель лучше. Но этот полученный результат - всего лишь локальный максимум. Можно говорить не глобально о том что "eurusd лучше предсказывать на 16 баров вперёд", а всего лишь о том что "набор из 114 предикторов: (пред1, пред2, пред3,..) используя gbm лучше всего предсказывает направление цены через 16 баров".
Если вы возьмёте нейронку вместо gbm то и лучшая цель получится другой. Взяв других 114 предикторов - лучшая цель опять получится другой. Ваших 114 предикторов это настолько важная база, что от неё зависит весь последующий ход эксперимента, а вы просто взяли их с потолка без никакой подготовки.
Где-то полгода назад СанСаныч выкладывал файл с его предикторами. Особенность их в том, что большинство моделей в rattle имеют на них небольшую ошибку, и при этом ошибка на новых данных не растёт. Можно обучить модели на любом отрезке, а на оставшихся данных провести oos тест и увидеть что ничего не ухудшилось. Это предикторы и цель настолько связаны, что модели находят единственно возможную связь между ними на любых барах.
Я пытаюсь такое повторить. Использую более десяти тысяч исходных предикторов (индикаторы с разными параметрами и лагами из mt5), и учусь подбирать их так чтоб они тоже имели такую единственно возможную связь с целевой колонкой. Вам рекомендую тоже заняться таким экспериментом, на мой взгляд умение определять или находить такие взаимосвязанные предикторы и цель - верный пуль к граалю.
MQL5 с недавних пор имеет генератор экспертов, когда выбираешь список нужных индикаторов, и создаётся сразу готовый эксперт с кодом, дальше его довольно просто оптимизировать генетикой. В таком эксперте имеется 20 индикаторов, нету вообще никаких моделей машинного обучения (всё что есть это коэффициенты важности присваиваемые каждому индикатору).
Я добавил только свой кастомный код для фитнесс функции генетики, включив в него некоторые критерии чтоб цель и индикаторы по моему мнению считались тесно связанными. Получилось так:
(eurusd h1)
первые 2/3 - backtest (sample), последняя треть - fronttest (oos). Там после 2/3 времени не слив, а баланс сбрасывается на начальный для oos теста. Имея такой скудный набор возможностей, и просто добавив "сырые и недоделанные критерии зависимости предикторов и цели" - получается хоть и плохенько, но уже не слив. 51% успешных сделок на oos. Разве не замечательно? А ведь можно было бы взять не 20 индикаторов, а 20000, и добавить какую-то модель машинного обучения, и убрать бы лимит в 10000 итераций из mt5 генетики, и получился бы даже профитный советник.
Посоветуйте где взять советник (робот) который бы открывал сделку в заданное время и закрывал бы потом эту сделку тоже в заданное время.
К примеру открыл сделку в 12:59, а закрыл бы в 13:59 вне зависимости от результата - прибыль или убыток всё равно.