ZAPAS COMBO — большой бэктест

Кривая PnL (кумулятивно, $)

PnL по дням

Красные столбцы — минус-дни. Наведи курсор в таблице «Дни» для деталей.

Три линейки исполнения на текущем фильтре

last-print завышен на bid-ask bounce (≈0.5%/сделку). Реальность между MID и BID.

Месяцы

Час входа

Транш лесенки

Грейд

z (запас vs ETF)

Спред на входе

PM $ объём (накопл.)

ADV20 (шт)

Цена входа

Mcap

Сектор

Гэп |cum%|

Рынок на входе (SMH%)

День недели

Ёмкость: % от PM $vol

Доля позиции в накопленном премаркетном $-объёме. >1% = вопросы к исполнению при масштабировании.

Реф-ETF беты

Δ = к базовой live-книге на той же линейке. Пересимуляция, не фильтр.
folds = сколько из 4 фолдов по 21 сессии дали Δ>0. CI95 — блочный бутстрап (5-дн блоки, 2000 повторов) дневной ΔPnL. BH = прошло Benjamini-Hochberg FDR q=0.10 по всему семейству гипотез. holdout = Δ на 07-01…07-31. Правило: гейты (которые только убирают сделки) судим по ΔPnL, никогда по avg%/сделку.
Клик по строке в таблице ниже тоже открывает день

Входы по времени: что было хорошо, что плохо

Столбец = один транш, высота = его PnL, зелёный/красный = плюс/минус. Синяя линия — премаркетный ход QQQ на тот момент (правая шкала), оранжевая — SMH. Так видно, входы утонули из-за времени или из-за того, что рынок ехал вверх.

По 15-минутным окнам

Лучшие и худшие входы дня

Все входы дня по времени

Все дни (клик по строке — открыть день)

Прогноз на 42 торговых дня (блочный бутстрап дневного PnL)

Пул сценариев: full = все 84 сессии окна; last21 = последний месяц (текущий режим); stress6 = 6 худших дней окна (что будет, если режим сломается). Бутстрап 5-дневными блоками сохраняет автокорреляцию режимов. mddP50/P05 — медианная и 5-й перцентиль просадки внутри 42 дней.

Что это значит

Вердикты выставлены по тесту на выбранной линейке, а не по «нравится»

A1 — walk-forward автотюнер: переподстройка каждые 21 сессию

Тюнер каждые 21 сессию берёт лучший набор параметров на всей прошлой истории и торгует им следующий блок. Четыре линейки сравнения: auto = переподстройка; one-shot = настроили один раз на первых 21 сессиях и заморозили; static = текущий live-конфиг; oracle(OOS) = лучший фиксированный набор на всём окне, применённый к тем же OOS-сессиям (недостижимая верхняя граница, это подглядывание в будущее). Ключевая цифра — «ценность переподстройки» = auto − one-shot.

Что выбирал тюнер по блокам

A2-A6 — адаптивные механизмы (сами подстраиваются каждый день)

Все решения строго PIT: любой роллинг сдвинут на 1 сессию назад, ни один механизм не видит день, в котором торгует. Δ считается к статичной базовой книге на той же линейке.

I1 — форма размера при РАВНОМ gross

Правило, которое поднимает и gross, и PnL, ещё ничего не доказало — оно просто взяло больше капитала
«как есть» — размер как задумано правилом. «при равном gross» — все размеры отмасштабированы так, что суммарный нотионал совпадает с базой до доллара. Только вторая строка — доказательство про ФОРМУ размера. Колонка «PnL на $1M» — доходность на единицу задействованного капитала.

I2 — гейт по чистому эджу вместо гейта по спреду

Ожидаемый эдж считается вне выборки: скользящее среднее за 20 сессий по ячейке (грейд × бакет z × час), сдвинутое на сессию назад — сделка не видит собственного исхода. Гейт: ожидаемый эдж ≥ λ × полспреда. λ=0 означает «эдж просто положителен».

I3 — модель импакта (корень из участия) и настоящая ёмкость

Стоимость сделки = полспреда + k · σдн · √(участие), участие = нотионал / премаркетный $-объём. Стартуем от MID и вычитаем явные и неявные косты. Это заменяет грубый кэп «не больше X% объёма»: видно, что косты растут как корень, и где кривая ёмкости ломается. Импакт посчитан только на входе — аукционный выход отдельная тема.

I4 — переобучение: PBO и deflated Sharpe

PBO (probability of backtest overfitting) через CSCV: 8 блоков, все 70 разбиений пополам; в каждом берём лучший по Sharpe набор на одной половине и смотрим его ранг на другой. PBO = доля разбиений, где лучший «в выборке» оказался ниже медианы «вне выборки». Deflated Sharpe — вероятность, что Sharpe настоящий после поправки на число испытаний, асимметрию и толстые хвосты. Высокий PBO означает «ранжирование наборов = шум», а не «стратегии нет» — на это отвечает как раз DSR.

J1 — модель заполнения пассивной лимитки

Лимитка ставится на закрытии сигнального бара; считается исполненной, если следующий бар (или два) дотянулся до её цены. Показана заполняемость — эдж, который снимается на 50% сигналов, это другая стратегия, чем тот же эдж на 100%.

J2 — стек: лимитка + альфа/кост сайзинг + гейт чистого эджа

J3 — насколько хрупка модель заполнения