MadQuant
MadQuant личный блог
03 марта 2018, 23:51

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

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

Можно часто слышать от тех, кто торгует алгоритмически, да и просто систематически, такие понятия как «оверфиттинг», «курвафиттинг», «зафит» и прочие ругательства с корнем «фит». Что все это значит?
На самом деле, все эти слова, как правило, используются для описания одного и того же явления, являющегося врагом всех трейдеров, торгующих систематически и пытающихся оценить исторический перформанс своих торговых логик — а именно, что «живой» аут-оф-сампл перформанс на реальном счете, как правило, хуже ожиданий, полученных ими при проверке своих идей на истории. Например, при тестировании торговой логики на истории трейдер с помощью своей модели «зарабатывал» 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-трейдинга — также привело к «изменению правил игры», любые неэффективности быстрее устраняются, многие «классические» стратегии стали работать хуже или вообще перестали работать.

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

109 Комментариев
  • JITF
    04 марта 2018, 00:04
    Спасибо! Читал про все эти биасы из различных источников, но здесь все собрано в один пост. А что всё-таки с 5.4 пунктом делать? Брать историю сервисов и помесячно тестировать и перестраивать портфель на основе каких-то критериев? И смотреть какой критерий работает, а какой нет?
      • alt
        04 марта 2018, 09:29
        MadQuant, Спасибо за достойный труд. На этом ресурсе это редкое явление…
    • П М
      04 марта 2018, 10:41
      JITF, кажется это гениально :)
      единственно, что же всё-таки значит «работает»
      это уроборос получается. либо мы что-то делаем мучаемся посерёдке и сравниваем в конце какие-то результаты. либо мы случайно рекомбинируем параметры просто сравниваем в конце какие-то результаты и всё.
      чем принципиально сравнение помесячно отличается от сравнения в конце.

      а так, идея повыбирать те факторы, которые влияют на результат из помесячных перестроений — это круто. но вот только не понятно, как оценивать результат. «какой критерий работает» — что это значит? мне кажется это и есть самое важное знание. а уж где рекомбинировать (перестраивать) портфель, в самом начале или каждый месяц — это детали.
      • JITF
        04 марта 2018, 11:06
        ПBМ, например, берем следующий критерий: шарп системы > 10. каждый месяц отбираем из всех систем только системы, удовлетворяющие этому критерию. инвестируем в них на месяц. через месяц делаем отбор систем еще раз. если за год таких переборов у нас прибыль (ну или просадка удовлетворительная, это что инвестору важно), то критерий потенциально годится для отбора систем — «работает».
        • SergeyJu
          04 марта 2018, 13:33
          JITF, пусть у меня есть какя-то система. Она уже усть результат подгонки. Вы к ней пристраиваете помесячный фильтр вкл/выкл, и начинаете второй этап подгонки — уже фильтра. Вообще говоря вероятность переоптимизации только вырастает. Автор может так делать, он берет ЕТФ с долгой историей, стационарным управлением и разными базисами (активами). С портфелем систем и, тем более, с портфелем чужих эквити, не вижу способа уйти от переподгонки таким способом.
          • JITF
            04 марта 2018, 21:00
            SergeyJu, да, согласен, будет вторая оптимизация. Может, как вариант, на основе критериев отбирать список систем-кандидатов. Но инвестировать только в те из списка, которые дают приемлемый доход/риск и сидеть в них до конца, пока система не сломается.
            • SergeyJu
              04 марта 2018, 21:32
              JITF, у меня нет готового решения. Кстати, не всегда ясно и с поломкой системы. Даже новый максДД не является достаточным критерием поломки.
              • JITF
                05 марта 2018, 00:34
                SergeyJu, это да, еще одна сложность. где-то видел у товарища правило: пробили макс дд, следовательно останавливаем торговлю и считаем, что система сломалась, до тех пор пока она не отобьет половину этой просадки обратно. тогда она опять может быть кандидатом в портфель.
                • (Сalming)
                  05 марта 2018, 08:31
                  JITF, пардон, не туда нажал
                • SergeyJu
                  05 марта 2018, 09:50
                  JITF, да, все вокруг ДД обычно крутится.
  • А. Г.
    04 марта 2018, 00:06
    Но вот что странно, де-факто моя оптимизация шла на данных 2017-го, но ни одна из стратегий на скрине в оптимальный портфель не попала.  Почему?  Возможно какие то выпали из-за отсутствия автоследования,  другие потому что начались после 01.02.2017, но чтобы ни одна не попала… Зато попала одна из списка 2016, хотя опять же подчеркну,  что оптимизация шла по 2017-му.
      • А. Г.
        04 марта 2018, 08:16
        MadQuant,  Вы рассматриваете топовые по одному показателю -  доходность. А этот показатель мною рассматривается только на последнем этапе,  а отбор попадают все с положительной доходностью,  хоть 5% годовых,  хоть 300%+ в год… И предварительный отсев идёт по совсем другим показателям.  Потому и нет одной части топов 2017 в оптимальном портфеле (другая часть,  как выяснилось,  вообще закрыта для автоследования и отсеялась сразу).  А периодический пересмотр -  нормальная практика.  Тем более,  что появятся новые авторы,  которые не рассматривались из-за коротких эквити.  А что касается стратегий в США,  то я уже ни раз говорил и предупреждал: это портфель для растущего рынка,  потому что,  в отличии от России,  там в 2016-2017 сильных падений не было,  а стратегии начали работать в 2016-м. И наконец главное: всегда говорил и буду говорить: «доходность -  это то,  что дарит нам нестабильным рынок,  а просадки,  это то,  что мы регулируемая сами».  Поэтому добиваться на тесте одинаковых доходностей для разных периодов и уж тем более их максимизировать -  это путь в переоптимизацию и самое главное к неправильным ожиданиям. Я даже на ютубканале по этому поводу целое видео выложил про факторный анализ эквити по разным состояниям рынка. 
          • SergeyJu
            04 марта 2018, 10:59
            MadQuant, год — это ни о чем. Или надо брать много лет, чтобы покрыть как минимум типичный бизнес цикл, для выбора устойчивых, не слишком коррелированных систем, или анализировать схему ротации.
            • JITF
              04 марта 2018, 11:08
              SergeyJu, системы автоследования к сожалению так долго не живут. по крайней мере, из опыта моих наблюдений.
            • А. Г.
              04 марта 2018, 11:10
              SergeyJu,  и много лет ни о чем,  если управляющий пересматривает стратегии чаще,  чем раз в полгода. 
              • SergeyJu
                04 марта 2018, 11:15
                А. Г., именно, значит что, бороться и искать, найти и засекретить? :)
              • SergeyJu
                04 марта 2018, 14:13
                MadQuant, на нестационарность рынка накладывается нестационарность действий управляющих. Как избежать переподгонки при манипуляциях с выборочными ковариационными матрицами?
          • А. Г.
            04 марта 2018, 11:19
            MadQuant,  я уже писал Вам,  что там куча стратегий началась после июня 2016-го. Откуда у меня данные за 2016-й? Хотя по моим критериям отобрались стратегии,  работавшие с 2016-го и ранее (кроме США). Но только «соперников»  в 2016-м у них не будет по тем же критериям отсева. Да и нет там никаких «супердоходностей»  нигде,  кроме малоликвидов с плечом и США.  Ну так первые в сбалансированный портфель и не попали.  Потому что в моем подходе доходность вторична. Скорее «скорость входа в просадку»  первична, а этот показатель устойчив с точностью до смены «парадигмы»,  например,  тренд на контртренд.  Ну так на  последнее я «карты»  всех отобранных стратегий составлял,  чтобы сверить. Единственная ошибка,  которая может случится: автор сменил парадигму в ноябре-декабре 2017.
            • SergeyJu
              04 марта 2018, 11:43
              А. Г., а Вы можете определить, если подумать, вход в просадку вынужден рынком, или специфический косяк данной стратегии?
              • А. Г.
                04 марта 2018, 12:21
                SergeyJu,  конечно можно,  но если есть стратегии,  всегда входили медленно,  то это более «подозреваемые вменяшки»,  а потом мой подход к анализу коррелированности точно на первом шаге отберёт такую «вменяшку»,  а из остальных будет выбирать тех,  кто её «дополняет»  по дням. 
              • А. Г.
                04 марта 2018, 15:25
                MadQuant,  Вам уже SergeyJu ответил,  что для отсева «невменяшек»  года достаточно.  Вы же сами написали про изменяющиеся условия.  Но эти изменения не происходят «гэпом»,  а значит,  если мы хотим,  чтобы что-то было устойчиво,  значит должны смотреть не далеко назад,  на то,  что было сравнительно недавно.  Посмотрите на Вами же проведению первую картинку,  там же невооруженным глазом видно,  что снижение доходности началось ещё в конце теста.  Да и потом конечно любой тест надо подвергать сомнению.  И преодолевается оно порой самым неожиданным образом.  Я уже писал историю,  как убедился в том,  что в созданном мной есть что-то есть: см.  Восьмая «ступенька»  здесь
                www.howtotrade.ru/nw/index.php?p=1296937244
                Что касается комона,  то в ликвидных фьючерсах мне уверенность придаёт наличие такого автора,  как El-Primero,  хотя в портфель он не попал именно из-за сильной корреляции с оптимальным портфелем.  Зато его эквити 2014-2016 мне понятна: это же примерно Суперриск Форума.  Значит можно независимо находить закономерности и зарабатывать на них. 
                  • А. Г.
                    04 марта 2018, 16:26
                    MadQuant,  я не  собираюсь не пересматривать портфель  годами,  какой смысл в этой пустой работе?  Тем более,  что комон тогда не был «раскручен»  для внешних авторов.  У меня только стратегии финамовского трейдцентра останутся. Да и потом,  почему все время речь идёт о самых доходных,  если в мои портфели такие попали только для «перспективных»  акций и США.  Ну так я ни раз говорил,  что на падении рынка там риск. 
                      • А. Г.
                        04 марта 2018, 17:14
                        MadQuant,  ну так я и не ищу «в среднем».  Кстати,  посмотрел и тор2015 на фондовом: все «живые»  стратегии оттуда стокпикинг на втором эшелоне.  Они все рассматривались,  но по моим критериям «проиграли»,  несмотря на высокую доходность и в 2017.
                          • А. Г.
                            04 марта 2018, 17:49
                            MadQuant,  так и нет цели повысить доходность изначально.  Я же в первом вебинаре чётко очертил критерии оптимизации:

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

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

                        Но автоследование выключено по причине наличия акций,  запрещеных для автоследования в силу низкой ликвидности.  Соответственно в кандидатах не была. 
                          • А. Г.
                            04 марта 2018, 17:46
                            MadQuant,  выгрузить нельзя,  но оцифровкой графика можно все вытащить (там есть значения при наведении мышки и калькулятор   за любой срок).  А предложение о возможности скачивания эквити в txt или csv будет  рассмотрено.  Оно тут уже высказывалось. Рисование графиков чисто технически сложная задача и решается не так быстро.  Сейчас приоритет рисовать так,  чтобы при выборе отрезка эквити рисовалось с нуля. 
                              • А. Г.
                                04 марта 2018, 18:01
                                MadQuant,  да в понедельник поставлю вопрос о выгрузке цифр эквити в удобном формате.  Он и сейчас  есть,  но не для всех, а только для администрации и консультантов. Я имею права последнего.  Куча региональных менеджеров тоже имеют права консультантов. 
                  • А. Г.
                    04 марта 2018, 16:51
                    MadQuant,  специально посмотрел тор 2014.  Там 90% стратегий на демосчетах,  которые с развитием сервиса перенесли на «пользователя»  comon. Это «наследие»  старого комона,  когда любой пользователь мог завести демосчет и выставить его на публичное обозрение. 
                      • А. Г.
                        04 марта 2018, 17:10
                        MadQuant,  «меняет»  то,  что все такие стратегии остановлены и смысла их рассматривать нет. 
                  • А. Г.
                    04 марта 2018, 17:00
                    MadQuant,  о,  кстати,  нашёл «живого»  из тор2015.  

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

                    Она была в качестве «кандидата»,  но несмотря на 97% доходности в 2017-м в мой портфель не попала.  Потому что,  как я уже писал,  цель моей оптимизации не максимизация доходности. 
      • SergeyJu
        04 марта 2018, 11:08
        MadQuant, год — слишком мало для выбора по доходности, это очевидно. Но также очевидно, что года достаточно для отсева явных невменяшек. Для А.Г. остается небольшой массив «предположительно вменяшек». Вот что с ними делать дальше, мне как — то не очевидно. То есть рецептов много, уверенности в них нет. А у Вас есть рецепт для ограниченных по времени выборок?
        • А. Г.
          04 марта 2018, 11:32
          SergeyJu,  вот-вот,   все точно сказано про «вменяшек»  и «невменяшек». А делать просто: если центрированное и нормированное распределение приращений эквити на аут от сэмпле не отличается от теста,  то «полет нормальный»  с точностью до независимого фактора: устраивает  или не устраивает доходность (я уже писал,  что этот показатель  нестационарен априори и его значения скорее важны для бизнеса,  а не для теории).   Что-то «сломалось» -  смотреть кто из включенных «виноват»  и разбираться почему.
          • SergeyJu
            04 марта 2018, 11:38
            А. Г., у Вас «вынуждающее колебание», то есть рынок, нестационарно, а потому работа с результатами так, как если бы они были стационарными, методически неверно.
            Вы же делали прекрасную вещь — кластеризацию состояний рынка. Я бы отсюда плясать начал.
            • А. Г.
              04 марта 2018, 12:27
              SergeyJu,  я убираю нестационарность среднего (доходность)  и дисперсии (волатильность) .  И рассматриваю только стационарность оставшейся гистограммы.  И то это критерий на «вменяемость»,  а не полный отбор. 
              • SergeyJu
                04 марта 2018, 13:59
                А. Г., Вы частично убираете не рыночную (вынуждающую) нестационарность, а нестационарность каждой эквити по её собственным характеристикам. Мне не представляется это правильным. 
                • А. Г.
                  04 марта 2018, 16:21
                  SergeyJu,  я как раз убираю рыночную нестационарность,  потому что доходность и волатильность эквити зависят от некоторых характеристик рынка,  что у тренда,  что у контртренда ( а третьего и не дано). 
                  • SergeyJu
                    04 марта 2018, 16:30
                    А. Г., я бы предпочел иной подход. 
                    • А. Г.
                      04 марта 2018, 17:16
                      SergeyJu,  это только критерий на «вменяшек». 
  • wrmngr
    04 марта 2018, 01:14
    Хорошая статья, плюсануть не могу.
  • Пафос Респектыч
    04 марта 2018, 01:41

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

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

  • Пафос Респектыч
    04 марта 2018, 01:49
    Тоже пост что-ли написать ) я уже писал, чот больше неохота бесплатно. Может Маркидонова как-то попробует убедить? )
    • Igr
      04 марта 2018, 09:37

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

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

  • Cheshire Cat
    04 марта 2018, 01:49
    Отличный материал опытного думающего человека! Буду рад продолжению. По идее 1 и 3 просто ошибки по сути, устраняются легко. 2, 4 и 5 по идее лечатся тестами на большой выборке, но вот хорошие данные для тестов о-очень сложно найти. А вот 6 действительно камень преткновения. Как бы с текущими эффективностями трейдинг бы вообще не исчез.
    • Пафос Респектыч
      04 марта 2018, 02:20
      Cheshire Cat, тестами на большой выборке особо ничего не лечится, только если в теории. Торгуешь-то ты всё равно получается на маленькой, а там чисто теоретически может произойти всё что угодно ) Я даже не имею в виду лебедей и прочее, матожидание в плюс не отменяет наличия дисперсии
      • Cheshire Cat
        04 марта 2018, 10:17
        Zweroboi, это да, торгуем на маленькой выборке. Но из-за тестирования на большой мы теоретически получили стратегию, которая умеет работать с неблагоприятными периодами. А вот наличие фактора 6 сводит на нет всю малину =(
  • Roman Ivanov
    04 марта 2018, 01:56
    Я бы разделял оверфиттинг вызванный черезмерной сложностью модели от вызванного изменением структуры данных во времени.
      • Roman Ivanov
        04 марта 2018, 02:45
        MadQuant, скажу по-другому: второе я бы не называл оверфиттингом :)
  • TradingKit
    04 марта 2018, 03:39
    Это в закладки, плюсую. Бриллиант среди мусора, который обычно публикуется на SL. Жду следующих постов. 
  • anatolyutkin
    04 марта 2018, 07:22
    Почему переход с долей на центы убил дневные тренды? 
    • А. Г.
      04 марта 2018, 09:03
      anatolyutkin,  видимо,  речь идёт о трендах с фиксированным размером в %% или центах. Если рассматривать относительно локальной волатиности,  то дневные тренды никуда не делись. Но  волатильность в среднем падает (что логично с ростом ликвидности),  а значит и доходность на этих дневных трендах тоже стала  существенно ниже в среднем.  Наверное это имелись ввиду. 
  • Igr
    04 марта 2018, 08:55

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

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

    спасибо

    в топ

  • П М
    04 марта 2018, 09:10
    т.е. получается по профиту за всё время сравнивать бессмысленно?
    ок.
    допустим у нас есть два массива — массив цен за всё время
    и массив доходностей посделочно или помесячно, как угодно.
    для N стратегий.

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

    а надо как-то выбирать оптимум на основе сравнения каждого периода? и допустим давать каждой стратегии +1 за каждый выигранный период.
    а затем брать ту, у которой больше ++? но чем это будет отличаться от сравнения финрезов в конце?
    • SergeyJu
      04 марта 2018, 11:13
      ПBМ, я копался в этой теме. Я не нашел простой альтернативы идее брать максимально доступные промежутки времени. Всякие рандом форесты со случайным  делением выборки на оптимизируемую  и проверочную преимущества не показали, например. 
      • П М
        04 марта 2018, 11:37
        SergeyJu, вот-вот. 
    • SergeyJu
      04 марта 2018, 14:05
      ПBМ, я не отбираю ЛУЧШУЮ систему. Я пытаюсь раздать системам веса, включая нулевые, для получения качественного портфеля. Простейший подход — выравнивание риска. Более сложный подход должен включать в себя анализ связей в получаемых эквити, в примитивном смысле — ковариаций.
  • Антон Иванов
    04 марта 2018, 10:07
    Не, ну вот взял и написал полезную вещь. Даже непривычно уже такое тут читать. Подписался.
  • MS
    04 марта 2018, 11:30
    курвафиттинг ... 
    Дело в том, что в изменениях цен существуют некоторые параметры, по которым локально можно рассчитывать точки разворота. А далее фокус в том, что накурвафиченные эти параметры меняются достаточно медленно (или резко, но редко). Это позволяет 'увидеть разворот' и он подтвердится с вероятностью существенно большей 0,5.
    • SergeyJu
      04 марта 2018, 11:39
      MS, интересно, а подробнее нельзя?
  • TradingKit
    04 марта 2018, 14:56
    MadQuant, было бы очень интересно почитать про используемый алгоритм оптимизации системы: подбор параметров, фильтрация сигналов, IS/OOS тестирование и т.п. 
  • Sarmatae
    04 марта 2018, 16:35
    Отличный пост! Спасибо.
  • Иван Иванов
    04 марта 2018, 20:13
    тогда надо делать систему, не использующую никакие числовые константы
    • JITF
      04 марта 2018, 20:41
      Иван Собакин, таких не существует. Как минимум одно число — таймфрейм уже будет вшито в систему. ;)
        • JITF
          04 марта 2018, 20:53
          MadQuant, это круть совсем :) я не слишком глубоко забирался в дебри само-обучения, но мне показалось, что все равно там какие-то параметры уже самого процесса само-обучения заводятся. Например, количество кластеров данных или выбор типа нейросетей. Т.е. уже более глобальный уровень курвафитинга.
            • JITF
              04 марта 2018, 21:02
              MadQuant, так «с утречка» уже параметр. А может каждое второе утро или по пятницам только? Тоже надо оптимизировать. :) Поэтому не понимаю я как можно систему без параметров сделать.
                • JITF
                  04 марта 2018, 21:10
                  MadQuant, это понятно. Не верю я в системы без параметров ;)
                    • JITF
                      05 марта 2018, 00:30
                      MadQuant, самоподстройка всего, что только возможно? это круть. :)
            • SergeyJu
              04 марта 2018, 21:37
              MadQuant, параметры есть, они просто регулярно подстраиваются тем или иным способом. Легко реализуемая конструкция, если она жесткая. Но сама жесткость конструкции, её априорная заданность как бы и есть курвафитинг.
                • SergeyJu
                  04 марта 2018, 21:57
                  MadQuant, буду ждать от Вас продолжения.
      • Иван Иванов
        04 марта 2018, 21:43
        JITF, тогда нужно избавиться от таймфрейма и перейти на тики
        • JITF
          05 марта 2018, 00:34
          Иван Собакин, таймфрейм — это параметр, а тики, минуты, часы — его значения. выбор тиков — это уже оптимизация. :)
          • Иван Иванов
            05 марта 2018, 00:41
            JITF, как раз тики вне времени. Они же произвольно приходят в разные моменты времени в отличии от свечей. Поэтому если брать для расчетов тиковый график, то мы избавляемся от времени
            • SergeyJu
              05 марта 2018, 09:53
              Иван Собакин, только внутри дня.
  • Петрович
    04 марта 2018, 20:15
    Хвала Богам!!! Наконец-то сегодня про торговлю!!! Не про политику… Спасибо!!!! 

  • N P
    05 марта 2018, 11:17
    спасибо. очень здоровский пост.
  • Виталий Вячеславович
    05 октября 2019, 19:21

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

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

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн