Блог им. goryinyich

Набросок конспекта лекции про оверфиттинг - полезно всем

Набросок конспекта лекции про оверфиттинг - полезно всем
Решил начать писать небольшие заметки по алгоритмической торговле и всему что с ней связано. Возможно, когда-нибудь расширю, склею и опубликую в виде книжки. Пока же это просто наброски заметок, сделанные на скорую руку.

Можно часто слышать от тех, кто торгует алгоритмически, да и просто систематически, такие понятия как «оверфиттинг», «курвафиттинг», «зафит» и прочие ругательства с корнем «фит». Что все это значит?
На самом деле, все эти слова, как правило, используются для описания одного и того же явления, являющегося врагом всех трейдеров, торгующих систематически и пытающихся оценить исторический перформанс своих торговых логик — а именно, что «живой» аут-оф-сампл перформанс на реальном счете, как правило, хуже ожиданий, полученных ими при проверке своих идей на истории. Например, при тестировании торговой логики на истории трейдер с помощью своей модели «зарабатывал» 30% годовых, а в реале может в среднем иметь 10% годовых. Разница 20% годовых — может объясняться именно оверфиттингом (если нет других факторов — например, некорректный учет комиссионных и проскальзываний, или ошибка в торговом коде; но прочие факторы легко устранить, в отличие от оверфиттинга). На картинке в начале статьи — пример перформанса некоторого фонда в бэктесте и в реальности, наглядно иллюстрирующий написанное выше.

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

Начнем с простых источников оверфиттинга, относительно легко устранимых или минимизируемых, если у вас есть некоторый опыт:

1. Forward-looking bias («ошибка заглядывания вперед») — в основном техническая проблема начинающих алготрейдеров, когда вы «подсматриваете» в бэктесте данные, которые недоступны вам в реальной торговле. Самый базовый вариант (который мне доводилось встречать в одном реальном бэктестере) — это когда предполагалось, что вы можете посмотреть на цену закрытия, просчитать по ней некоторый сигнал, и тут же по этой цене зайти. Несомненно, это «заглядывание» — потому что цена закрытия определяется одномоментно, и если вы ее увидели, то зайти по ней уже не сможете (да еще и предполагая, что перед этим вам еще нужно что-то посчитать, собрав цены закрытия по всем контрактам). Проблема относительно легко решается, если у вас есть некоторый опыт написания бэктестеров.

2. Curvefitting (a.k.a. курвафиттинг) — также простой и относительно легко минимизируемый для хорошего специалиста вид оверфиттинга, при котором из некоторого класса моделей выбирается такая модель (или параметры для нее), при которых модель отлично торговала на истории, вследствие чего equity curve модели имеет гладкий вид, близкий к прямой (или экспоненты, если бэктест рисуется с реинвестированием) — отсюда и название curvefitting — «вырисовывание линии эквити» с помощью параметров. Однако ничего общего с реальностью такой «закурвафиченный» бэктест не имеет — он отлично «торговал» на истории вследствие специфической комбинации выбранных параметров, отлично подходящих для существовавших тогда рыночных условий, однако в будущем таковые условия вряд ли повторятся, и результаты торговли будут хуже.
Если вы знаете английский — покурвафитить можно вот здесь: carma.newcastle.edu.au/backtest/. На графике слева «синеньким» будет рисоваться гипотетическая зафиченная всего 2-мя простыми параметрами (!!!, период удержвания и стоп лосс) эквити (зелененьким — график торгуемого инструмента), на графике справа — аут-оф-сампл перформанс. Сайт отлично демонстрирует концепцию курвафиттинга и почему не надо торговать закурвафиченные стратегии в реале =)

3. Survivorship bias (или «ошибка выжившего») — тоже серьезная проблема. Если приводить пример из жизни — проще всего этот байес описывается фразой «Эх, если бы я в 90-е делал то же самое, что делал Абрамович, то я бы сейчас...», при этом на месте многоточия говорящему представляются виллы, яхты и рыбки. Когда на самом деле, объективно, если бы он делал то же, что Абрамович в 90-е — то с вероятностью 98% на месте многоточия должны быть кресты, надгробия и могилки, без яхт и рыбок. Соответственно, survivorship bias — это когда вы для бэктеста берете живых абрамовичей, но забываете взять тех, которые сейчас покоятся на кладбище — а в 90-е все они были живы, и было заранее неизвестно, кто из них доживет до 2017-го. В принципе, survivorship bias является разновидностью selection bias'а, но более хитрой, поэтому и выделяется отдельно. Основное его проявление — это когда при создании базы данных для исторического тестирования забывают включить в нее данные об акциях, которые уже по разным причинам не торгуются. А причины могут быть самые плохие — включая банкротство и падение цены на 90+% в течение одного дня. Пример для российского рынка — ЮКОС (тикер YUKO). В свое время (до ареста Ходора) это была одна из голубых фишек российского рынка акций, вы бы наверняка торговали ей в то время. Но после известных событий акция долго падала в цене, пока наконец не делистнулась. Если вы забыли включить ее в свою базу акций — это пример survivorship bias'а. Если подобные акции отсутствуют в бэктесте (но, несомненно, будут присутствовать в реальной торговле) — результаты такого бэктеста получатся завышенными.

Более тяжелые источники оверфиттинга:

4. Hindsight bias (которую я бы литературно перевел на русский как «ошибка ясновидения») — пожалуй, самая тяжело устранимая проблема всех бэктестов, и одна из самых хитрых и опасных своей незаметностью для трейдеров, инвесторов и алготрейдеров. Именно вследствие нее вам всегда кажется, что деньги на рынке зарабатываются легко и непринужденно (в этом помогает реклама, сама агрессивно использующая hindsight bias и его собрата selection bias). При взгляде на графики акций и индексов вам же очевидно, что в начале нулевых вы бы купили Сбербанк и Роснефть (жаль, торговать начали позднее), а в 2008-м вы бы обязательно пошортили RIZ, откупив с плечом в 2009-м? Ну так вот — вы пали жертвой hindsight bias'а. Кажется, что его легко избежать при алгоритмической торговле (ведь все же делается по правилам — какое тут ясновидение?), однако это не так. У алгоритмистов hindsight bias выражается в отборе тех моделей, которые приемлемо работали на всей истории и доработали до настоящего времени (отсюда и hindsight — вы сразу «подсмотрели», что модели работали на всей истории). Однако в будущем часть этих моделей перестанет (по разным причинам) давать удовлетворительные результаты, а часть моделей, которая по дороге «сломалась», но которые вы бы ранее торговали до того, как они «сломались» — вы вообще не включили в бэктест из-за «ясновидения» (этот эффект можно еще отнести и к selection bias'у, о котором далее).

5. Selection bias («ошибка выбора») — это когда некто (разработчик моделей, инвестор или рекламщик) выбирает стратегии или активы, которые нужным образом перформили на истории (росли, или на которых хорошо работал некий алгоритм), и утверждает, что в будущем можно достичь аналогичных результатов, работая с этими активами. Эту ошибку можно встретить практически в каждом 2-м посте на СЛ, посвященном алготрейдингу, и на *каждом* сайте любого брокера:
1) Когда вас призывают покупать криптовалюты только на основании того, что за последние несколько лет они выросли на порядки — это selection bias. Говорящие неявно подразумевают, что в будущем криптовалюты продолжат расти с той же скоростью — но это невозможно чисто физически.
2) Когда вам (на сайте любого брокера внизу странички) показывают только растущие графики и говорят, что вот «можно было заработать 100500%, купив вот эти акции» — это selection bias. Брокер выбрал из всех акций выросшие сильнее всех и пиарит это как ожидаемый доход. Но это не ожидаемый доход. Это акции, которые скорее всего вы бы не купили в начале периода, на котором считается доходность.
3) в конце мая 2015-го трэш-УК Сбербанка «Сбербанк ассет менеджмент» запустила фонд «Биотехнологии», в котором фактически перепродавала лохамсвоим любимым клиентам етф IBB с доп. комиссией 2% годовых. Реклама у фонда была что-то вроде «самый динамичный сектор, выросший на 250% за последние 5 лет» (так оно и было, если посмотреть на график IBB до лета 2015-го). Что происходило с фондом потом — можно посмотреть на сайте или на скрине ниже. Ребята (и их инвесторы) пали типичной жертвой selection bias'а — выбрали то, что сильнее всего росло на истории. По иронии судьбы анализировали перформанс за 5 лет — то есть играли *против* известного квантам value factor'а (то, что сильнее всего росло за последние 5 лет — андерперформит, и наоборот). Итог: S&P с тех пор прибавил 160%, IBB — упал на 13%. Не позавидуешь лохаминвесторам.
Набросок конспекта лекции про оверфиттинг - полезно всем

4) регулярно нам рассказывают (например smart-lab.ru/blog/451309.php), как можно заработать на всяких сервисах автоследования, если выбрать вот эти 4 супер-стратегии, и собрать из них портфель. Когда слышите про «возьмите вот эти 3 акции», или «возьмите вот эти 4 супер-стратегии» на основании того, что они хорошо перформили какое-то последнее время, и составьте из них еще более суперский портфель — «в аут» (побуду немного Мовчаном). Это типичный hindsight bias, в жесткой форме, вам продают «Фонд биотехнологий» на том основании, что он хорошо вырос за последние 5 лет. Вы можете и сами в этом убедиться, открыв топ стратегий комона по годам (https://www.comon.ru/info/codex/?id=94).
Вот список топов 16-го года на срочном рынке:
Набросок конспекта лекции про оверфиттинг - полезно всем
А вот список топов 17-го года:
Набросок конспекта лекции про оверфиттинг - полезно всем
Нашли хоть одно пересечение? Вот именно. И за другие годы то же самое! А если вы откроете почти любую стратегию из списка ТОПов 2016-го года и посмотрите, как они перформили в 2017-м — получите почти сплошной сливандос. Я предлагал автору оптимальных портфелей из стратегий комон помочь сделать анализ правильно, без selection & hindsight bias'ов — но он не пожелал этим заняться. Видимо, сам он понимает исход этой затеи.

6. Изменение внешних параметров (правила работы биржи, макроэкономические и геополитические параметры) — пожалуй, наиболее сложная причина, практически вообще не поддающаяся минимизации overfitting risk'а. Проблема из названия, думаю, ясна — на рынках меняютя «правила игры», что приводит модели в неработоспособность. Примеры:
1) stock decimilization (это когда в начале нулевых стоки стали котироваться в центах, а не в долях), что убило не только большую часть маркет-мейкерского бизнеса (за счет существенного сокращения спрэдов), но и некоторые технические стратегии (еще в 90-е дневные тренды на СнП работали, в нулевые — уже нет).
2) Политика околонулевых процентных ставок. Она привела к «вымиранию» большинства стратегий типа «кэрри» в бондах и валютах (потому что это самое «кэрри» практически обнулилось, а соответствующие риски никуда не делись), а также ряда других.
3) Появление мощных алго-фондов, HFT-трейдинга — также привело к «изменению правил игры», любые неэффективности быстрее устраняются, многие «классические» стратегии стали работать хуже или вообще перестали работать.

Надеюсь, текст получился полезным, буду рад услышать комментарии / замечания / дополнения.

★103
109 комментариев
Спасибо! Читал про все эти биасы из различных источников, но здесь все собрано в один пост. А что всё-таки с 5.4 пунктом делать? Брать историю сервисов и помесячно тестировать и перестраивать портфель на основе каких-то критериев? И смотреть какой критерий работает, а какой нет?
avatar
JITF, что делать — постараюсь подробно разобрать в продолжении. Но вкратце — да, все верно написали.
avatar
MadQuant, Спасибо за достойный труд. На этом ресурсе это редкое явление…
avatar
JITF, кажется это гениально :)
единственно, что же всё-таки значит «работает»
это уроборос получается. либо мы что-то делаем мучаемся посерёдке и сравниваем в конце какие-то результаты. либо мы случайно рекомбинируем параметры просто сравниваем в конце какие-то результаты и всё.
чем принципиально сравнение помесячно отличается от сравнения в конце.

а так, идея повыбирать те факторы, которые влияют на результат из помесячных перестроений — это круто. но вот только не понятно, как оценивать результат. «какой критерий работает» — что это значит? мне кажется это и есть самое важное знание. а уж где рекомбинировать (перестраивать) портфель, в самом начале или каждый месяц — это детали.
avatar
ПBМ, например, берем следующий критерий: шарп системы > 10. каждый месяц отбираем из всех систем только системы, удовлетворяющие этому критерию. инвестируем в них на месяц. через месяц делаем отбор систем еще раз. если за год таких переборов у нас прибыль (ну или просадка удовлетворительная, это что инвестору важно), то критерий потенциально годится для отбора систем — «работает».
avatar
JITF, пусть у меня есть какя-то система. Она уже усть результат подгонки. Вы к ней пристраиваете помесячный фильтр вкл/выкл, и начинаете второй этап подгонки — уже фильтра. Вообще говоря вероятность переоптимизации только вырастает. Автор может так делать, он берет ЕТФ с долгой историей, стационарным управлением и разными базисами (активами). С портфелем систем и, тем более, с портфелем чужих эквити, не вижу способа уйти от переподгонки таким способом.
avatar
SergeyJu, да, согласен, будет вторая оптимизация. Может, как вариант, на основе критериев отбирать список систем-кандидатов. Но инвестировать только в те из списка, которые дают приемлемый доход/риск и сидеть в них до конца, пока система не сломается.
avatar
JITF, у меня нет готового решения. Кстати, не всегда ясно и с поломкой системы. Даже новый максДД не является достаточным критерием поломки.
avatar
SergeyJu, это да, еще одна сложность. где-то видел у товарища правило: пробили макс дд, следовательно останавливаем торговлю и считаем, что система сломалась, до тех пор пока она не отобьет половину этой просадки обратно. тогда она опять может быть кандидатом в портфель.
avatar
JITF, пардон, не туда нажал
avatar
JITF, да, все вокруг ДД обычно крутится.
avatar
Но вот что странно, де-факто моя оптимизация шла на данных 2017-го, но ни одна из стратегий на скрине в оптимальный портфель не попала.  Почему?  Возможно какие то выпали из-за отсутствия автоследования,  другие потому что начались после 01.02.2017, но чтобы ни одна не попала… Зато попала одна из списка 2016, хотя опять же подчеркну,  что оптимизация шла по 2017-му.
avatar
А. Г., детали не интересны. Методология в корне неверна — вот проблема, а что там куда попало-не попало — это частности.  Из на 100% обновляемого каждый год списка топовых стратегий комона можно только заключить, что в следующем году топовые стратегии будут новые, поэтому обещанных 40+% годовых на рекомендованных портфелях мы не дождемся (поскольку 40+ дают только топовые стратегии ин-сампл).
avatar
MadQuant,  Вы рассматриваете топовые по одному показателю -  доходность. А этот показатель мною рассматривается только на последнем этапе,  а отбор попадают все с положительной доходностью,  хоть 5% годовых,  хоть 300%+ в год… И предварительный отсев идёт по совсем другим показателям.  Потому и нет одной части топов 2017 в оптимальном портфеле (другая часть,  как выяснилось,  вообще закрыта для автоследования и отсеялась сразу).  А периодический пересмотр -  нормальная практика.  Тем более,  что появятся новые авторы,  которые не рассматривались из-за коротких эквити.  А что касается стратегий в США,  то я уже ни раз говорил и предупреждал: это портфель для растущего рынка,  потому что,  в отличии от России,  там в 2016-2017 сильных падений не было,  а стратегии начали работать в 2016-м. И наконец главное: всегда говорил и буду говорить: «доходность -  это то,  что дарит нам нестабильным рынок,  а просадки,  это то,  что мы регулируемая сами».  Поэтому добиваться на тесте одинаковых доходностей для разных периодов и уж тем более их максимизировать -  это путь в переоптимизацию и самое главное к неправильным ожиданиям. Я даже на ютубканале по этому поводу целое видео выложил про факторный анализ эквити по разным состояниям рынка. 
avatar
А. Г., с этими утверждениями я полностью согласен. Но это не отменяет того факта, что вы по 17-му году отобрали некий набор стратегий, который в нем нормально работал, и на 17-м же годе смотрите их перформанс. Это акуратом определение hindsight bias'а. Вы сделайте отбор стратегий честно по данным 16-го года (или раньше), не подглядывая в 17-й, соберите из них портфель, и потом смотрите, как бы он работал в 17-м году — это будет честный анализ (если в нем еще будет избегаться survivorship bias).
А так — не вижу смысла полемизировать. Могу только сделать прогноз, что если рынок в этом году будет примерно в нулях, как и в прошлом — 40+% на публикуемых супер-портфелях мы не увидим, потому что эти портфели hindsight bias'нуты.
avatar
MadQuant, год — это ни о чем. Или надо брать много лет, чтобы покрыть как минимум типичный бизнес цикл, для выбора устойчивых, не слишком коррелированных систем, или анализировать схему ротации.
avatar
SergeyJu, системы автоследования к сожалению так долго не живут. по крайней мере, из опыта моих наблюдений.
avatar
SergeyJu,  и много лет ни о чем,  если управляющий пересматривает стратегии чаще,  чем раз в полгода. 
avatar
А. Г., именно, значит что, бороться и искать, найти и засекретить? :)
avatar
SergeyJu, год — это уже более-менее нормальный период, по которому можно анализировать ковариации стратегий, свойства эквити и компоновать портфель. А ретурн будущего года предсказать вы все равно не сможете ни по году, ни по десяти годам истории, поэтому вам столько не надо.
Другое дело, что судя по индексу стратегий комона их ожидаемый ретурн — в районе 0, поэтому навряд ли любой «оптимальный портфель» как угодно собранный будет иметь сильно лучшую доходность.
avatar
MadQuant, на нестационарность рынка накладывается нестационарность действий управляющих. Как избежать переподгонки при манипуляциях с выборочными ковариационными матрицами?
avatar
SergeyJu, может быть, и никак. Можно пробовать использовать при оптимизации shrinkage и дополнительные ограничения, вроде ограничения доли одного управляющего. Возможно, с «управляющими» такая оптимизация вообще не работает (я применяю ее только к простым моделям, у которых ковариационные характеристики относительно стабильны).
Еще один вариант — если есть доступ не только к эквити, но и к позициям — можно считать ковариацию по позициям, это в принципе даже сильно точнее, чем по ретурнам.
avatar
MadQuant,  я уже писал Вам,  что там куча стратегий началась после июня 2016-го. Откуда у меня данные за 2016-й? Хотя по моим критериям отобрались стратегии,  работавшие с 2016-го и ранее (кроме США). Но только «соперников»  в 2016-м у них не будет по тем же критериям отсева. Да и нет там никаких «супердоходностей»  нигде,  кроме малоликвидов с плечом и США.  Ну так первые в сбалансированный портфель и не попали.  Потому что в моем подходе доходность вторична. Скорее «скорость входа в просадку»  первична, а этот показатель устойчив с точностью до смены «парадигмы»,  например,  тренд на контртренд.  Ну так на  последнее я «карты»  всех отобранных стратегий составлял,  чтобы сверить. Единственная ошибка,  которая может случится: автор сменил парадигму в ноябре-декабре 2017.
avatar
А. Г., а Вы можете определить, если подумать, вход в просадку вынужден рынком, или специфический косяк данной стратегии?
avatar
SergeyJu,  конечно можно,  но если есть стратегии,  всегда входили медленно,  то это более «подозреваемые вменяшки»,  а потом мой подход к анализу коррелированности точно на первом шаге отберёт такую «вменяшку»,  а из остальных будет выбирать тех,  кто её «дополняет»  по дням. 
avatar
А. Г., ну если они не имеют достаточно истории — значит не надо их рассматривать, рассматривайте то, что имеет достаточно истории. Комон не вчера начался, там вон топ есть и 16-го года, и 15-го, и 14-го. Чем он вас не устраивает? Тем, что все слились? Так это повод задуматься, есть ли тогда вообще смысл выбирать из вновь прилетевшей кучи Г. что-то «хорошее», или все-таки надо признать, что перед нами — просто куча Г., и ничего разумного оттуда выудить не получится.
avatar
MadQuant,  Вам уже SergeyJu ответил,  что для отсева «невменяшек»  года достаточно.  Вы же сами написали про изменяющиеся условия.  Но эти изменения не происходят «гэпом»,  а значит,  если мы хотим,  чтобы что-то было устойчиво,  значит должны смотреть не далеко назад,  на то,  что было сравнительно недавно.  Посмотрите на Вами же проведению первую картинку,  там же невооруженным глазом видно,  что снижение доходности началось ещё в конце теста.  Да и потом конечно любой тест надо подвергать сомнению.  И преодолевается оно порой самым неожиданным образом.  Я уже писал историю,  как убедился в том,  что в созданном мной есть что-то есть: см.  Восьмая «ступенька»  здесь
www.howtotrade.ru/nw/index.php?p=1296937244
Что касается комона,  то в ликвидных фьючерсах мне уверенность придаёт наличие такого автора,  как El-Primero,  хотя в портфель он не попал именно из-за сильной корреляции с оптимальным портфелем.  Зато его эквити 2014-2016 мне понятна: это же примерно Суперриск Форума.  Значит можно независимо находить закономерности и зарабатывать на них. 
avatar
А. Г., ну так отлично. Возьмите стратегии ТОП2014 или ТОП2015 с комона, отсейте «невменяшек» и давайте посмотрим, как работает дальше то, что останется. Только формальные критерии отсева заранее озвучьте, чтобы они потом не менялись под воздействием того же баеса. И давайте повторим это упражнение для всех лет начиная с 2014-го — так у нас будет 3 года более-менее аут-оф-сампл перформанса, которому можно доверять (на самом деле нет — надо еще воскресить все почившие «счета-трупы» и добавить в базу рядов, чтобы избежать «ошибки выжившего»)
avatar
MadQuant,  я не  собираюсь не пересматривать портфель  годами,  какой смысл в этой пустой работе?  Тем более,  что комон тогда не был «раскручен»  для внешних авторов.  У меня только стратегии финамовского трейдцентра останутся. Да и потом,  почему все время речь идёт о самых доходных,  если в мои портфели такие попали только для «перспективных»  акций и США.  Ну так я ни раз говорил,  что на падении рынка там риск. 
avatar
А. Г., неважно, как часто вы пересматриваете портфель. Вы либо делаете правильно, либо делаете ин-сампл оверфиттинг.
А смысл в работе такой, что можно будет понять, насколько «честный» перформанс в среднем хуже тех нереалистичных цифр, которые получаются выбором наилучших стратегий на некотором промежутке и анализом перформанса на нем же.
А то, что комон «не был раскручен» — вовсе не означает, что среднее качество стратегий с тех пор выросло. Я бы сказал, что оно в среднем не изменилось и осталось нулевым. Вон и индекс всех стратегий комона на главной это подтверждает.
avatar
MadQuant,  ну так я и не ищу «в среднем».  Кстати,  посмотрел и тор2015 на фондовом: все «живые»  стратегии оттуда стокпикинг на втором эшелоне.  Они все рассматривались,  но по моим критериям «проиграли»,  несмотря на высокую доходность и в 2017.
avatar
А. Г., после отсева явного неадеквата — навряд ли вы сможете получить долгосрочную доходность выше чем «в среднем». Снизить риски за счет диверсификации — да, но не повысить доходность.
avatar
MadQuant,  так и нет цели повысить доходность изначально.  Я же в первом вебинаре чётко очертил критерии оптимизации:

1. Доходность/просадка. 
2.  Корреляция эквити с натуральным рядом. 
avatar
А. Г., должна быть цель повысить доходность по сравнению со средней (равной нулю), иначе нет смысла торговать.
avatar
MadQuant,  это решается предварительным отбором: стратегии все годы должны были заканчивать в плюс.  Хоть 0,1%, хоть 1000% -  неважно.  Ещё был критерий: у автора в архиве не должно быть длительных (от 6 месяцев)  стратегий с минусом,  которые заменил на действующие.
avatar
MadQuant,  во,  стратегия в топе 2015-2017 на фондовом 

www.comon.ru/user/zhenya1991/strategy/detail/?id=7259

Но автоследование выключено по причине наличия акций,  запрещеных для автоследования в силу низкой ликвидности.  Соответственно в кандидатах не была. 
avatar
А. Г., ну графики — детский сад просто. Ни лог-шкалы, ни графика просадок, ни ретурны дневные не выгрузить — вообще ниче нет.
Вы же вроде имеете какое-то отношение к комону — объясните там людям, что нормальные инвесторы с таким шлаком работать никогда не будут?
avatar
MadQuant,  выгрузить нельзя,  но оцифровкой графика можно все вытащить (там есть значения при наведении мышки и калькулятор   за любой срок).  А предложение о возможности скачивания эквити в txt или csv будет  рассмотрено.  Оно тут уже высказывалось. Рисование графиков чисто технически сложная задача и решается не так быстро.  Сейчас приоритет рисовать так,  чтобы при выборе отрезка эквити рисовалось с нуля. 
avatar
А. Г., ну некогда мне заниматься оцифровкой графиков, ей богу. У меня позиция — что если конторе настолько плевать на клиента, что они не могут сделать удобный функционал для анализа — то не надо с такими людьми иметь дело и заниматься оцифровками графиков.
avatar
MadQuant,  да в понедельник поставлю вопрос о выгрузке цифр эквити в удобном формате.  Он и сейчас  есть,  но не для всех, а только для администрации и консультантов. Я имею права последнего.  Куча региональных менеджеров тоже имеют права консультантов. 
avatar
А. Г., поставьте. Я думаю, это может вам сильно добавить если не клиентов, то денег. Например, в текущем формате я с комоном работать не готов. Но если там появится нормальный функционал для анализа — будет любопытно. Глядишь, и получится что-нибудь удобоваримое, во что можно залить несколько лимончиков.
avatar
MadQuant,  специально посмотрел тор 2014.  Там 90% стратегий на демосчетах,  которые с развитием сервиса перенесли на «пользователя»  comon. Это «наследие»  старого комона,  когда любой пользователь мог завести демосчет и выставить его на публичное обозрение. 
avatar
А. Г., что это меняет? Вы считаете, на них заниженный перформанс, по сравнению с тем если бы они торговали в реале?
avatar
MadQuant,  «меняет»  то,  что все такие стратегии остановлены и смысла их рассматривать нет. 
avatar
А. Г., то есть вы за явное введение в бэктест survivorship bias'а, чтобы бэктест красивее был, я правильно мысль понял?
avatar
MadQuant,  о,  кстати,  нашёл «живого»  из тор2015.  

www.comon.ru/user/Robostock/strategy/detail/?id=1345

Она была в качестве «кандидата»,  но несмотря на 97% доходности в 2017-м в мой портфель не попала.  Потому что,  как я уже писал,  цель моей оптимизации не максимизация доходности. 
avatar
MadQuant, год — слишком мало для выбора по доходности, это очевидно. Но также очевидно, что года достаточно для отсева явных невменяшек. Для А.Г. остается небольшой массив «предположительно вменяшек». Вот что с ними делать дальше, мне как — то не очевидно. То есть рецептов много, уверенности в них нет. А у Вас есть рецепт для ограниченных по времени выборок?
avatar
SergeyJu,  вот-вот,   все точно сказано про «вменяшек»  и «невменяшек». А делать просто: если центрированное и нормированное распределение приращений эквити на аут от сэмпле не отличается от теста,  то «полет нормальный»  с точностью до независимого фактора: устраивает  или не устраивает доходность (я уже писал,  что этот показатель  нестационарен априори и его значения скорее важны для бизнеса,  а не для теории).   Что-то «сломалось» -  смотреть кто из включенных «виноват»  и разбираться почему.
avatar
А. Г., у Вас «вынуждающее колебание», то есть рынок, нестационарно, а потому работа с результатами так, как если бы они были стационарными, методически неверно.
Вы же делали прекрасную вещь — кластеризацию состояний рынка. Я бы отсюда плясать начал.
avatar
SergeyJu,  я убираю нестационарность среднего (доходность)  и дисперсии (волатильность) .  И рассматриваю только стационарность оставшейся гистограммы.  И то это критерий на «вменяемость»,  а не полный отбор. 
avatar
А. Г., Вы частично убираете не рыночную (вынуждающую) нестационарность, а нестационарность каждой эквити по её собственным характеристикам. Мне не представляется это правильным. 
avatar
SergeyJu,  я как раз убираю рыночную нестационарность,  потому что доходность и волатильность эквити зависят от некоторых характеристик рынка,  что у тренда,  что у контртренда ( а третьего и не дано). 
avatar
А. Г., я бы предпочел иной подход. 
avatar
SergeyJu,  это только критерий на «вменяшек». 
avatar
Хорошая статья, плюсануть не могу.
avatar

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

Это всё другими методами борется, и что самое смешное, перцы со штангенциркулями, ну или другими измерительными приборами, отлично это знают, не рокет саенс

Тоже пост что-ли написать ) я уже писал, чот больше неохота бесплатно. Может Маркидонова как-то попробует убедить? )

Zweroboi, а что вы такого писали за что вам стоит платить?) 

не нашёл ничего на столько интересного и полезного, хотя про пени любопытно 

avatar
Igr, да я вообще хз за что мне платят )
Отличный материал опытного думающего человека! Буду рад продолжению. По идее 1 и 3 просто ошибки по сути, устраняются легко. 2, 4 и 5 по идее лечатся тестами на большой выборке, но вот хорошие данные для тестов о-очень сложно найти. А вот 6 действительно камень преткновения. Как бы с текущими эффективностями трейдинг бы вообще не исчез.
avatar
Cheshire Cat, тестами на большой выборке особо ничего не лечится, только если в теории. Торгуешь-то ты всё равно получается на маленькой, а там чисто теоретически может произойти всё что угодно ) Я даже не имею в виду лебедей и прочее, матожидание в плюс не отменяет наличия дисперсии
Zweroboi, это да, торгуем на маленькой выборке. Но из-за тестирования на большой мы теоретически получили стратегию, которая умеет работать с неблагоприятными периодами. А вот наличие фактора 6 сводит на нет всю малину =(
avatar
Я бы разделял оверфиттинг вызванный черезмерной сложностью модели от вызванного изменением структуры данных во времени.
avatar
ivanovr,  так в тексте разделяется. Первое — это 2) curvefitting по сути, а второе — это 6) изменение внешних параметров
avatar
MadQuant, скажу по-другому: второе я бы не называл оверфиттингом :)
avatar
ivanovr, а в начале статьи и написано — это не виды оверфиттинга, это источники, его вызывающие. В основном это все «bias»'ы — то есть смещения оценок перформанса метода торговли (как правило, вверх), вызванные конкретными причинами (которые и описаны).
avatar
Это в закладки, плюсую. Бриллиант среди мусора, который обычно публикуется на SL. Жду следующих постов. 
avatar
Почему переход с долей на центы убил дневные тренды? 
avatar
anatolyutkin,  видимо,  речь идёт о трендах с фиксированным размером в %% или центах. Если рассматривать относительно локальной волатиности,  то дневные тренды никуда не делись. Но  волатильность в среднем падает (что логично с ростом ликвидности),  а значит и доходность на этих дневных трендах тоже стала  существенно ниже в среднем.  Наверное это имелись ввиду. 
avatar

Круть!  давно не читал такого на смартлабе, ради таких постов и стоит тут сидеть) 

ждём ещё постов от вас 

спасибо

в топ

avatar
т.е. получается по профиту за всё время сравнивать бессмысленно?
ок.
допустим у нас есть два массива — массив цен за всё время
и массив доходностей посделочно или помесячно, как угодно.
для N стратегий.

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

а надо как-то выбирать оптимум на основе сравнения каждого периода? и допустим давать каждой стратегии +1 за каждый выигранный период.
а затем брать ту, у которой больше ++? но чем это будет отличаться от сравнения финрезов в конце?
avatar
ПBМ, я копался в этой теме. Я не нашел простой альтернативы идее брать максимально доступные промежутки времени. Всякие рандом форесты со случайным  делением выборки на оптимизируемую  и проверочную преимущества не показали, например. 
avatar
SergeyJu, вот-вот. 
avatar
ПBМ, я не отбираю ЛУЧШУЮ систему. Я пытаюсь раздать системам веса, включая нулевые, для получения качественного портфеля. Простейший подход — выравнивание риска. Более сложный подход должен включать в себя анализ связей в получаемых эквити, в примитивном смысле — ковариаций.
avatar
Не, ну вот взял и написал полезную вещь. Даже непривычно уже такое тут читать. Подписался.
Kapral, именно! Поэтому я и написал, что исторические данные сложно достать ;-) Например РФ: даже если удалось выудить откудато все ордеры с начала 90х по всем биржам РФ, это не сильно поможет, т.к. после открытия границ компании были сильно недооцененными и рынок вырос в разы (чем и пользовались умные западные ребята). Но больше такого роста не будет. И с недвижимостью также.
avatar
курвафиттинг ... 
Дело в том, что в изменениях цен существуют некоторые параметры, по которым локально можно рассчитывать точки разворота. А далее фокус в том, что накурвафиченные эти параметры меняются достаточно медленно (или резко, но редко). Это позволяет 'увидеть разворот' и он подтвердится с вероятностью существенно большей 0,5.
avatar
MS, интересно, а подробнее нельзя?
avatar
MadQuant, было бы очень интересно почитать про используемый алгоритм оптимизации системы: подбор параметров, фильтрация сигналов, IS/OOS тестирование и т.п. 
avatar
fireburned, постараюсь описать во второй части опуса, но здесь никаких особых секретов нет. Просто надо понимать, что оверфит появился уже тогда, когда вы только решили сделать систему. Дальше в зависимости от ее сложности — его больше или меньше. Ну и дальше надо просто уметь с ним работать и оценивать реалистичный перформанс системы с учетом того, что в ней есть оверфит.
avatar
Отличный пост! Спасибо.
avatar
тогда надо делать систему, не использующую никакие числовые константы
avatar
Иван Собакин, это совсем не гарантия. Во-первых, hindsight bias — вы можете отбирать только те стратегии в систему, которые работали на истории, даже без параметров. И это приведет к оверфиту. Во-вторых — п. (6). Можно сделать идеальную систему без единого параметра — но она сломается вследствие изменений на рынках.
avatar
Иван Собакин, таких не существует. Как минимум одно число — таймфрейм уже будет вшито в систему. ;)
avatar
JITF, даже таймфрейм система может автоматически подбирать сама, определяя, что хорошо работало на истории. Поэтому системы без параметров (точнее, само-подстраивающиеся) возможны, более того, для избежания курвафиттинга — это практически единственный вариант.
avatar
MadQuant, это круть совсем :) я не слишком глубоко забирался в дебри само-обучения, но мне показалось, что все равно там какие-то параметры уже самого процесса само-обучения заводятся. Например, количество кластеров данных или выбор типа нейросетей. Т.е. уже более глобальный уровень курвафитинга.
avatar
JITF, зачем вам кластеры данных или нейросети? Вот торгуете вы тренды — например, по логике «если цена за X дней выросла на Y% — покупать» — где тут нейросеть? Просто с утречка при запуске система обновляет исторические данные, оптимизирует на истории X & Y (например, максимизируя шарп на всей истории до текущего дня) — и торгует с этими параметрами.
avatar
MadQuant, так «с утречка» уже параметр. А может каждое второе утро или по пятницам только? Тоже надо оптимизировать. :) Поэтому не понимаю я как можно систему без параметров сделать.
avatar
JITF, это я условно сказал. «С утречка» — это значит регулярно. Как часто — зависит от частотности системы. Я делал это для систем, которые торговали раз в день — поэтому они делали это «с утречка» перед каждым запуском.
P.S. Кстати, частоту рекалибровки система тоже может рекалибровать =)
avatar
MadQuant, это понятно. Не верю я в системы без параметров ;)
avatar
JITF, а я верю, потому что я их делал и торговал. Результаты потрясающие.
avatar
MadQuant, самоподстройка всего, что только возможно? это круть. :)
avatar
MadQuant, параметры есть, они просто регулярно подстраиваются тем или иным способом. Легко реализуемая конструкция, если она жесткая. Но сама жесткость конструкции, её априорная заданность как бы и есть курвафитинг.
avatar
SergeyJu, это уже не курвафиттинг, это уже непараметрический оверфиттинг, вызванный hindsight/selection bias'ом. С ним надо бороться другими методами.
avatar
MadQuant, буду ждать от Вас продолжения.
avatar
JITF, тогда нужно избавиться от таймфрейма и перейти на тики
avatar
Иван Собакин, таймфрейм — это параметр, а тики, минуты, часы — его значения. выбор тиков — это уже оптимизация. :)
avatar
JITF, как раз тики вне времени. Они же произвольно приходят в разные моменты времени в отличии от свечей. Поэтому если брать для расчетов тиковый график, то мы избавляемся от времени
avatar
Иван Собакин, только внутри дня.
avatar
Хвала Богам!!! Наконец-то сегодня про торговлю!!! Не про политику… Спасибо!!!! 

avatar
спасибо. очень здоровский пост.
avatar

Хорошие, толковые статьи. Много полезного. За это и спасибо.

Но вот реклама Пурнова на фоне статей — эт пиндец какойто....


теги блога MadQuant

....все тэги



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