Блог им. Buybuy

Простой Грааль для curve-fitting

Добрый вечер, коллеги!

Все мы в разное время занимались подгонкой (curve-fitting) и всегда с разным успехом.
Главное в подгонке — убедить себя в том, что подогнанное решение будет работать и в будущем.

С этим есть большие сложности.

Субоптимальные алгоритмы для максимизации эквити можно легко получить на любом интервале. Вне зависимости от типа модели исполнения — маркетной, лимитной etc. Я специально пишу «субоптимальные», поскольку в полном объеме решение задачи максимизации эквити практически невозможно получить без квантового компьютера или чего-то в таком роде — такое решение неизбежно будет зависеть от огромного перебора данных. К счастью, приближения к идеальному решению получаются достаточно просто.

Тем не менее, все субоптимальные алгоритмы, максимизирующие результат эквити, начинают сразу косячить за пределами окна оптимизации. У меня не получилось побороть этот феномен, ну и я не слышал, чтобы кто-то в мире смог как-то его побороть.
Да, есть масса способов аутотренинга, вроде WTF WFT тестов, но это не более, чем способ убедить себя в успехе (IMHO).

Тем не менее — варианты есть.

У меня получилось изготовить алго с хорошим продолжением за пределами окна оптимизации путем перехода от максимизации E (матожидания, ну или результата) к максимизации E/DD (оно же, деленное на максимальную просадку).

К сожалению, мне неизвестен ни один легкий способ изготовления субоптимальных алгоритмов, максимизирующих E/DD. Я умею решать эту задачу только в достаточно узком классе алго — и меня это устраивает. Возможно вам, коллеги, удастся найти исчерпывающее решение.

Как-то так

С уважением
★2
48 комментариев
Ну и че? Лошадь-то куда запрягать?
avatar
3Qu, ну ты же не хочешь на Бинанс работать...

А у меня эта энжина на Бинанс несет 200+ процентов...

С уважением
avatar
Мальчик buybuy, ликвидности хватает?
avatar
bettor, на Бинанс — да

Ликвидности — хоть попой ешь

С вводом/выводом могут быть проблемы
Сам все счета открываю на израильские паспорта

С уважением
avatar
Мальчик buybuy, хорошо, что хватает. Вообще ликвидность конечно сильно упала после 2021 года. Кроме BTC и ETH почти нечего торговать, и то уже надо стараться, чтобы не импактить сильно рынок.

А шарп высокий у стратегии?

avatar
bettor, 5+

С уважением
avatar
Мальчик buybuy, очень комфортный для торговли 👍
avatar
bettor, на крипте — нет, конечно

У меня в реале 180+ годовых при просадке 32
Просадка 32 психологически — это не вполне комфортно
При этом все товарищи заявляют, что 180-200 на крипте — это для лохов...
Но каждую весну — они новые...

С уважением
avatar
Мальчик buybuy, дело привычки. Мы торгуем в реале стратегии с шарпом 4+ вполне комфортно. Хотелось бы продолжать торговать только хфт с 10-15+ шарпом, но увы, ритейл поток сильно высох + на рынок зашло много серьезных ребят: jump trading, drw и т.д.
avatar
bettor, и нужно быть готовым к жутким фризам, куче ошибок, игнорированию cancel all заявок, проскальзываниям, пропускам заявок, и беспричинному удалению api
avatar
3Qu, а если серьезно — все сложнее, конечно

Вот ты изготовил алго, который проявил себя блестяще на 50000 баров
Из чего следует, что он не сольется даже на следующих 10000 баров?
(не говоря уже про 50000)
И вообще — как порождать стабильные алго?
При условии, что рынок медленно, но меняется...

С уважением
avatar
Из чего следует, что он не сольется даже на следующих 10000 баров?
Из предыдущего опыта и проверки на независимых интервалах.
Если стратегии давно и устойчиво работают и, + еще к тому, показывают неплохие результаты тестов на разных инструментах, с чего бы им не работать и дальше.
Скажем, стратегия на Бинанс. Делал ее на 3-х месяцах истории. На тесте за год показала аналогичные результаты.
avatar
3Qu, бро!

Мы так никогда не договоримся
Лично я не выпускаю в продакшн стратегии, не отработавшие успешно хотя бы 1500000 баров
Т.к. я зарабатываю на этом бабло, а ты — развлекаешься)

С уважением
avatar
Мальчик buybuy, А я развлекаюсь. И мне это нравится.))
avatar
По-моему Ваша задача оптимизации реверсивной МТС подругому должна решаться, т.е. одного параметра мало для полноценной работы.
avatar
bozon, бро!

А где ты взял один параметр то?
У меня (на лимитной эквити) изначально их было 7.
Потом аналитическими усилиями их количество было сокращено до 1.5 (число со знаком)
Идеала (самоподстраиваемая система) пока достичь не удалось.

С уважением
avatar
Мальчик buybuy, я уже запутался. Несколько постов назад Вы стучали в грудь своим ОДНИМ параметром, мол «Я...!».
avatar
bozon, ну он и есть практически один

Знак — это классификация торгуемого актива (LP или LA). Он не настраивается, а устанавливается изначально.

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

Что я делаю не так?

 С уважением
avatar
Мальчик buybuy, в том-то и дело, что LP и LA не бывает постоянно. Эти состояния перемежаются, образуя нестационарность. Возможно будет лучше приближать функцию, исключив из процесса её динамические характеристики (моменты).
Поэтому не 1 а 3 параметра.
avatar
bozon, это точно не так, бро

1. LA и LP зависят не от актива, а от биржи и принятой на ней системы мэтчинга/клиринга
2. В частности, на всех централизованных биржах BTCUSD — это LP, на децентрализованных — LA
3. Смена статуса LA/LP мною ни разу не была зафиксирована с 2000+ года (когда на рынке появились минутки, на крипте — с 2015+). Пока я анализирую 255 активов, можно и больше, но пока лично мне лениво

С уважением
avatar
Мальчик buybuy, глупый вопрос: а LA и LP — это что?
avatar
bettor, полистайте мой блог

LA и LP — это простейшая классификация микроструктуры цены
Возьмем, к примеру, минутки
LP означает, что рост на предыдущем баре означает рост на следующем баре. Ну, т.е. такая простейшая ТС всегда работает в плюс
LA означает, что рост на предыдущем баре означает падение на следующем баре.
Термины являются сокращением от локальной персистентности и локальной антиперсистентности © Б. Мандельброт

С уважением
avatar
Мальчик buybuy, интересно. Сейчас попробовал посчитать для BTC/USDT за последние 5 лет. Если игнорировать ситуации, когда цена не поменялась, то в 50.53% случаев цена продолжала движение в том же направлении, что и на предыдущем баре. Т.е. получается LP.

Эффект конечно очень слабый. Правда я считал не на минутках, а на 20 секундных барах. И это не совсем бары, а просто midprice раз в 20 секунд. Отсчеты чаще и отсутствует бид аск осциляции как в обычных барах. Возможно на минутках эффект более явно выражен.

Но и высока вероятность, что я что-то не то посчитал, т.к. поздно и воскресенье))
avatar
bettor, тут все просто на самом деле

Считайте по close бара

С уважением
avatar
bettor, ну и еще один творческий совет

Стандартные статистики для ТС — сразу в мусор

Для начала промоделируйте (в голове, в Excel, в удобной платформе программирования) простейшую ТС — покупаем, если росли на предыдущем баре, и продаем в противном случае.

Индикатор выглядит так: ЗНАК(X(i)-X(i-1))
Приращение эквити: (X(i+1)-X(i))*ЗНАК(X(i)-X(i-1))

Если эквити монотонно растет — это LP
Если монотонно убывает — это LA

С уважением
avatar
Мальчик buybuy, 

красивое… жаль косты не побьет все равно))



avatar
bettor, если не ставить себе целью побить косты, то

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

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

С уважением
avatar
Мальчик buybuy, да, много, что работает, если не учитывать косты)

avatar
bettor, это да

Однако
1. Кое-что работает, даже если учитывать косты
2. Мало что из этого кое-чего стабильно работает за правой стороной графика...

С уважением
avatar
это основное над чем я работаю сегодня.
avatar
Я тоже максимизирую отношение доходность/риск. Но риск — НЕ  максдд.
avatar
SergeyJu, это понятно

Я провел миллионы экспериментов с продолжением в будущее
И с E, и с DD, и с E/DD, и еще с десятками вариантов
Из всех функционалов стабильность при продолжении в будущее пока показал только E/DD

С уважением
avatar
Out-of-sample всех рассудит, только не надо на него оверфититься и гонять оптимизацию бестолковых стратегий по кругу.
avatar
Получал похожие результаты. Минимизация DD у меня приводила к лучшим результатам, чем максимизация Е. Впрочем еще лучшие результаты получаются если использовать к. вариации, но там формула сложная. Вообщем, задача поиска лучшего показателя для оптимизация имхо нетривиальная, но обязательная. Мной пока не решена, но подходы сбоку (через DD, kvar) дают лучшие результаты  чем оптимизация E или mo. Но опять таки в моих стратах, возможно у других — иначе

вот только это нифига не грааль) 
avatar
Daniil Lazarev, почему?

Любая стабильная на отрезке 6+ мес. эквити с Шарпом 4+ — это Грааль, IMHO
Да, это не идеал, но идеала вроде пока никто и не видел?

С уважением
avatar
Мальчик buybuy, 

не Грааль Е/D, а такая страта, да весьма неплоха
avatar
Как вы математики никак не поймёте простую вещь то никак? Вроде математики и доказывать теоремы должны уметь. Ну неужели не ясно, что любой алгоритм на истории, хоть на 100000000 баров — это все подгон и ничего и никак вы это не победите, тк в любой момент рынок может поменяться и характер движений измениться. а вы начнете сливать с надеждой что все вернётся… а оно може долго не вернуться. Все эти мудреные слова Овер фиттинг- только лишь бы продолжать херней заниматься и искать грааль. Нет их, тк рынок меняется любой под воздействием плавного изменения психологии людей, фундамента бумаги и прочих 1000000 факторов, которые не учесть никому. Единстаенный способ обойти это выключить алгоритм после первого превышения просадки и не подгонять его а выкинуть и забыть… и так дальше сначала- поиск алго простого- заработок- стоп торги этим алго. Другого нет ничего
avatar
Oleg Only Algo, можно в эти ярд свечей накрутить миллион условий… но это будет лишь переворачивание брошенных в прошлом монеток с «орла на решку»
avatar
Oleg Only Algo, это я еще молчу про то, что теоретическая модель будет всегда отличаться от ценовых входов — выходов, что для систем с большим количеством сделок фатально
avatar
Oleg Only Algo, хмм

У меня в продакшне каждому боту, работающему в реале, соответствует бот, который тупо крутит теор. модель на тех же данных.
Расхождение на 4 пипса за сутки (финрез) — это Red Alert!

Так вот — такая красная тревога случается раз в полгода...

С уважением
avatar
Oleg Only Algo, никогда не поймем, наверное

Т.к. рынки устроены вовсе не так, как Вы здесь написали (IMHO)
Рынки — это точно не случайное блуждание
У них есть как стабильные, так и нестабильные характеристики
Стабильные характеристики можно отлавливать
Но это непросто, и в комбинацию из 3-х пальцев не укладывается...

С уважением
avatar
Мальчик buybuy, так вот я ж не договорил. Да, есть стабильные, но они могут быстро появляться и исчезать… и ни один программист это не запрограммирует к сожалению. Пока что нет таковых. А вот мозг и человеческий глаз эти стабильные как раз очень хорошо и быстро воспринимает. Очень сложно это кодом описать. Но человек слаб и психологически неустойчив и тд. Может не выйти вовремя и тд. Но описать кодом оч не просто, что видно глазом 
avatar
Так что если и заниматься алго, то только скорострельные на секундах, там можно забирать еще, наблюдая еще дополнительно мозгом и глазом… Как тоттак… и обязательно анализ стакана и ленты. Это очень хорошие фильтры
avatar
Oleg Only Algo, А все эти минутки- только по графику программы- в топку. Там нет смысла полного
avatar
Oleg Only Algo, 

«Значит минутки хороши. Надо брать» )
avatar
Daniil Lazarev, анализ то по крупным надо, а вход на секундах. Минута это слишком долго. Все интересное внутри минуток
avatar
Oleg Only Algo, 

что именно?
avatar

теги блога Мальчик buybuy

....все тэги



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