Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 819

 
Maxim Dmitrievsky:

1: определитесь с размером выборки, ваша выборка очень маленькая

2. изучите простые модели классификации/регрессии (линейные), скорее всего они вам подойдут, а если ошибка будет большая то можно попробовать перейти на более сложные (нелинейные) Есть в библиотеке alglib в поставке терминала (деревья решений и лес тоже есть)

3. Никогда не слушайте никаких советов, особенно перейти на R :))) пора их вобще выгнать с этого форума 

4. Если задача решаема без машинного обучения, то лучше его не использовать

1. Да это просто пример, выборка большая в реальности, конечно.

2. Спасибо, конечно лучше начинать с простого - думаю это новый этап моего развития  в вопросе дата майнинга.

3. Так хорошо бы узнать про альтернативы на MQL...

4. Пока ищу возможность кластеризации признаков (паттернов) по степени их влияния на торговлю. Ибо боюсь, что стал развивать свою ТС в направлении подгонки, и потом, хочется аккумулировать идеи в виде признаков поведения рынка с целью отброса моих галлюцинаций.

 
Aleksey Vyazmikin:

1. Да это просто пример, выборка большая в реальности, конечно.

2. Спасибо, конечно лучше начинать с простого - думаю это новый этап моего развития  в вопросе дата майнинга.

3. Так хорошо бы узнать про альтернативы на MQL...

4. Пока ищу возможность кластеризации признаков (паттернов) по степени их влияния на торговлю. Ибо боюсь, что стал развивать свою ТС в направлении подгонки, и потом, хочется аккумулировать идеи в виде признаков поведения рынка с целью отброса моих галлюцинаций.

http://alglib.sources.ru/dataanalysis/

все это доступно в mql (либа идет в стандартной поставке терминала)

для кластеризации можно воспользоваться простым k-means

а для вашей таблички можно попробовать логистическую регрессию (на ютубе полно роликов что это такое и как юзать) (множественная логит-регрессия), она как раз является базисом для разделения на классы, как в вашем случае 0 или 1. Далее идет многослойный персептрон, который тоже разделяет на классы, но уже более сложно (нелинейно)

обычное дерево решений вряд-ли подойдет, лучше использовать лес, они состоят из множества таких деревьев, которые разбиваются по разному (например, в кач-ве 1-го разбиения будет использоваться не 1-я переменная а 3-я), затем результаты всех деревьев усредняются и получатся более точная и устойчивая оценка. Но если задача окажется существенно линейной то леса не подойдут, лучше использовать логист. регрессию или персептрон с 1 скрытым слоем. Поэтому и рекомендуется начинать с самых простых линейных моделей, и если результат устраивает то не дергаться дальше.

 
Aleksey Vyazmikin:

если я хочу посмотреть на влияние дней недели, то мне лучше делать разные входные параметры маркирующие день, или достаточно один параметр обозначить от 1 до 5?).

Лес создаёт правило используя операции "больше" или "меньше" для сравнения значений.

В случае значений 1,2,3,4,5 - если например нужно создать правило которое работает только в среду, то на это уйдёт две ветви - "меньше четверга" и "больше вторника".
Если же это разные парамтры с маркировкой, то достаточно одного сравния (маркировка больше ноля).
Чем меньше нужно ветвей на создание правила, тем проще модель, и лучше.

Сделайте в общем и так и так, вместе. Одна колонка со значениями 1,2,3,4,5. И ещё 5 колонок с маркировкой.

 
Aleksey Vyazmikin:

А кто-то вообще делал сравнение разных алгоритмов на предмет эффективности, ну, если ответ известен, как в моем примере, но для более сложных задач?

Предсказание данных вроде ваших называется классификация, это когда нужный ответ может быть всего парой значений, или даже не числами а понятиями ("выйти из сделки", "перевернуться", итд).
С этим хорошо справляются нейронки и бустинг, их можно обучить на таких данных, и дальше использовать их для предсказания на новых данных.


Я так понял ваша цель - вытащить самую ценную информацию из ваших данных, и получить читаемый набор правил. Тогда нейронка не подойдёт, извлечение правил и знаний из нейронки это не так просто. 

Лес даёт много вариантов решения, много деревьев (формул), и итоговый ответ определяет голосованием, где каждая формула даёт свой ответ, и самый популярный будет в итоге выбран. Но такое нагромождение правил слишком сложно интерпретировать, будет множество картинок как я добавил выше, каждая будет давать свой ответ, а результат - то что чаще всего попадало.

Одно дерево же выдаст картинку вроде той что выше, в сложных случаях - с десятками/сотнями ветвей в графе. Но зато всё это можно легко интерпретировать и повторять следя за ветвями на картинке.

Моделей много, выбирайте что вам удобней в конкретной задаче.


Alglib в MQL - это всё тоже умеет. Но он неудобен, вам придётся каждый раз при малейших изменениях компилировать скрипт, запускать, ждать результат.

R или Питон в случае ошибок позволяют просто заново запустить прошлую строчку кода, изменив её. Все объекты созданные во время работы скрипта остаются в памяти, и можно дальше продолжать с ними работать, предсказывать, запуская новые строчки кода. Без необходимости заново запускать весть скрипт после малейшего изменения как в mql.

 
Пока затишье, размещу-ка я здесь некий текст, мож кто-нибудь и заинтересуется.
 
Yuriy Asaulenko:

А и прогнозирование с 70% достоверности на интервале мало что дает. Не оч сложно делается, но толку все равно никакого.

70% достоверности того что 50% accuracy действительно не много что даст, а 70% accuracy - это сказки или ошибка тех кто использует смешанные целевые, при 70% accuracy SharpRatio >30, это фантастика даже для ultra HFT

 
СанСаныч Фоменко:

В сотый раз:

1. Обязателен дэйтаманинг. в обязательном порядке начинать  надо с  отбора только тех предикторов, которые ВЛИЯЮТ на целевую переменную. А далее весь дэйтамайнинг 

2. Моделей две:

3. Обучение моделей по возможности с кросс валидацией

4. Оценка моделей вне файла обучения 

5. Прогон в тестере


И в сотый раз: ВСЕ ЭТАПЫ ОБЯЗАТЕЛЬНЫ!


Выполнив все это можно, можно будет сделать предположение, что депо сольет не сразу! 


Вперед, мужики! Кончайте торчать на форуме и с тихой радостью реализовываем обозначенный план на R.


Троекратное УРА!

Да всё нармуль, я же шутю, я также как и Вы агетирую народ использовать ZZ как гоал, я просто наивен был и сразу не понял Ваших коварных планов :)

 
Алёша:

Да всё нармуль, я же шутю, я также как и Вы агетирую народ использовать ZZ как гоал, я просто наивен был и сразу не понял Ваших коварных планов :)

Вот опять приходится уточнять: я не агитирую за ZZ - просто очень наглядно для трендовых торговых систем.

И целевая и предикторы к целевой - все это чрезвычайно сложно и очень затратно. А модель довольно просто подобрать. Бывает, что одни типы категорически не подходит для целевой и ее предикторов, а другой тип подходит. в общем всегда надо попробовать десяток-другой моделей.

 
Алёша:

70% достоверности того что 50% accuracy действительно не много что даст, а 70% accuracy - это сказки или ошибка тех кто использует смешанные целевые, при 70% accuracy SharpRatio >30, это фантастика даже для ultra HFT

Еще раз, для непонимающих. 70% это реальность. На 70% временного интервала мы вполне можем добиться оправдывающегося прогноза.

Вопрос бесполезности такого прогнозирования в другом. Из этих 70% оправдывающихся прогнозов только где-то четверть и менее реально пригодна для входа в сделку, т.е., всего ~17% от интервала. Однако, учитывая, что априори неизвестно где-прогноз оправдывается, а оставшиеся 30% дают нам значительную часть как неудачных сделок, так и пропусков "правильных" сделок, реализовать 70% достоверного прогноза не представляется возможным.

 
Алёша:

Да всё нармуль, я же шутю, я также как и Вы агетирую народ использовать ZZ как гоал, я просто наивен был и сразу не понял Ваших коварных планов :)

Коварный, вирусный план "ЗЗ-01", был разработан несколько лет назад в одной
из секретных лабораторий. Фа лишь выступил его носителем. Эх, Алеша...

Причина обращения: