← Заметки
Почему мы убрали сигналы grade A
strategy·trading·execution·research

Почему мы убрали сигналы grade A

Контринтуитивно: убрав самые сильные сетапы из внутридневной книги, стратегия стала прибыльнее, стабильнее и проще в сайзинге. Данные сравнения и аргументация, к которой мы пришли за год параллельной работы A и B.

· Mikhail Savchenko · Обновлено

Первые восемнадцать месяцев внутридневной стратегии — общий обзор которого в посте как мы торгуем уровни — мы держали трёхуровневую модель grading’а конфлюенции: A, B и C. Каждый уровень — это комбинация сигналов, которые должны сойтись на уровне: согласие на нескольких таймфреймах, volume profile, контекст рыночной структуры, постура по funding. A означал «все согласны сильно». B — «большинство согласно, один мягкий несогласный голос». C был исследовательский, на реальных деньгах мы его никогда не торговали.

С интуицией спорить было трудно. Grade A реже, чище, уверенность выше; ожидаешь win rate повыше, средний R пожирнее и просадку поспокойнее. Заходя в период, мы рассчитывали ровно на это.

Три квартала мы держали A и B параллельно, обе на реальных деньгах, обе маленьким размером. Тот же набор инструментов, тот же стек исполнения, та же логика выхода. Отличался только фильтр на входе. К концу третьего квартала таблица выглядела так:

A gradeB grade
Сделок / 90д~14~78
Win rate52.9%54.8%
Avg R / сделку+0.21+0.18
Stddev R0.940.71
90д R итого+2.9+14.0
Max просадка-3.4 R-2.1 R

У A средний R оказался чуть жирнее, win rate — чуть ниже, но напрягло стандартное отклонение. На сделку дисперсия у A была шире на 33%, чем у B, при 18% от количества сделок. Когда это компаундится за квартал, A получается громче, медленнее и в итоге проигрывает по Sharpe. Через квартал мы убрали A из живой книги.

Первое объяснение, которое мы рассмотрели и отбросили, — недостаток статистической мощности. Grade A даёт ~14 сделок за квартал — мало для уверенного сайзинга. Сайзеру по Sharpe нужны несколько десятков наблюдений, чтобы стабилизировать веса. На одном A сайзинг всегда отставал от режима на две-три недели; на B с ~78 сделками сайзер обычно был в пределах недели от оптимума. Этого мы и ждали; но само по себе это разрыв в дисперсии не объясняет.

Второе объяснение объясняет. Сигналы grade A кучкуются. Когда макрокартинка выстраивается, вы за несколько часов получаете три входа A по коррелированным тикерам. Портфель думает, что у него три независимых edge’а, а по факту — один и тот же edge, выраженный трижды. Просадки на A всегда были резче, чем на B, ровно по этой причине: когда общий драйвер шёл против, все три позиции теряли одновременно. Сделки B капают через более широкое окно наблюдения и так не группируются.

Третье объяснение — то, к которому мы шли год: информационный edge живёт в несогласии. A — это «все согласны», то есть, по определению, консенсус. B — это «большинство согласно, один мягкий несогласный голос», и этот несогласный голос — часть сделки, ещё не заложенная в консенсус. Те сделки B, что отрабатывают, отрабатывают потому, что несогласный был прав, а консенсус — это толпа. Upside у B при правильности больше, потому что «быть правым на B» означает «толпа ошибалась». Сделки A, что отрабатывают, отрабатывают потому, что консенсус был прав — нормально само по себе, но консенсус уже двинул цену до того, как мы туда подошли.

Машину grading’а мы оставили. Просто перестали торговать A. Grader по-прежнему считает A; используем его как сигнал подавления — когда срабатывает grade A, входы B по этому инструменту глушатся на следующие четыре часа, потому что консенсус уже двинулся. Это подавление стоит около +0.04 R в среднем на пропущенную сделку — это разница между чистым B и «B с подавлением от A» на тех же данных. Хорошее напоминание, что отброшенная модель ещё может зарабатывать как фильтр для другой модели.

Сдвинулся и потолок размера. С A вне книги потолок на сделку упал с 1.0 R до 0.6 R, потому что B срабатывает чаще, и notional по стратегии надо ограничивать по кластеру коррелированных B, а не только на сделку.

Общий урок неприятный. Если у вас модель, где можно градировать собственные сигналы — A-D, 1-5, как угодно, — сильнейший уровень, скорее всего, не то место, где стоит жить. Сильнейший уровень — это консенсус, а консенсус по определению — часть движения, которая уже произошла. Уровень ниже — там сидит несогласие, а там, где сидит несогласие, — там и edge.

Та же логика почти один в один применима к портфельной части, только на другом временном масштабе. У классификатора режимов есть свой аналог grade A — моменты, когда все входные признаки согласны с режимом. Эти же моменты — когда консенсус максимально заложен в цену. Изучаем, не должен ли аллокатор активов фейдить такие единогласные показания, а не идти за ними. Ранний backtest обнадёживает. Подробнее — когда наберётся квартал forward-данных.

— inite team

Похожие заметки
Все заметки →