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

 
Dr. Trader:

Очень опасно раздавать классы учителю наугад, типа взять какой-то индикатор для создания классов учителя и потом часть значений ещё и заменить на NA.

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

Я бы рекомендовал для начала взять два простых класса - цвет следующего бара (т.е. buy/sell). Взять хотя бы 10000 обучающих примеров (бар истории), обучить модель, и оценить результат на следующих в истории 10000 барах (которые для модели при обучении были неизвестны). Когда удастся подобрать предикторы при которых точность модели будет сохраняться примерно одинаковой и на старых и на новых данных - можно начать подбирать какой-то индикатор для классов учителя. И окажется что просто взяв первый попавшийся индикатор модель перестанет сохранять точность на новых данных. Почему некоторые индикаторы могут служить для учителя, а некоторые не могут - я не знаю, это какая-то удача и мистика.

Почему наугад? Любой индикатор - тот же зигзаг дает команды buy/sell при смене направления. А все промежуточные отношу к классу NA или "ждать". Т.е. классы buy/sell я не заменяю на NA.

Экспериментирую с этим индикатором https://www.mql5.com/ru/code/903 в режиме TP-SL, которые потом ставлю в торговую часть эксперта. Если кто-то знает другие интересные индткаторы для НС - скиньте ссылочку.

Sampler
Sampler
  • голосов: 39
  • 2012.06.01
  • Serj
  • www.mql5.com
Индикатор (i_Sampler.mq5) рассчитывает идеальные входы, предназначен для обучения нейросети. Индикатор имеет два буфера: буфер 0 (зеленая линия на картинке) аналоговый сигнал, рассчитывается как отношение положительного и отрицательного отклонения цены за bars_future баров вперед, нормализованное в диапазон -1, +1; буфер 1 (двухцветная...
 
elibrarius:

Почему наугад? Любой индикатор - тот же зигзаг дает команды buy/sell при смене направления. А все промежуточные отношу к классу NA или "ждать". Т.е. классы buy/sell я не заменяю на NA.

Экспериментирую с этим индикатором https://www.mql5.com/ru/code/903 в режиме TP-SL, которые потом ставлю в торговую часть эксперта. Если кто-то знает другие интересные индткаторы для НС - скиньте ссылочку.


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

пробовал с ним и без него - с ним хуже :)

 

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

Но НС-регрессия с линейным выходом по прежнему ведет себя устойчиво и на не выровненных данных. Что-то мне она кажется более надежным методом.

 
Никто так и не высказался по поводу:

почему в статьях обучающие примеры для моментов, когда ничего делать не надо не используются? Ведь ничего не делать в правильные моменты тоже важно, обычно эти моменты бывают тогда, когда торговля приведет к убытку.
Не обучившись делать паузы, НС может начать торговать и сливать депозит.

Обновление: кажется понял по статьям... НС надо учить не на моменты изменения знака зигзага, а на его направление. И уже потом торговым модулем отлавливать изменение направления и в эти моменты торговать. Ну это по ЗигЗагу.
А вот индикатор выходов iSampler (выше) все же имеет 3 класса изначально. И третий класс (NA- ждать) просто так не выкинешь, иначе получится то, что я описал, т.е. торговля в моменты когда торговать не стоит.
 
elibrarius:
Никто так и не высказался по поводу:Обновление: кажется понял по статьям... НС надо учить не на моменты изменения знака зигзага, а на его направление. И уже потом торговым модулем отлавливать изменение направления и в эти моменты торговать. Ну это по ЗигЗагу.
А вот индикатор выходов iSampler (выше) все же имеет 3 класса изначально. И третий класс (NA- ждать) просто так не выкинешь, иначе получится то, что я описал, т.е. торговля в моменты когда торговать не стоит.

Это уже называется "чистое творчество", наворотить можно чего угодно, было бы время и желание. Более того, я вообще уверен что какого-то универсального подхода как не было так и не будет, есть основные рекомендации только к самому МО, но не к стратегиям на нем

 
Мой инструмент для классификации.
https://www.mql5.com/ru/blogs/post/712023
Задачи классификации временных рядов с утилитой ML-Assistant
Задачи классификации временных рядов с утилитой ML-Assistant
  • 2017.11.13
  • Aleksey Terentev
  • www.mql5.com
В последнее время машинное обучение (МО) становится все более известным в широких кругах. Конечно не обошло оно стороной и тех, кого интересует заработок спекуляциями на международных рынках различных специализаций. Действительно, эта сфера предоставляет огромное количество данных, которые изучаются уже достаточно давно математиками разного...
 

Спасибо, хороший индикатор, сэкономит мне время.

Вот пример для R, на данных обучается лес, моделька сохраняется в файл, и при предсказании загружается из файла и используется.
r скрипт нужно сохранить в документы, настройки индикатора загрузить из ML-Assistant.set файла. И подправьте там для себя пути к файлам и папкам.

Этот код подходит только чтобы показать как используя ML-Assistant организовать связь с R. Всё остальное просто бессмысленный шаблон, сам процесс обучения модели примитивный и для форекса не подойдёт, нужна ещё кроссвалидация и подбор параметров модели, и индикаторы и таргет тоже надо подбирать.

Файлы:
 

Увидел тему в топе и не удержался от своих 5 копеек. ООС  с 10.27 по сей день, а это как никак 3 недели М15 фунт......

Жаль что на реале картина совсем другая. Вообще я заметил что идти лучше ТС достаточно сложно. Как правило на реали результат чуть хуже чем в тестере.... А бывает что и очень даже хуже.....

 

Немного о подходе к сжатию данных и декорреляции: PCA, SVD, Автоэнкодер

https://habrahabr.ru/post/275273/

http://math-info.hse.ru/f/2015-16/ling-mag-quant/lecture-pca.html

https://habrahabr.ru/post/304214/

В диплернинге используется автоэнкодер, но его можно заменить на PCA, напрмиер, когда вы хотите использовать множество признаков, но заранее не знаете какие из них более информативные. В alglib есть PCA и SVD. Конечно, не факт что методы выберут наиболее информативные, т.к. находят компоненты с наибольшей дисперсией, но по крайней мере с декорреляцией хорошо справляются.
 
Mihail Marchukajtes:

Увидел тему в топе и не удержался от своих 5 копеек. ООС  с 10.27 по сей день, а это как никак 3 недели М15 фунт......

Жаль что на реале картина совсем другая. Вообще я заметил что идти лучше ТС достаточно сложно. Как правило на реали результат чуть хуже чем в тестере.... А бывает что и очень даже хуже.....


Это ниочем, обычная подгонка, 100 раз уже обсуждалось. Делается элементарно и никакой практической пользы на форексе не представляет.