Читать книгу Код Трейдера. Система под контролем: масштаб, капитал, рост трейдера и бизнеса (Сергей Буканов) онлайн бесплатно на Bookz (4-ая страница книги)
bannerbanner
Код Трейдера. Система под контролем: масштаб, капитал, рост трейдера и бизнеса
Код Трейдера. Система под контролем: масштаб, капитал, рост трейдера и бизнеса
Оценить:

0

Полная версия:

Код Трейдера. Система под контролем: масштаб, капитал, рост трейдера и бизнеса

У классики (акции) есть готовые факторы. В мульти-ассетном трейдинге их нет, поэтому я строю свои: Trend-Factor (суммарная тренд-доходность базового набора), Vol-Shock (дни расширения реализованной волы), Carry-Proxy, Risk-On/Off (простая смесь S&P, нефти, EM FX). Дальше – регрессия стратегии на эти факторы. Высокая бета к тому же фактору у «разных» стратегий – звоночек. Не для красоты, а чтобы честно признать: «мы оба катаемся на одном волне».

5) Поведенческий тест: реакция на сценарии

Соберите набор «сценарных дней»: FOMC, Non-Farm, CPI, «флэш-краши», квартальные экспирации, тонкие сессии. Постройте средний PnL-отклик на каждый сценарий. Если два «разных» алгоритма одинаково залипают на FOMC и одинаково «разумно» ведут себя на экспирациях – они родственники по психике. Я держу эту мини-таблицу рядом с корреляциями.

6) PCA/кластеризация: группируем идеи по факту поведения

Не бойтесь простого PCA на матрице стандартированных PnL-рядов. Если две стратегии сидят на одном первом компоненте, а их нагрузки почти идентичны – это брат и сестра. Дальше иерархическая кластеризация по расстояниям (1 – corr) – даёт тепловую карту семей. Это не академический культ, это быстрый способ увидеть «красные группы».

7) «Тест на мелодию»: меняем выход, оставляем вход

Очень практичный трюк. Берёте одну и ту же идею входа и навешиваете на неё два разных выхода: волатильный трейлинг vs time-stop/partial. Если обе версии дают схожую просадку в те же недели – значит, «музыку» задаёт вход, а не выход, и любая «новая стратегия» на этой базе – та же песня. Если поведение резко расходится – возможно, у вас реально два разных модуля.

8) Экзекуция слепых зон: комиссии и impact-cost

Псевдодиверсификация любит жить в издержках. Скальпинг на двух «разных» рынках может одновременно умирать, потому что комиссия/спред съедает edge при росте волы. Делайте стресс-тест: умножьте комиссию на 1.5–2x, увеличьте проскальзывание на 1–2 σ дни. Если обе логики разом превращаются в ноль – они питаются из одного «узкого горлышка».

9) Capacity-перекос: борьба за ту же ликвидность

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

Как ставлю диагноз и что делаю дальше

Я использую шкалу:

– Одна семья. Высокая corr в просадках, совпадение сценариев, общие издержки → держу только одну «лучше-ведущую» версию, остальное – в песочницу или отключаю.

– Половинчатая независимость. Частичное перекрытие, но есть смещённые режимы → оставляю, но лимитирую совместный риск (общий «корзинный» лимит DD/волы).

– Независимые рабочие лошади. Разные оси, низкая синхронность провалов → растягиваю капитал между ними, допускаю ребаланс по качеству.

Ключевое: честность перед самим собой. Не держу пять «любимых» трендов, потому что «жалко выключать». Держу один-два, которые реально добавляют к портфелю, а остальным – спасибо, свободны.

Красные флажки, за которые я сразу дёргаю стоп-кран

– Роллинг-корр в просадках > 0.8


– 70% совпадения экстремумов DD в последние 12 месяцев


– Одинаковая реакция на три и более сценарных класса (FOMC, CPI, квартальные экспирации)


– Cosine-similarity экспозиций > 0.9 в стресс-дни


– Одинаковая деградация на шоке издержек

Если вижу два-три пункта – вопрос даже не «выключать ли», а «что оставить из этой пары».

И да, я всегда задаю себе неприятный вопрос: «Если бы эти две стратегии назывались одинаково и были в одном файле, добавил бы я вторую?» Ответ часто отрезвляет.

Поговорим про «любимца публики» – пробой. Ничто так часто не превращается в псевдодиверсификацию, как пробои: Donchian на 20/55 дней, «выход из диапазона», «пробой дневного high», «пробой NR7»… Названия разные, мелодия одна. Я через это прошёл и в итоге превратил один базовый пробой в модульную систему из нескольких действительно независимых моделей. Делюсь пошагово.

Базовая заготовка

Старт – простой «Donchian breakout» на дневных данных по корзине ликвидных фьючерсов/FX: вход по выходу за максимум/минимум N дней, стоп – k*ATR, выход – трейлинг по каналу/ATR. Классика. Работает? Да. Но в портфеле один такой модуль полезен, а три-четыре «почти таких же» – уже самообман.

Задача: разорвать один «комбайн» на отдельные модули по осям из Части 1, чтобы у каждого была собственная роль и своя «песня».

Шаг 1. Развести тайм-фреймы не по «параметрам», а по циклам

Вместо «Donchian-20» и «Donchian-55» (что зачастую даёт один и тот же циклический риск) я развёл горизонты:

– Модель A: Дневной позиционный пробой (DPB). Классический Donchian 55/20, ATR-стоп, трейлинг. Работает на «длинных историях» (сырьё, FX-мажоры, индексы). Торговля 1 раз в день, исполнение на открытии/закрытии, фильтр новостных гэпов.

– Модель B: Интрадей «Opening Range Breakout» (ORB). 30–60 минут диапазона с открытия (по сессии), вход на выход из OR, выход – EOD или time-stop + MFE/MAE-фильтры. Работает на индексах/ликвидных фьючах. Питание – утренний импульс ликвидности, другая микро-структура.

– Модель C: Волатильностный пробой после компрессии (VEB). Детектор сжатия (Bollinger Bandwidth, HV_ratio, NR7/NR4), вход на выход из «сардельки», выход – частичный по цели + трейлинг. Это не «длинный тренд», а «вола-экспансия». Частота выше, цикл короче.

Уже здесь мы развели циклы рынка: А – дышит неделями, B – минутами/часами, C – днями/пара дней. Это разные животные.

Шаг 2. Развести логику выхода и управления позицией

Чтобы не получить «три пробоя с одним выходом», я разнёс менеджмент:

– DPB (А): ступенчатый трейлинг по каналу, без частичных фиксаций, добавления по пирамиде через ATR-шаги (ограниченное). Важна «чистота длинного хвоста».

– ORB (B): жёсткий time-stop (EOD), частичная фиксация при R-целях, запрет удержания овернайт. Мы снимаем утренний «взрыв» и выходим, не дожидаясь вечерних сюрпризов.

– VEB (C): гибрид: 1/2 позиции – цель по волатильности (k*ATR), 1/2 – трейлинг. Идея – монетизировать как «взрыв», так и возможный тренд-продолжение.

Разные выходы – разные профили profit-distribution. Это важно: в стресс-дни они реагируют не синхронно.

Шаг 3. Развести исполнение

– DPB: исполнение лимитами вблизи open/close, допускается частичный пропуск входа ради лучшего спреда (capacity-режим). Низкая частота – высокие требования к качеству исполнения.

– ORB: агрессивные рыночные входы на пробой OR + алгоритмы снижения impact (POV). Здесь нельзя «спать», иначе всё движение улетело.

– VEB: смешанный режим: вход пассивный при ретесте/лимит в зону пробоя; если «улетело», – отказ от входа (стратегическая пропуская). Снижаем ложные выносы.

Тем самым мы разводим execution-risk: DPB – «позиционный медведь», ORB – «спринтер», VEB – «охотник на разжатие».

Шаг 4. Развести рынки и сессии

– DPB: хранитель корзины «классиков» (сырьё, FX, индексы, иногда облигации) без упора на утренние открытия. Работает «по закрытиям» и устойчив к ночным качелям.

– ORB: индексы США/Европы, иногда золото; строго основные часы, бан-лист «тонких» инструментов.

– VEB: больше прокатывает на FX и некоторых сырьевых, где «сжатие» видно, а затем есть куда разжиматься; допускается Азия/Европа.

Теперь модули не конкурируют за одну и ту же ликвидность в одно и то же время.

Шаг 5. Нормировка в R и тест на независимость

Все три модуля приведены к единой валюте R: фиксирую риск на сигнал. Дальше – диагностика из Части 2:

– Rolling-corr дневных PnL: DPB vs ORB близко к нулю, DPB vs VEB низкая, ORB vs VEB может быть слегка положительная на тренд-днях, но нулевая на большинстве участков.

– Overlap DD: просадки DPB приходятся на длительные боковики – ORB в эти периоды часто в плюсе/нуле; VEB иногда «кормится» именно в сжатиях, где DPB страдает, – это хорошо.

– Сценарии: новости 14:30 ET убивают ORB чаще всего; DPB по ним нейтрален (входит/выходит редко), VEB – осторожен (есть фильтр новостей).

Если вижу, что два модуля всё ещё «слипаются», ищу, где они стали одинаковыми: рынок, время, выход, исполнение. И правлю именно ось, а не «параметр 20→22».

Шаг 6. Политика совместной жизни

– Capacity-ограничения: ORB получает лимит на долю портфеля (из-за издержек и impact в открытие), DPB – больший бюджет, VEB – средний, но с жёстким стопом по качеству (если превращается в «ловца ложных пробоев»).

– Ребалансировка: по волатильности (если ORB «разносит» дисперсию – срезаю вес), по просадке (любой модуль словил –10R за квартал – пауза), по качеству исполнения (рост проскальзывания – сидим на скамейке).

– Правила совместного входа: если в один день и ORB, и VEB дают сигнал в одном инструменте, действует «протокол конфликтов»: приоритет отдаю модулю с исторически меньшим impact и лучшим winrate в данном режиме рынка. Это «диспетчеризация», чтобы не биться локтями в одном стакане.

В итоге вместо «четырёх разных пробоев» у меня три независимые модели, каждая со своей ролью: DPB – «дальний забег», ORB – «утренний рывок», VEB – «ловец распрямляющейся пружины». На языке портфеля это значит: разные драйверы, разные риски, низкий оверлап просадок.

Практическое задание: собрать портфель из 2–3 независимых моделей с целевой корреляцией

Цель: собрать мини-портфель из двух-трёх моделей на базе пробоя (или на ваших семействах), гарантировав низкую взаимную корреляцию и адекватную совместную просадку.

Шаг 1. Определите базовые идеи.


Выберите три из списка (или свои):


– DPB (дневной позиционный пробой),


– ORB (пробой открытия),


– VEB (пробой после компрессии),


– Контртренд-fade неуспешного пробоя (как отдельный модуль-стабилизатор, если хочется).


Важно: не берите три «варианта Donchian» с разными N – нужен разный цикл.

Шаг 2. Разведите оси.


Для каждой модели зафиксируйте: рынок(и) и сессии; тайм-горизонт; вход/выход; исполнение. Проверьте, что минимум две оси различаются у каждой пары моделей.

Шаг 3. Нормируйте в R.


Приведите риск-на-сигнал к одной величине (например, 0.5R на событие для ORB, 1R – для DPB, 0.75R – для VEB). Учтите комиссии/impact по-честному.

Шаг 4. Померяйте независимость.


Постройте дневные PnL-ряды за одинаковый период, рассчитайте rolling-corr (60/120/250), overlap DD, реакцию на сценарии (хотя бы FOMC/CPI/Non-Farm/экспирации). Целевая зона – corr в коридоре [-0.2; +0.2] на большинстве окон, отсутствие синхронных «ям».

Шаг 5. Настройте ребалансировку.


Задайте регламент: лимит DD на модуль (например, –10R/квартал), ребаланс по воле (если σ модуля > X – срез веса Y%), триггеры паузы при ухудшении качества исполнения (рост проскальзывания, провал winrate по контрольным режимам).

Шаг 6. Проверьте capacity.


Оцените, не мешают ли модели друг другу в одном стакане: сравните impact-метрики и одновременные входы. При необходимости введите «протокол конфликтов» и совместный лимит на инструмент/сессию.

Шаг 7. Прогоны и «красная команда».


Проведите стресс-тест: удвойте комиссии и проскальзывание, сместите время входов на один бар хуже, выкиньте каждую 10-ю «идеальную» сделку. Портфель должен жить. Если рушится – независимость была на бумаге.

Что сдать самому себе:


– Корреляционная матрица моделей (по дневным PnL) и тепловая карта.


– Таблица сценарных реакций.


– Регламент ребалансировки (1 страница).


– Короткое пояснение «зачем каждой модели место в портфеле» (роль и ожидаемый вклад).

Личный лайфхак: когда сомневаетесь, нужна ли третья модель, задайте один вопрос – «если я урежу её вес вдвое, изменится ли поведение портфеля (а не только цифра доходности)?» Если да – оставляйте. Если нет – она не про диверсификацию, а про тщеславие «пусть ещё одна будет».

Трек-рекорд как продукт

Когда у тебя появляется не просто история сделок, а уже аккуратная кривая капитала, возникает соблазн: «Сейчас я кину скрин в чат и соберу миллионы». Увы, инвестор видит не скрин, а продукт. А продукт – это не только вкус, но и упаковка: метрики, визуализация, язык, преамбула, оговорки, методология и даже то, какие вопросы ты опережаешь в тексте. Здесь важно удержать равновесие: не пытаться «припудрить» риск, но и не грузить людей дисперсионной философией на три часа. Я покажу, как я упаковываю трек-рекорд так, чтобы профессионал кивнул «окей, чисто», а человек без профильного образования не потерялся.

Сначала решаем базовую дилемму: какая кривая у нас «каноническая». Я использую три вида и держу их строго разнесёнными, чтобы никого не путать: (1) «исходная» – как торговал сам на своих аккаунтах с реальными комиссиями и проскальзыванием; (2) «композит» – агрегат по стратегиям/аккаунтам с единой методологией учёта; (3) «типовая» – модель без ограничений по ёмкости, чисто чтобы показать потенциальный профиль при масштабировании. Для инвестора номер один и два – главное блюдо, номер три – гарнир, не наоборот.

Дальше – метрики первого экрана. Никакой экзотики, только те, без которых разговор не начнётся:


– Доходность: CAGR (среднегодовая), а не «+Х% за весь период». Обязательно рядом годовые и квартальные «полки», чтобы видно было, за счёт каких лет твой CAGR сложился.


– Риск: стандартное отклонение (vol), причём не только по месячным ритмам, но и роллинг-вола (12-месячное окно). Инвестору важно видеть, «как оно живёт в динамике».


– Риск-награда: Sharpe (с оговоркой, что в хвостах он ломается), Sortino (чтобы подчеркнуть, что тебя волнуют только «плохие» колебания), Calmar/MAR (CAGR/DD – любимец тех, кто думает просадками).


– Просадки: максимум по глубине и по времени восстановления (Time Under Water). Мало сказать «макс DD −14%». Скажи «в воде был 5 месяцев, восстановился за 3». Время – ключ к нервной системе LP.


– Стабильность: heatmap месячной доходности («хиты/флопы»), плюс таблица «сколько месяцев в плюсе/минусе» и распределение месячных результатов (box-plot или гистограмма). Это быстро даёт ощущение «какой ценой даётся результат».

Второй экран – графики, которые читаются без легенды. Я использую четыре:

Кривая капитала с полосами доверия: базовая эквити и две лёгкие тени – «–комиссии–проскальзывание×1.5» и «даже хуже» (стресс-вариант). Это честно показывает чувствительность к издержкам.

График просадок (Underwater chart): визуальный профиль боли. Чем ниже «иглы», тем тяжелее будет инвестору. Пусть видит.

Роллинг-Sharpe/Sortino: 12-месячные окна. Сразу ясно, когда система «ехала по маслу», а когда «тянула через грязь».

Календарная таблица месяцев: зеленые/красные ячейки без микроскопии – даёт интуитивную картинку стабильности.

Третий блок – методология и параметры чистоты. Это то, что обычно прячут в «мелкий шрифт», а зря. Профессионал начинает чтение именно здесь:


– На каких данных считали (live/симуляция/композит), где поправка на survivorship bias, как учли комиссии, биржевые сборы, проскальзывание.


– Какая валюта учёта, как пересчитаны мультивалютные потоки, как учитывали кэш-дрифт (если есть).


– Как строился композит: равновес или AUM-веса, как решали залипание к одному-двум большим аккаунтам, как обращались с новым/закрытым счётом.


– Нормировка риска: в R, %Equity или фикс. лимиты; где плечо, где хедж.


– Регламент пересмотра стратегий: что считаете «смертью» модуля, когда исключаете из композита, как документируете изменения.

Теперь про стабильность. Месячные «хиты/флопы» – это не просто «20 зелёных, 10 красных». Я показываю:


– Доля месяцев > +2% / > +4% и доля месяцев < −2% / < −4% (подстроить под ваш риск).


– Профиль «fat tails»: skew/kurtosis месячных результатов с лаконичным комментарием «правый хвост живёт за счёт трендов А/В, левый ограничен стоп-политикой».


– Метрика «непрерывность» (consistency): средняя длина положительных и отрицательных серий. Инвесторы боятся «пилы» не меньше, чем «ямы».

Оговорки. Без них вас считают либо наивным, либо хитрым:


– «Прошлые результаты не гарантируют…» – это не юр. заглушка, а повод вкратце объяснить, какие режимы рынка вам подходят/не подходят.


– «Лимиты capacity»: при каком AUM профиль сохранится, где начнётся эрозия. Лучше назвать консервативный потолок, чем потом оправдываться.


– «Скорость адаптации»: раз в квартал переоценка рисков, не «подгонка под прошлое», а санитарный контроль.

Отдельный кусок – «эквити-гигиена». Покажите, что вы не прячете «грязь»:


– Карточки «худших» месяцев и «лучших» месяцев (top-5). К каждой – короткий поясняющий твит: что это было с точки зрения режима рынка, что вы сделали/не сделали.


– «Отзывы» из журнала ошибок: 2–3 реальных кейса дисциплинарных сбоев и что изменили в регламенте. Это снимает нервоз инвестора лучше любого Шарпа.


– Режимы «красной кнопки»: где срабатывает де-левередж, как быстро вы умеете резать риск.

Не забудьте про визуальную дисциплину. В трек-рекорде цвет – не украшение, а язык. Я держу палитру спокойной: зелёный/красный – только для календаря месяцев; всё остальное – нейтральные оттенки. Шрифты – два, не больше; легенды – короткие; цифры – с одинаковым количеством десятичных. Никаких «божьих коровок» на диаграммах.

Наконец, как говорить о доходности и волатильности честно. Всякие «+Х% в месяц стабильно» – дорога к кабинетной тишине без звонков. Гораздо сильнее фраза: «Мы целимся в CAGR 18–22% при портфельной волатильности 12–15% и ограничении максимальной просадки 12–15% за счёт диверсификации по логикам. В плохой среде (узкий боковик без расширения волы) ожидаем плоскую динамику и снижение риска до минимума. В хорошие трендовые кварталы – перегиб вправо, но с контролем Time-Under-Water». Это язык человека, который видел жизнь, а не макет.

И последнее. Одна страница – одна мысль. Никто не будет вчитываться в полотна текста возле графиков. Вырезайте всё, что не объясняет риск/доходность/поведение. Трек-рекорд – это не поэма, это пакет документов. Красоту оставим для кривой. Она, если всё сделано правильно, заговорит сама.

Покажите инвестору ровную кривую – он спросит: «За счёт чего?» Покажите зубчатую – спросит то же самое, только с другим тоном. Атрибуция – это ответ «кто тянет, кто мешает, что работает по плану, что – случайно». И я здесь всегда иду от простого к сложному: сначала делю результат по стратегиям/модулям (в терминах R), потом накладываю «сетку» режимов рынка, и лишь затем подключаю факторный взгляд – чтобы не остаться пленником собственных названий.

Начнём с внутреннего разреза (by strategy/module). Я разбиваю весь композит на «семейства» логик (тренд, контртренд, волатильность/компрессия, арбитраж/спреды, эвент-драйвен) и для каждого считаю:


– Валовой вклад в R (сколько «единиц риска» заработали).


– Эффективность: expectancy на сделку/сигнал, winrate, payoff-ratio.


– Издержки: доля комиссий+проскальзывания от валовой прибыли; impact-чувствительность (что было бы при ×1.5 издержках).


– Вклад в портфельный риск: доля в общей дисперсии PnL и корреляция с композитом (особенно важна в просадочные окна).

Зачем в R? Потому что иначе победит модуль, которому вы просто дали больше капитала. В R видно «сколько денег он печатает на единицу риска», а не «насколько он прожорлив».

Следующий слой – по режимам рынка. Я использую простую, но рабочую матрицу режимов:


– Осі 1: трендовость (trend / no-trend). Меряю линейно: отношение направленного движения к общей волатильности (ADL/ATR-подобные индикаторы) на дневном/недельном горизонте.


– Ось 2: уровень волатильности (low / mid / high). Беру realized (стандартное отклонение) на скользящем окне и дискретизирую по перцентилям.


– Ось 3: risk-on / risk-off эпизоды (быстрые системные шоки): простенький индикатор по расползанию спредов + падение индексов >Хσ.

Каждому дню присваиваю «режим», а дальше строю таблицу: средний дневной/месячный результат каждой логики в каждом режиме, дисперсия и hit-ratio. Это даёт поведенческий паспорт: «трендовая на низкой воле – терпит, в тренд/высокая вола – машина; контртренд в high-vola – берём меньшим размером или отдыхаем». Инвестор видит не магию, а кондиции, в которых ты честно делаешь работу.

Теперь про аккуратную «экономику заслуг». В мультистратегии часть результата – это выбор «куда заливать риск», а часть – «как стратегия отработала». Чтобы не путать, отделяю:


– Allocation effect – выигрыш/проигрыш от решения держать больший вес в N-логике по сравнению с «равновесом».


– Selection effect – чистая альфа самой логики против её среднего ожидания (условно: «как сыграли вход/выход/исполнение»).


– Timing effect – эффект от того, что вы меняли веса во времени (ребаланс, де-левередж).

Формулы можно расписать витиевато, я использую прагматичный подход: считаю «тень» портфеля с фиксированными весами и сравниваю с реальным. Разница разбивается на компоненты – это и есть наглядная атрибуция. Если большую часть экстра-прибыльности даёт «тайминг весов» – окей, но тогда инвестору нужен регламент тайминга, а не сказка. Если львиная доля – «selection» трендовой логики – честно говорим, что здесь наш мотор, а тайминг – на подхвате.

Дальше – атрибуция издержек. Многие боятся показывать, сколько съели комиссии и проскальзывание. Я, наоборот, выношу это на свет: строю waterfall-диаграмму «брутто → комиссии → слippage → нетто». Плюс табличка «какой модуль даёт сколько $ прибыли на $ комиссии». Это мгновенно отрезвляет аппетиты по capacity и показывает, где надо оптимизировать исполнение, а где – оставить как есть. И да, всегда держу стресс-версию: «что будет, если комиссии ×1.5 и проскальзывание ×2?» Если портфель превращается в ноль – это повод сократить или переработать высокочастотные куски.

Отдельная линия – география и инструменты. Даже если диверсификация построена по логикам, инвестор всё равно спросит: «Где вы зарабатываете?». Делаю тепловую карту по классам активов (индексы/сырьё/FX/ставки/крипто) и регионам (US/EU/Asia). Но важная ремарка: это не основной фокус. Если у тебя trend-модуль на сырье – молодец, но его суть – трендовая логика, а не то, что нефть в этом году была щедра. Не путайте носителя альфы с источником альфы.

Чтобы атрибуция не превратилась в «что-угодно-объясним», держу кодекс прозрачности:


– Ретроизменений нет: если модуль отключён, он остаётся в истории до даты выключения.


– Пересмотры весов документируются: дата, причина (вола/просадка/качество исполнения), новая величина.


– Любая «тонкая настройка» описана простым языком: «мы добавили time-stop, потому что в режиме X стратегия перераздувалась по MAE».

bannerbanner