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

 
fxsaber:

Вопрос 02.

Пусть на каком-то интервале ТС с четырьмя входными параметрами совершает тысячи сделок. Добавляем в качестве фильтра два входных параметра с низким числом возможных вариантов. На выходе имеем график в виде прямой вверх, где сделок осталось около тысячи. И все они более-менее равномерно распределены на всем участке тестирования.


По какой причине на OOS 5% от исходного интервала с высокой вероятностью будет слив? Огромный интервал и всего шесть входных давали прямую вверх на реально большом количестве сделок. А вышла голимая подгонка.

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

А почему не должен быть слив? В чем схожесть исторических данных - это отдельный вопрос для оценки корректности работы модели.

И потом, что давали на вход, как размечали историю для обучения, чему учили - тут очень много нюансов.

 
fxsaber:

Вопрос 03.

Несколько раз сталкивался на практике с такими ситуациями. ТС показывает профит на интервале тестирования. Запускаешь OOS в разы больше - тот же характер профита. Ставишь на реал и несколько месяцев тот же характер профита.


И в определенный момент планомерный слив. Никакая переоптимизация той же ТС не дает положительных результатов. В лучшем случае - слив замедляет.

Через какое-то время понимаешь, что все хреново и снимаешь с реала. Смотришь несколько месяцев, как сливает ТС в тестере.


И вдруг, две недели профита, месяц профита, OOS-месяц - профит. Это все та же ТС. Ставишь ее на реал и получаешь все так же, как описано с первого абзаца.

Это не гипотетическая ситуация, а случай из практики. При этом ТС свою граальность демонстрировала только на малом количестве символов. На других - круглогодичный слив.


И, конечно, ТС вовсе на обязана была торговать круглосуточно. Мог быть внутрисуточный интервал торговли.


С точки зрения распространенных практик применения МО возможно ли было получить ТС с подобными характеристиками?

Так это вопрос опять же связанный с фазами рынка и тому, чему научилась ТС/модель МО. К примеру я обучал модель на CatBoost - всё хорошо на истории вне обучения, поставил на реал и тишина целых 3 месяца модель молчала - снял, и вот за последний месяц через тесты вижу, что пропустил кучу прибыльных сделок (в последний месяц), но тут видимо сама модель что-то учла и не торговала, так как на рынке действительно были очень флетовый период, а модель заточена под тренд (на минутках).

 
Aleksey Vyazmikin:

А почему не должен быть слив? В чем схожесть исторических данных - это отдельный вопрос для оценки корректности работы модели.

И потом, что давали на вход, как размечали историю для обучения, чему учили - тут очень много нюансов.

Какое обучение?! Обычный классический советник с шестью оптимизируемыми параметрами. Штатный ГА выдает отличный результат на интервале.

Меня не интересует ответ "а чего вы ждали, конечно слив на OOS". А по какой причине слив на OOS обоснован даже при тысяче сделок?


Мои дилетантские рассуждения такие.

Степеней свободы у ТС очень мало. Значит вероятность подгонки падает.

Тысячи сделок, распределенные равномерно на интервале - значит долгоиграющая "закономерность" на этом интервале выявлена. Тем более, что график баланса - почти прямая.


Что на самом деле ошибочно в этих рассуждениях? Предполагаю, что на самом деле входных параметров не шесть, а условно миллион. Это то количество входных параметров универсальной машины, которые воспроизводят алгоритм ТС. Т.е. сам алгоритм - это некий набор входных параметров.

 
fxsaber:

Какое обучение?! Обычный классический советник с шестью оптимизируемыми параметрами. Штатный ГА выдает отличный результат на интервале.

Меня не интересует ответ "а чего вы ждали, конечно слив на OOS". А по какой причине слив на OOS обоснован даже при тысяче сделок?

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

К примеру фьючерс Si я обучая на истории за 5 лет, что б больше было разных ситуаций. Советники для форекса я оптимизировал с 2008 по 2016 на 15 минутках - достаточно живучи для усреднителей.

Ну и по сути оптимизация это тот же метод МО, поэтому всё ранее сказанное справедливо.

fxsaber:

Мои дилетантские рассуждения такие.

Степеней свободы у ТС очень мало. Значит вероятность подгонки падает.

Тысячи сделок, распределенные равномерно на интервале - значит долгоиграющая "закономерность" на этом интервале выявлена. Тем более, что график баланса - почти прямая.

Почему Вы не хотите подумать над оценкой схожести рынков - я к примеру вижу, что на Форекс заметно упала волотильность за последние года, даже в этом году - раньше я зарабатывал в 3-4 раза больше в месяц, а сейчас просто нет движений и нет сделок по моим ТС на форексе.

И потом, всё надо смотреть предметно, попробовать понять, что делает ТС, если она действительно простая и подумать, разумны ли её действия или это дело случая.


fxsaber:

Что на самом деле ошибочно в этих рассуждениях?

Ошибочны рассуждения, ибо они предполагают стационарность рынка, а это не так же...

fxsaber:

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

Если речь идет об индикаторах, то действительно, параметров по сути значительно больше, так как нужно учитывать логику самого индикатора, почти каждый if в коде индикатора как отдельное условие, что конечно породит бесчисленное число комбинаций. Однако, лично я считаю, что напротив, применение индикаторов это здравый подход, ибо исхожу из того, что многие участники рынка их применяют, а значит есть вероятность поймать кусочек логики ТС участника с деньгами.

 
fxsaber:

Вопрос 01.

Следующие индикаторы имеют всего один внешний входной параметр

  • Экпоненциальное сглаженное - период/коэффициент.
  • PriceChannel (наибольшая и наименьшая цены на интервале) - размер интервала.
  • ЗигЗаг - размер минимального колена.

Выбрал эти индикаторы именно из-за наличия минимума внешних входных параметров.

Возможно ли методами МО воспроизвести их алгоритмы. Т.е. берите любую историю, запускайте индикаторы с любыми параметрами и скармливайте МО. Возможно ли по итогу на выходе получить алгоритм соответствующего индикатора?

EMA-подобное сглаживание получить можно точно, я надеюсь Вы имели в виду результат а не "алгоритм" в виде кода:)

На счет PriceChannel  и ZZ не уверен, уж точно будут бросаться в глаза изъяны. Вообще задача интересная, спасибо:)

fxsaber:

Вопрос 02.

Пусть на каком-то интервале ТС с четырьмя входными параметрами совершает тысячи сделок. Добавляем в качестве фильтра два входных параметра с низким числом возможных вариантов. На выходе имеем график в виде прямой вверх, где сделок осталось около тысячи. И все они более-менее равномерно распределены на всем участке тестирования.


По какой причине на OOS 5% от исходного интервала с высокой вероятностью будет слив? Огромный интервал и всего шесть входных давали прямую вверх на реально большом количестве сделок. А вышла голимая подгонка.

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

Тут скорее вопрос к типу алгоритма стратегии и ММ чем к прогнозированию. Большинство тестерных граалей по типу реверсные с усреднением и порой пересиживанием, на таких сетапах очень легко получить "грааль" и с одним параметром, для того чтобы иметь более объективную картину, как минимум нужно убрать усреднение, хотя этого не достаточно, ИМХО по правильному нужно измерять матожидание прогнозов(трендов\разворотов), так как через тестер можно здорово обмануть не только других но и себя любимого.

fxsaber:

Вопрос 03.

Несколько раз сталкивался на практике с такими ситуациями. ТС показывает профит на интервале тестирования. Запускаешь OOS в разы больше - тот же характер профита. Ставишь на реал и несколько месяцев тот же характер профита.


И в определенный момент планомерный слив. Никакая переоптимизация той же ТС не дает положительных результатов. В лучшем случае - слив замедляет.

Через какое-то время понимаешь, что все хреново и снимаешь с реала. Смотришь несколько месяцев, как сливает ТС в тестере.


И вдруг, две недели профита, месяц профита, OOS-месяц - профит. Это все та же ТС. Ставишь ее на реал и получаешь все так же, как описано с первого абзаца.

Это не гипотетическая ситуация, а случай из практики. При этом ТС свою граальность демонстрировала только на малом количестве символов. На других - круглогодичный слив.


И, конечно, ТС вовсе на обязана была торговать круглосуточно. Мог быть внутрисуточный интервал торговли.


С точки зрения распространенных практик применения МО возможно ли было получить ТС с подобными характеристиками?

Такие частности вряд ли кто то сможет прокомментировать "положа руку на сердце". Вы вообще зря выделяете МО как что то обособленное, МО это просто расширение статистики, геналгоритм - МО, та даже сеточная оптимизация - МО, так что МО было всегда в алготрейдинге:)

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

 
fxsaber:

Мои дилетантские рассуждения такие.

Степеней свободы у ТС очень мало. Значит вероятность подгонки падает.

Тысячи сделок, распределенные равномерно на интервале - значит долгоиграющая "закономерность" на этом интервале выявлена. Тем более, что график баланса - почти прямая.

Что на самом деле ошибочно в этих рассуждениях? Предполагаю, что на самом деле входных параметров не шесть, а условно миллион. Это то количество входных параметров универсальной машины, которые воспроизводят алгоритм ТС. Т.е. сам алгоритм - это некий набор входных параметров.

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

Вы (да и мы все участники этого форума) предполагаем считаем, что временной ряд обязан себя вести в дальнейшем именно так - мы же старались! К сожалению подгонка всегда присутствует, и чем больше мы используем входных данных тем больше подгонка и наша уверенность

прочитайте первую часть статьи на хабре https://habr.com/ru/company/ods/blog/322716/

до графика 

очень понравилось изложение материала


ну и про Ваш вопрос с МО, мое дилетаское рассуждение:

проблема подготовить входные данные для обучения, с ЗигЗагом вообще беда - самое простое подаем цены изломов ЗЗ - обучили, тестируем - не работает, почему? - потому что жесткая привязка к конкретным данным, в будущем нет таких цен, НС это обычный полином y = ax+bx+cx+dx+ex..... количество многочленов это количество нейронов, чем больше нейронов, тем лучше качество (ошибка НС), но быстрее происходит переобучение.... с переобучением борятся путем изобретения новых типов НС, но там тоже где лучше где хуже....

зато с периодическими функциями НС будет работать, по сути, идеально - график синуса/косинуса в любом масштабе и с минимальным данных для обучения - потому что такие функции можно записать с помощью разложения в ряд Тейлора? (не помню уже) - а это будет пять полином y = ax+bx+cx+dx+ex

ЗЫ: с ценовыми рядами ни у кого не получилось изобрести формулу полинома - вот и не работает НС идеально... возможно просто формулы такой не существует )))

 
Женя:

Тут скорее вопрос к типу алгоритма стратегии и ММ чем к прогнозированию. Большинство тестерных граалей по типу реверсные с усреднением и порой пересиживанием, на таких сетапах очень легко получить "грааль" и с одним параметром, для того чтобы иметь более объективную картину, как минимум нужно убрать усреднение, хотя этого не достаточно, ИМХО по правильному нужно измерять матожидание прогнозов(трендов\разворотов), так как через тестер можно здорово обмануть не только других но и себя любимого.

Сегодня ночью кое-что крутил. Как ответ не цитируемое, думаю, будет интересно почитать и другим.

https://www.mql5.com/ru/blogs/post/728196

EURDKK vs swap
EURDKK vs swap
  • www.mql5.com
Тиковая ТС, без использования каких-либо индикаторов, включая бары. Более того, никак не обращается к истории цены. Внутри нет циклов. В общем быстрая однопроходная болванка. При этом еще и переворотная: сигнал на закрытие является сигналом на открытие противоположной позиции. Т.е. в рынке постоянно. Постоянный лот. Ну и для некоторой честности...
 
fxsaber:

1. Да, с некоторой точностью (ошибкой аппроксимации)

2. Возьмите полином 3-й степени (всего 3 свободных члена) и подгоните под кусок графика длиной хоть в километр. Значит ли это что будет работать на ООС? конечно нет. Кривые начнут расходиться почти сразу же, но иногда может повезти с направлением. Если неизвестна закономерность (теоретически, концептуально, фундаментально - как угодно), которая эксплуатируется, то вопрос можно снимать, т.к. это всегда подгонка под СБ

3. с т.з МО можно получить все что угодно. В основном, эти участки будут с определенными трендами, если они похожи то будет работать. Т.е. в этом случае меняется именно глобальный тренд, скорее всего, или опять рынок становится похожим на то что было, в среднесрочном плане. Поэтому работает\не работает.

Все эти вопросы решены в эконометрике на концептуальном уровне: линейный тренд основная составляющая, сначала прогнозируется он. Затем нелинейные колебания вокруг прямой палки при условии, что тренд сохраняется. Самый наиглобльнейший тренд предсказать невозможно из-за недостатка итории, т.е. вся неопределенность будет с долгосрочного плана. Всего несколько свободных членов, обычно не более 3-х, описывают любую рыночную кривую. МОшку можно уже подгонять под остатки от того что осталось не спрогнозированным.
 
fxsaber:

Сегодня ночью кое-что крутил. Как ответ не цитируемое, думаю, будет интересно почитать и другим.

https://www.mql5.com/ru/blogs/post/728196

ну это ТС на "пушистых" котирах, раньше были очень популярны, пока спреды не задрали на тех инструментах

одна из реально работающих ТС, пока не забанят
 
Maxim Dmitrievsky:

2. Возьмите полином 3-й степени (всего 3 свободных члена) и подгоните под кусок графика длиной хоть в километр....Всего несколько свободных членов, обычно не более 3-х, описывают любую рыночную кривую.

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

Maxim Dmitrievsky:

ну это ТС на "пушистых" котирах, раньше были очень популярны, пока спреды не задрали на тех инструментах

одна из реально работающих ТС, пока не забанят

Немного об истории создания ТС. ТС была создана, как одна из теоретических идей. Во время создания никак не привязывалась к исследованиям на каких-либо символах. И на EURDKK была запущена случайно (по всем символам из Обзора рынка - режиме MT5-тестера). У ТС как раз ровно три степени свободы.

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


Мне хотелось бы знать из любопытства, а не в качестве камня в огород. Кто-нибудь из МО-исследователей и классических ТС запускал свои алгоритмы на EURDKK? Находил там подобную пушистость? Если нет, то почему?

И крайне интересно, насколько МО-методы в состоянии улучшить показанный результат? Т.е. хотелось бы воочию увидеть, на сколько специально натравленное на эту пару МО может дать результат лучше, чем случайно написанная ТС, создание которой никакого отношения к EURDKK не имело?