Блог им. Dmi3

Адаптирующиеся системы vs. обычные. Лабораторная работа №1

Коллега @Ho_Chu при каждом удобном случае говорит мне, что необходимо пересчитывать системы на основе последних данных. Коллега @bascomo, наверное единственный известный мне алго, эксплуатирующий этот механизм в промышленном варианте, написал в последнее время пару статей, чем подогрел мое любопытство. 

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

Для лабораторной работы взял одну из рабочих систем с тремя параметрами для оптимизации, определил диапазон параметров и периоды IS и OOS 

1. Разбил  OOS на интервалы с длительностью в 1 месяц. Проводил оптимизацию IS для каждого из интервалов OOS на периоде в 6 месяцев до этого периода и использовал лучшие параметры IS, различные для каждого из соответствующих периодов OOS.
2. Провел оптимизацию IS на периоде 01.01.2015-31.12.2022 (собственно так и делаю всегда при создании систем) и протестировал OOS на периоде 01.01.2023-н.в с лучшими параметрами, полученными на периоде IS.

В результате тестов получил кривую ежедневных приращений счета для каждого из вариантов тестирования/оптимизации.

Адаптирующиеся системы vs. обычные. Лабораторная работа №1

Преимущество ежемесячной оптимизации по более короткому диапазону данных не подтвердилось. Возможно это связано с ошибками в тестировании или с выбором «не той» системы. Думаю как именно сделать еще несколько подходов.

Продолжение следует…
★5
104 комментария
Нормал тему затронул )
avatar
Андрей К, 
если полагаться на логические размышления, то подход с адаптацией должен быть лучше. но в трейдинге бывает, что контринтуитивный подход дает лучшие результаты.
Дмитрий Овчинников, почему адаптация должны быть лучше? Вы подгоняете систему под ряд… А надо ряд подгонять под систему -))
Мое строгое имхо — никаких подгонок, никаких адаптаций… Ну и совсем мое имхо — в системе должна быть мысль. И эта мысль не должна зависеть от угла наклона тренда.
avatar
КРЫС, 
мысль в системе есть. но кроме мысли есть параметры, именно о них идет речь. системы без параметров конечно тоже бывают, но это не точно.
Дмитрий Овчинников, у меня только 1 параметр...  Он не меняется уже почти 25 лет и в нем, считаю, есть идея -)). Он отвечает только за распознавание тренд/не тренд… Ну и есть еще одна фишечка — работа по системе на разных тайм-фреймах… Плюс мани-менеджмент…
avatar
КРЫС, 
у меня тоже есть система без параметров. но ее перфоманс существенно ниже, чем у систем с параметрами. к сожалению. 
Дмитрий Овчинников, на практике? Или на прогонке? Что точно — меньшая доха безпараметровой системы — это плата за ее робастность 

avatar
КРЫС, 
в продакшне эта система без параметров есть, если вопрос в этом.
КРЫС,
робастность на хлеб не намажешь. Если она (р) у системы есть, это отлично. Но смысл системостроения не в ней, это всего лишь одно из свойств. 
Дмитрий Овчинников, 

система без параметров

Это как???
Или имеется в виду что в системе параметры, которые нет смысла оптимизировать?
JC-trader ☮, 
есть логика, в которой скорее оптимизировать нечего, кроме того, что описано ниже.
но если придраться, то параметры конечно есть:
-инструмент
-таймфрейм

Для примера: если вы ищете ATH — есть ли там какой-то параметр? построили систему на его пробое- на входе параметров нет. 
Дмитрий Овчинников, кроме входа должен быть и выход. Чтобы исключить параметры придется выходить по ATL :)
JC-trader ☮, 
хорошая система получилась! Зато без параметров :)
Дмитрий Овчинников, вола меняет параметры.
avatar
GAURANGA, 
не обязательно. в данной системе точно нет.
Дмитрий Овчинников, а понял, она просто ломается и все)))
avatar
GAURANGA, 
да, такое просто ломается.
КРЫС, в системе еще должен быть рыночный механизм или следы игроков.
avatar
Дмитрий Овчинников, чую нейронка должна подстроить параметры )

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

я вот например исхожу из того, что рынок могут характеризовать два параметра: вола и ликвидность. В сочетании этих двух величин или на основе их строится какой то синтетический параметр. Он то и должен влиять на страту. Ну банально например: объем торгов/кол-во_всех _трейдов_сессии 

ну а пока на деле все просто: видишь страта подливает, в терминал глянул на стаканы, числа, глаз прищурил и прикинул параметр. Ну и поменял )
avatar
Андрей К, 
1. это у тебя та нейронка, которая между ушей, она лучшая :)
2. у тебя hft, поэтому утром стулья-вечером деньги. а у нас сегодня стулья, а деньги через пол года.
Дмитрий Овчинников, hft кстати бывает тоже обсчитывают через день. Большими мощностями. Инфа точная, сам видел ) Но это было в период только низкой волы
avatar
Какая к черту извините может быть адаптация к случайному сигналу?
Василий Федорович, 
на случайном сигнале заработать невозможно. однако коллеги зарабатывают, а значит сигнал не случаен :)
Дмитрий Овчинников, 1. возможно, если изначально знать что он случаен 2. дайте пожалуйста ссылку на счёт коллег.
Василий Федорович, 
1. такое дао мне не известно
2. эквити некоторых коллег есть на comon.ru, можно посмотреть и оценить
Дмитрий Овчинников, так умный только Е.Г., и то с трудом в полюса выходит, остальные с годами уходят в минус, вопрос времени
Василий Федорович, 
остальные с годами уходят в минус, вопрос времени
это, мягко говоря, не совсем так.
Дмитрий,  тема достойная осмысленного подхода и исследования… В системах управления различными объектами -это нормальная практика использования обратных связей в адаптивных системах как минимум для  повышения их устойчивости.....
Нужно осмысленно исследование этой задачи с неким мат. аппаратом… Но на ресурсе челов способных  на подобное исследование  не встречал…
avatar
alt, 
математиков на ресурсе хватает, если мы не видим результатов, то не факт, что результатов нет.
Дмитрий Овчинников, нужны не математики а радиотехники, которые хотябы знают виды сигналов.
Василий Федорович, 
радиотехников на смартлабе думаю не меньше, чем математиков.
Дмитрий Овчинников, думаю единицы из 190 000, за 6 лет ни одного не встречал.
Василий Федорович, 
@ves2010, как мне кажется, близко к радиотехнике.
 за 6 лет ни одного не встречал.
хм… а как искали?
Дмитрий Овчинников, зачем искать? рыбак рыбака…
Дмитрий Овчинников, вообще-то грустно читать тексты на СЛ о сигналах от писателей, понятие не имеющих о классификации сигналов.
Дмитрий Овчинников, Да, он радиотехник, я тоже. но, увы, все что касается сигналов — к рынку не подходит.
avatar
silentbob, 
я, в некотором роде, тоже :) и да, не подходит.
Василий Федорович, Это уже чуть  ближе к сути темы…
avatar
Василий Федорович, расскажите нам сами об этом подробнее, пожалйста.
avatar
Артур, нет вдохновения, я в творческом поиске, приношу извинения, да и в нете все есть.
Дмитрий Овчинников, «математиков на ресурсе хватает». Ни о чём..  «голый » математик  без некого понимания биржевых нюансов к тому не владеющий некими прикладными решениями  (Пригожин… Атаман..)- Это  скорее Ноль в биржевых делах… Вспоминаю постоянно добрым словом Бориса Гудылина с его темой фракталов…
avatar
alt,
Возьмите голого математика из выпускников, вдохните в него божественную магию биржевых секретов и пользуйтесь результатами его исследований. 
Дмитрий Овчинников, Даже Перельман в итоге сбёг))
avatar
alt, 
Даже Перельман в итоге сбёг))
мы все умрем ©, даже математики. но это ведь не повод не делать то или иное?
Дмитрий Овчинников, Конечно нее? Ещё как то на Пауке чел искал математиков для решения некоторых задач трейдинга. Тогда он не нашёл таких… Там кроме всего нужно владение некоторыми прикладными решениями… В этом направлении далеко не все копают…)
avatar
alt, 
Тогда он не нашёл таких…
Да что там математики. Программиста толкового не найти, чтобы отрефакторить зоопарк. Так и приходится поддерживать дендрофекальным © программированием.
Дмитрий Овчинников, «Программиста толкового не найти,»     -одни распальцовки…
За решение стандартной задачи с пом готовых спец. библиотек которая решается спецом  за неделю — две  просят -300-400р… без всяких гарантий..)
avatar
alt, 
у меня нет стандартных задач и мне не надо за неделю :)
на эту тему лучше всего высказались Anacondaz:
Но знаешь, даже целому взводу писак как надо не сделать. А х**во я могу и сам ©
Дмитрий Овчинников, на смартике с 16 года.
Да за это время можно миддлом стать, если есть желание.
Или кодить — это не барское дело?
avatar
DrManhattan, 
кодим потихоньку конечно. но есть задачи, которые не по зубам. 
DrManhattan, да Дмитрий притворяется, уверен, он уже давно мидл, по крайней мере в mql ) Возможно конечно изначально в базовую версию заложен не совсем красивый код, который не просто исправлять и нужно вдохновение )
avatar
alt, удалось заработать на его фракталах?
avatar
robomakerr, — один из ориентиров…
avatar
alt, не подскажите, кто такой Борис Гудылин? работы, статьи..
Заранее благодарю, коллега!;)
avatar
Dio, smart-lab.ru/blog/281180.php//    Но многое нужно нестандартно додумывать…
avatar
alt, будем стараться! спасибо еще раз и удачных трейдов!)
avatar
alt, увф страница уже не существует… этот человек на смарте или особняком вне данного ресурса?
avatar
Dio, там же видно, что в конце ссылки лишние символы? Вот вам другая ссылка на его блоги (в обратном порядке по времени):

https://smart-lab.ru/my/bgoud/
Дед Нечипор, увидел) Спасибо!
avatar
Dio, Может второпях что то не сложилось с адресом..? Вам вроде помогли уже… Борис- интересный многогранный человек… Может и вам удастся зацепиться за суть его идей… Он много информации дал для подумать… Вначале он охотно делился подробностями и некоторые недобросовестные «товарищи»  стали потом   пользоваться его открытостью...)
avatar
alt, да, уже разобрался! Спасибо! почитаем.
За суть его идей цепляться не планирую..)) но фракталы очень люблю… лет 20..))
avatar
Dio, «но фракталы очень люблю… лет 20..))»- это как? -можно в личку…
avatar
Нетрейдер, тогда уж симпозиумы -)) Под легкий алкоголь много кто проговориться может -))
avatar
а почему месяц? надо попробовать более длительные интервалы может и есть в этом смысл
avatar
love_to_trade,
OOS состоял из 6.5 месячных отрезков. Вы предлагаете удлинить отрезки? Я то как раз планировал сделать повторный тест на более коротких, недельных отрезках. 
Дмитрий Овчинников, мне кажется рынок не меняется так быстро если это конечно не HFT, поэтому месяц небольшой срок. Исключениям являются СВО или ковид (кризисы). 
avatar
использовал лучшие параметры IS

Думаю как именно сделать еще несколько подходов.

выбирать не самые лучшие, а самые стабильные.
avatar
robomakerr,
Лучшие это не дающие максимальный баланс, естественно. Лучшие в данной лабе выбирались по значениям рикавери и шарпа. 
Дмитрий Овчинников, дык опять же, наилучший шарп — это не максимальный, а наиболее стабильный.
avatar
robomakerr, 
наилучший шарп — это не максимальный, а наиболее стабильный.
это как?
Дмитрий Овчинников, примерно одинаковый на каждом интервале
avatar
Как по мне переподстройка это ничем не обоснованная глупость. Могу понять когда к 10 лет данным добавляют еще один год, и получают суммарно 11. А переобучаться каждый год? Почему это в принципе будет лучше работать?
avatar
vlad1024, 
ну например так: до 24.02 основными игроками на рынке были нерезиденты, сейчас верховодит стадо физиков. Очевидно, что рынок изменился, так какого дьявола результаты, полученные на анализе прошлого рынка работают лучше, чем полученные на анализе текущего?
Дмитрий Овчинников, системы торгуют какие то закономерности. Исчезновение закономерности приводит к деградации показателей системы и эквити. И это повод задуматься, а не какие то эфимерные предположения. Если вы обучили на 10 лет, и в последний год происходит деградация это повод задуматься. В общем случаи, если считаете, что важны последние данные, система должна отдавать предпочтения новым данным неявным образом. Чем больше данных тем больше возможности для проверки. Условно говоря на 10 годах данным, проверяем скользяшим окном в год. Просто так перестраивать систему каждый раз под новые данные и надеяться, что это чтото даст, довольно наивно.
avatar
vlad1024, 
Просто так перестраивать систему каждый раз под новые данные и надеяться, что это чтото даст, довольно наивно.
Я в общем то придерживаюсь таких же взглядов, о чем и написал в заметке, мне трудно вам оппонировать в данном вопросе. Тем не менее, существуют коллеги, которые строят свой продакшн именно на таких постулатах.
Дмитрий Овчинников, да я знаю, поэтому и написал. Но никаких аргументов, кроме не оспариваемого постулата, что систему надо подгонять постоянно под рынок я не слышал. Как по мне это просто форма curve fitting.
avatar
vlad1024, 
в том или ином виде любое/почти любое системостроение это curve fitting.
Дмитрий Овчинников, нет, с этим я не могу согласиться ) есть статистика, и есть курв фиттинг способный описать произвольный, совершенно случайный набор данных.
avatar
Нетрейдер, 
конференции, как у тимофея, только для алго и сразу и плавно переходящие в афтепати.
Подгонка на целом периоде выигрывает у суммы подгонок на его частях.
Потому что в ТС так или иначе используется усреднение по ключевому параметру, а от части к части усреднения нет. То есть сама идея ТС пропадает.
avatar
svgr, 
интересно, спасибо.
Дмитрий Овчинников, я недавно делал такое: скользящее окно из n свечей. Для ТС на каждом из окон 1… n, 2… n+1, 3… n+2 и т. д. рассчитывалось наилучшее значение параметра ТС.
Затем имитировалась торговля: для n+1-й свечи бралось наилучшее значение окна 1… n, для n+2-й свечи бралось наилучшее значение окна 2… n+1 и т. д. Результат был очень плохой.
avatar
svgr, 
Результат был очень плохой.
Так здесь то вопрос в другом. Вопрос в зависимости результата от величины окна n. Может быть у вас сама идея ТС не того? 
Дмитрий Овчинников, идея хорошая. Результат табуляции по параметру на любых периодах имеет положительную область значений, которая несколько дрейфует туда-сюда. То есть можно выставить значение, ошибиться на будущее, но остаться в положительном результате.
Конечно, по n немного проверял. Одно значение — часа три расчётов. Поэтому пока выборочно. Где-то получше получилось, но пока хуже, чем без окна. Не ожидаю уже хорошего n.
avatar
svgr, 
тогда пожелаю упорства и успехов!

svgr, а почему так медленно?
avatar
bascomo, минутные свечи за 2,5 года. И чем больше окно, тем дольше.
avatar
svgr, а в чем? Что то прям нереально долго.
У меня по 11 инструментам и 2-м направлениям с 1 Янв 25000 алгоритмов с окном 7 дней меньше чем за 15 минут обрабатывается. 
avatar
Нетрейдер, 
жду приглашения. входной билет должен быть дорог! :)
Нетрейдер, 
тогда просто жду приглашения :)
Помню после какого-то ЛЧИ общался с робот_Аспирант, занявшим призовое место, там 2 брата математика и вот они, помню, тоже говорили, что адаптируют параметры чуть ли не каждый день.

Такие мета исследования — очень увлекательное занятие. 

Мне кажется, способность проводить подобные мета-исследования легко и удобно — хороший стресс-тест критерий для алго-инфраструктуры.

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

avatar
Replikant_mih, 
обычно когда исследуешь что-то новое, приходится много делать руками.
если получаешь интересный результат- автоматизируешь процесс и повторяешь исследование на новом уровне и разнообразных данных.
если НЕ получаешь результата- пишешь статью на смарт-лабе :)
У меня всё-таки иной подход.
Я не подстраиваю параметры одних и тех же алгоритмов.
Хотя параметры у скользящих-стохастиков-рси и так далее есть, но они определены стандартными по умолчанию и как константы.
Я меняю сами алгоритмы, благо их у меня до черта.
avatar
bascomo, 
в этом нет никакой разницы, подстраиваете ли вы алгоритмы или параметры. важен именно процесс постоянной переоптимизации для выбора «нужных» экземпляров. 
Дмитрий Овчинников, возможно, что и так, думаю, тут важнее число алгоритмов
avatar
bascomo, 
возможно. у меня на срочке вертится порядка 6-7 сотен экземпляров, но у меня нет никаких ротаций, только добавление новых и выкидывание старых, которые «сломались».
Дмитрий Овчинников, а проверять умершие? вдруг воскресли?
avatar
bascomo, 
уходят, как правило, те, которые были написаны два-три-четыре года назад и их уже нет смысла реновировать ИЛИ те, которые используют новые кратковременные неэффективности рынка, возникшие после 24.02, с ними тоже все очевидно- неэффективности схлопываются.
Дмитрий Овчинников, понятненько, из моих может выстрелить и то, что было актуально месяцы и годы назад, но у моих время жизни короткое, может, пару тройку недель, так что они то появляются, то исчезают. Зато доходность несопоставима с тем, что получено оптимизацией на горизонте лет, выше на порядок-другой.
avatar
Было дело, замечал что доходность чуть ли не вдвое падала как только добавлял адаптивность. Обьяснение было что участноки рынка тоже адаптируются, в итоге ты оказываешься в проигрывающем большинстве.
avatar

теги блога Дмитрий Овчинников

....все тэги



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