Блог им. Replikant_mih

Результаты небольшого исследования про модели ML vs участки данных.

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

Когда скрипты уже отлажены ты просто их гоняешь, оцениваешь результаты, принимаешь решения. Часто при этом в голове всплывают неотвеченные вопросы, одни помечаешь себе, другие нет. Одними из таких вопросов были: это модель хреновая или OOS неудачный для модели, или в целом неудачный, а есть для него удачная модель, а для удачной модели есть неудачные участки данных тоже? В общем если убрать за скобки ML – классическая тема про переоптимизацию про то, что рынок может благоприятствовать стратегии (а скорее целому классу стратегий), а может нет. Но как с этим у моделей обстоит. В общем до этого момента только фантазировал на эту тему, закрыть вопрос через исследование было не сложно, но как-то руки не доходили, а теперь дошли.

 

Что делал: условно, взял много данных, единое признаковое пространство, по-всякому нарезал данные таким образом чтобы разные модели обучались на разных участках данных и было так же сопоставимое с кол-вом моделей кол-во OOS участков. Убедился, что OOS в конкретной паре модель-OOS не участвовал в обучении данной модели и погнал тестить разные модели на разных OOS кусках.

 

Какие основные граалегипотезы проверял:

— В зависимости от участка данных модель может обучиться заметно лучше или заметно хуже.

— Или все-таки не так важно, как хороша модель – важно на какие данные её пустили предиктить.

Ну и так по мелочи ещё.

 

 

Сразу к результатам переходим чё.

 

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

 

 

Выводы.

 

Раньше в своих исследованиях при оценке модели мог запросто сравнивать модели между собой на основе разных OOS кусков (одну на одном OOS смотрел, другую на другом OOS), терь не буду.

Теперь будет один фиксированный кусок данных брать всегда. Ну или 3, но всегда одни и те же и сравнивать в разрезе отдельных кусков.

 

 

Возможные направления дальнейшего развития (исследования) этой темы:

 

— Если моделью можно размечать качество участков данных (с точки зрения удобства (имею в виду, что на таких данных модель качественно предиктит) для данной модели), можно пробовать разное, например, затестить гипотезу: а что если взять из данных самые лучшие участки (для данной модели) и обучить на этом же признаковом описании но на очень подходящих кусках данных модель, будет ли она лучше.

— А если так можно делать (обучаться «у лучших» и быть лучше), то, вероятно, концепт «модель, специализирующаяся на данных с конкретными характеристиками» не лишен смысла. И можно одной моделью размечать данные, другие пытаться целенаправленно натаскивать на данные, на которые первая модель плохо себя показывает, или же учить модель различать сами состояния (которые мы опять же теперь умеем размечать).

— Ну и кстати, если можно понять, что конкретный кусок данных хреново подходит данной модели, то, вероятно, можно пробовать сокращать размер такого куска (читай, повышать чувствительность) и пробовать в риал-тайме определять, благоприятствует ли состояние рынка модели.
60 комментариев
Как всегда всё уперлось в качество данных. А идеального качества данных на рынке не существует, т.к. условия на рынке меняются.
Александр Сережкин, Мм, не совсем. В данном случае все данные хорошие, они полные и т.д., просто данные не стационарные, да. Здесь я и затрагиваю тему того, как именно учесть эту нестационарность при торговле с помощью ML.
avatar
Данные учитывают условия во времени котором они торгуются, т.е. в грубом приближении данные как функция от условий торговли. Я на ты, без обидок, так, что если ты построишь модель с условиями, которые коррелируют с условиями торговли на рынке, то и не стационарность данных станет заложена в модель ML. 
В остальных случаях только оптимизация данных на ML.
Александр Сережкин, На ты, конечно. Кажется, я понял, об чем речь. Можно задействовать такие признаки, которые будут отражать нестационарность (конечно, это не что-то единое, а совокупность каких-то проявлений) и чем лучше, чем в большем числе аспектов они её отражают, тем больше будет модель это учитывать и тем равномерней будут результаты модели между разными участками данных. Если речь про это — да, безусловно. Сложность — находить такие признаки. Кстати у меня есть признаки-кандиндаты на эту роль, точно, надо замерить разброс в метриках на разных участках сейчас и после добавления этих признаков.
avatar
Replikant_mih, да об этом
Александр Сережкин, Отлично. Спасибо — добавил на основе этого одну ветку в дальнейшее исследование).
avatar
Честно говоря (а я не всегда говорю честно), ни фига не понял. Потому, если че не то написал, сильно не пинайте.) Хотя, переживу как-нибудь.)
1. Обучит МЛ на всех данных ВР или их производных принципиально невозможно.
2. Для обучения выделяю куски ВР на которых обучение возможно согласно предварительной гипотезе. Остальные участки ВР опускаются.
2. Проверка и последующая работа МЛ осуществляется только на участках соответствующих гипотезе. На остальных участках МЛ не применяется. Такие участки из работы исключаются.
Если гипотеза подтверждается, то МЛ и на реальных данных неплохо функционирует. Наша задача только селектировать такие участки до подачи на МЛ.
Ну, и такой подход новизной не отличается, описан практически повсеместно.
avatar
3Qu, А ВР это что? — Я знаю только «валютный рынок» ну или «British Petroleum»). А тут что?
avatar
Replikant_mih, временной ряд.
avatar

3Qu, 

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

2-3 Если это попытка описать, что делаю я, то нет, я делаю что-то другое, вроде)).

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

avatar
Replikant_mih, в итоге подтвердилось что-то из гипотез?
Я просто пока не нашел чего-то что обычным теханализом нельзя подтвердить.

avatar
Илья Нечаев, Вывод: если оставаться в рамках одного и того же признакового описания, то в конкретной связке модель-данные (OOS) решают данные, а не модель. Это не грааль сам по себе, но, скажем так, определеяет дальнейшие ветки исследования, куда будет интересно покопать, ветки тоже примерно обозначил. 
avatar
Igor Chugunov, Спасибо!)
avatar
в конкретной связке модель-данные (OOS) решают данные, а не модель
Это же говорит об оверфиттинге?
То есть получаем одни артефакты?
avatar
Sergey Pavlov, Не, речь же не о IS данных, а о OOS. Если у тебя трендовая стратегия хорошо работает в трендовом участке и тихо сливает в нетрендовом и потом снова хорошо зарабатывает в трендовом, ты же не говоришь, что это оверфиттинг
avatar
Бери интервал ширее
avatar
Roman Ivanov, Просто так или идея какая-то под этим есть?) Ну и что значит ширее?)

Кстати, конкретно в данном исследовании фигурировали данные, которые я сам коплю, так что ширее будет только со временем.
avatar
Replikant_mih, чем ширее интервал, тем больше усреднятся результаты от разных состояниев рынка, тем точнее будет оценка. У тебя сколько ширина интервала на обучение? 5 лет есть хоть?
avatar
Roman Ivanov, 10 дней данных), но для этих данных это норм вполне. Усреднение это да, то усреднение в ключе описанной проблематики это скорее затирание проблемы, игнорирование, а не решение.
avatar
Replikant_mih, ну тогда конечно, результат будет сильно зависеть от состояния рынка. Ведь флет на 10 дней вполне себе норма.
По мне так 10 дней данных это очень мало, это гарантия подгонки алгоритма под данные.
avatar
Replikant_mih, я стараюсь брать более 10 лет. 
Для фр России типично с 2007 года. Чтобы зацепить зоны низкой волы и зоны кризисов. 
avatar
SergeyJu, Да, когда данные физически есть, я тоже беру много).
avatar
Replikant_mih, качните минутки с финама.
avatar
SergeyJu, так у меня секретные несвечные данные))), поэтому сам пишу.
avatar
Replikant_mih, скачайте архив полных ордерлогов и постройте свои «секретные несвечные данные» за любой период. Всяко лучше чем копить и строить во время торгов. Да и всё копить нереально, может вам завтра захочется изучить новый инструмент, а данных по нему нет. И что, ждать пока достаточно проторгуется/накопится?
avatar
Sprite, Можно было бы, если бы ордерлог содержал бы данные, на основе которых я мог построить то, что я накапливаю). Я бы так и сделал, кстати. Не настолько я терпелив чтобы неспешно ждать копить если есть возможность не копить.
avatar
Replikant_mih, т.е. вы копите какие-то внебиржевые данные?
avatar
Sprite, Биржевые, вроде, по крайней мере через брокера идут). Сорри за «режим секретности» — вдруг грааль)) — вдруг когда достаточно данных накоплю окажется, что грааль, пока вроде не сильно).
avatar
Replikant_mih, интересно, что же вам такое брокер от себя выдает, чего нет в биржевых логах. Видимо ну очень секретно.
avatar
Sprite, Ой чё даёт, чё даёт… и все такое секретное и все такое граальное 
avatar
Sprite, ответ вроде простой ) если ордерлог не подходит, то юзается level 2 data, которой нет в ордерлоге )
avatar
Андрей К, которую, омг, тоже можно скачать )
avatar
Sprite, Да не, не level 2 тоже).
avatar
Replikant_mih, да что ты творишь )) тогда что? бывает ордерлог, level I и level II )
avatar
Андрей К, а ещё бывает от Михал Иваныча брокера
avatar
Андрей К, Ну, если оставаться в рамках этой вертикали, то да, ты описал все урони, а все остальное — производные. Но вертикали могут быть и другие).
avatar
Replikant_mih, не, ну правда интересно, какие ещё бывают вертикали? Парсить блумберг? Межбиржевой арбитраж?
avatar
Replikant_mih, при всем уважении — с млькой вам не решить задачу предикта цены или тренда.
не вытяните вы фьючи для модели из рынка которые будут давать высокий accuracy на unseen data, без разницы какой алго вы юзаете (svm,knn,regression etc.)🤷
потратил кучу времени на исследование разных техник и только reinforcement learning с правильно описанной средой агента даёт кое какой результат.
avatar
reserved, Accuracy не мерею, оцениваю трейдерскими метриками. Они вполне норм, не грааль, но норм. По reinforcement learning интересно — это наверно единственный класс моделей, которые я не пытался прикрутить к трейдингу, вернее пытался, но забил, потому что там процесс как-то сильно отличается от классического ML с учителем. Может, как-нибудь потом попробую).
avatar
Какие странные результаты применения количественных методов. Текста много а цифра только одна
avatar
wrmngr, А мне все нравится), а цифры-буквы это просто форма.
avatar
Replikant_mih, Я ничего не понял, но… продолжай копать.Глядишь… и до фракталов докопаешь.
avatar
ezomm, Конечно, ведь все дороги ведут к фракталам only).
avatar
Replikant_mih, подсказка — фрактал тренд(импульс) из нечетных групп свечей.Фрактал коррекция из четных.
avatar
ezomm, Вы, видимо, как-то там со стороны Эллиота, фракталов и т.д. зашли и нашли в этой систем координат закономерности. Отлично. Я в других системах координат обычно пребываю. Часто одни и те же закономерности можно через разные системы координат наблюдать. Так что тем более не вижу особо смысла в незнакомую стихию лезть себе.
avatar
Replikant_mih, знание о графике конечно. Волновики ищут лишь описание формы графика через цифры и буквы.Это 2й шаг закономерности. 1й шаг — VSA… работа объема в одной свече. 3й шаг — свечи(фракталы из многих свечей ) как циклы времени. 4 малых фрактала рождают 1 больший в 2 раза по амплитуде.Это правило дает многое для системы. Это и стоп лосс и прибыль и размер участия. Тебе как идущему к знанию это пригодится. Интерпретация — сумма объема в тенях в 2 раза меньше объема в теле свечи (для идеального солдата).Идеальный солдат — сумма теней равна телу свечи.Все эти знания и формулировки  мои. Этого нет в книгах. Про свечной  вообще нет книг .
Свечной  может открыться волновику на последнем этапе познания циклов времени  на графике если волновик будет читать волны через свечной график, а не график в линию. Подсказки в графике Аши и рендж графике.
avatar
ezomm, Ну это выглядит как шифровка. Как будто смотришь какой-нибудь Код да Винчи или Сокровища нации — я в разгадывании загадок не силён), Поэтому я даже пытаться не буду. Может если как-нибудь буду в этих краях, вспомню про эти комментарии — может в этом случае смогу понять их суть, сейчас — не вариант.
avatar
Replikant_mih, еще запомни- расставаться с индикаторами мучительно больно за потерянные годы. Сделай усилие -не изобретай колесо.Эллиот уже забрал из свечного анализа его правила формы.Открой книгу, прочитай правила и просто рисуй карандашем волны цены.Тогда и увидишь как фракталы собираются по 4 в 1. Это танец цены и он бесконечен во времени.Сейчас человечество вошло в фазу коррекции а-в-с  40-30-50 лет.
avatar
Т.е. вы обучаете модель скажем на трендовых участках, и другую на флэтовых, и все это скажем за период от 0 до 10. Потом тестируете на трендовых и флэтовых соответственно но уже на 11..20 скажем. Так?
А как вы определяете, что участок будет трендовым или флэтовым?
avatar
CloseToAlgoTrading, Нуу почти. Всё так, только я не размечал тренд/флет. Просто видно, что на одних участках разные модели кучно хорошо ложатся, а на других участках кучно плохо. Т.е. в общем случае говорю, что одни участки благоприятствуют модели, другие — нет. Одни — тренд, другие флет — как вариант частного случая.
avatar
Replikant_mih, Ну, флэт и тренд это как пример. Я к тому, что если эти участки невозможно предсказать, то получается мы стоим опять перед выбором какую или в каких долях модели нам использовать, разве нет?
avatar

CloseToAlgoTrading, Ну на данный момент я один из вопросов, ну или на развилке определился куда двигаться исследованиях дальше (если хочу что-то улучшить в своих моделях). А какие напраления остались актуальными:

— предикт состояния.

— по предиктам обычной модели (сравнении с фактическими результатами) какой-то механизм вкл./выкл. если состояние не благоприятствующее в моменте.

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

— целенаправленный поиск моделей хорошо себя чувствующих на состояних, где другие модели не очень хорошо себя чувствуют и т.д.

avatar
Replikant_mih, Я думаю, что вне зависимости от мл, сам факт понимания в каком состоянии мы находимся довольно важен, еще более важно его продолжитльность. 
Машики по большому отвечают на этот вопрос… сглаживая колебания мы видим растущий тренд, однако мы все еще не знаем как долго он будет расти. Тоже и с моделями, если некоторая модель сможет сделать предположение, хотя бы вероятности, на продолжительность текущего состояния, то :) дальше уже можно и нихило обогатиться. 

Текущее состояние можно попробовать методами кластеризации или какой нить сетью типа автоэнкодера распознать.
— целенаправленный поиск моделей хорошо себя чувствующих на состояних, где другие модели не очень хорошо себя чувствуют и т.д.
Тут на смартлабе кто то же похожий подход делал, рассказывали что имеют тыщу простеньких моделей, и они все участвуют в торговле, но активируются на остове некоторых вспомогательных алгоритмов которые выдают веса моделям… Если я ничего не путаю :) вроде на этом сайте было.
avatar
CloseToAlgoTrading, Ну да, так просто задача предикта состояния на продолжительное время с наскока не берется). И у меня тоже.


Тут на смартлабе кто то же похожий подход делал, рассказывали что имеют тыщу простеньких моделей, и они все участвуют в торговле, но активируются на остове некоторых вспомогательных алгоритмов которые выдают веса моделям… Если я ничего не путаю

 

Ну да, как-то так. Концепт простой, понятный, но думаю, основная сложность будет 1. Суметь обучить модели для плохих участках, 2. Переключатель качетсвенно обучить.

avatar
Replikant_mih, как идея… возможно не нужно обучать переключатель, а работать изходя из вероятностей… по мере изменения вероятностей менять вовлеченность активных моделей. Далее на каждом шаге, ежели модель может подтвердить предыдущее состояние, веса нужных моделей будут увеличиваться. Ну это я так… как вариант для раздумий :)
avatar
CloseToAlgoTrading, Да, тоже люблю включать фантазию при исследованиях, исследования это очень увлекательно, главное в них не погрязнуть в ущерб прикладному аспекту).
avatar
Replikant_mih, исследуйте фрактал Билла В. там простые правила.От середины по 2шага снижения.Достаточно уточнить форму 2го и 5го шага и вы сделаете шаг вперед.Но про объем тоже не забывем. Каждый тик это объем. И как ляжет объем по фракталу (свече ) так свечу и назовем… толкающая или разворачивающая. Понимание риска и ММ придет когда глаза откроются  на правила рисования графика.



avatar
CloseToAlgoTrading,  за тренд -не тренд отвечает такое понятие как — перекрытие  волн.Пока перекрытия нет идет тренд типа L>ref(H,-2) для роста.
Главная модель — фрактал Эллиота (танец цены 3-2 это мое название ).На свечах это свеча -приседающий.График Аши весь из приседающих.В идеале это 3 белых солдата и коррекция против из 2х шагов а-в-с .
Напрасно вы — программисты изобретаете колесо. Проги уже давно написаны. Им лет 30.Я начинал с этих прог в 2000г. EWA 3.0 ...ELWave  размечают график в любых таймах… типа они читают график на предмет трендов и флетов. Нам же трейдерам предстоит только понять волновой принцип и применить для торговли.Я уже много раз советовал прямой путь познания .
1- VSA. 2- ВА Эллиота .3- с помощью первых двух понять свечной анализ .4 — понять как собираются фракталы времени из свечей .
Сигналом является свеча -поглощение.Это правая часть пин бара… типа пин бар и поглощение это одно и тоже. Более точно сигнал- поглощение 5й волны от С волны.
avatar
Привет. Не пробовал экстремумы в ML загонять?
avatar

теги блога Replikant_mih

....все тэги



UPDONW
Новый дизайн