Вход = аукционный принт открытия (Datum OPG) · выходы = 30-мин бары Massive
(close 09:30 = 10:00, close 10:00 = 10:30, close 10:30 = 11:00) ·
521,356 трейд-кандидатов · 753 сессий · 2,301 тикеров · медиана 649/день ·
earnings ±1 день исключены · сплиты исключены · флэт $1K/вход (масштабируется)
Sharpe везде считается по дневным доходностям (mean/std × √252), не по сделкам.
Значок ? — Sharpe > 5, включён doubt-protocol: смотри N, число дней и OOS.
Гипотеза user: «OPG buy ходят стоки, когда рынок корректируется»
Проверяется четырьмя независимыми определениями медвежьего состояния (все по D-1,
без lookahead): позиция SPY относительно MA20/MA50/MA200, просадка от 252-дневного хая,
20-дневная и 5-дневная доходность SPY. Плюс кроссы «гэп × режим». Смотри также линейку
hedged — она отвечает, это альфа или просто отскок рынка, который тащит всех.
Книги «топ-N в день» — то, что реально торгуется
Бакетные метрики в остальных табах считаются по ВСЕМ кандидатам бакета (медиана 660/день) —
это оценка эффекта, а не книга. Здесь внутри каждого дня кандидаты ранжируются по сигналу
книги (величина гэпа / excess) и берётся топ-3/5/10. Ранжирование — часть правила входа,
наведи курсор на строку, чтобы увидеть его. Линейка — net (минус модельный полуспред);
точные HBBO-филлы для финальных книг — в табе «Исполнение».
На что смотреть
Avg per-trade положительный, а Sharpe отрицательный — значит прибыль сконцентрирована
в нескольких «богатых» днях с большим числом сделок, а типичный день в минусе. Дневная
агрегация (равный вес дня) это вскрывает, per-trade средняя — прячет.
Мало дней (маркер «Nд») — Sharpe и t нестабильны, сколько бы сделок ни было:
независимых наблюдений столько, сколько дней, а не сделок.
⭐ ФИНАЛЬНЫЕ КНИГИ: точный NBBO на ВСЕХ сделках (без выборки)
Это главная таблица для решения «торговать / не торговать»: каждая сделка
закрыта по РЕАЛЬНОМУ квоту на момент выхода (LONG в bid, SHORT в ask), вход — аукционный принт.
Колонка «Avg EXEC» — исполнимая доходность на сделку.
Точные HBBO-филлы по книгам (Stage B — реальный NBBO на момент выхода)
Выход исполняется агрессивно: LONG отдаёт в BID, SHORT забирает в ASK.
Вход не корректируется — MOO-ордер получает клиринговую цену аукциона.
Меряется парная разница (last − exec), поэтому выборка 6K сделок на книгу даёт очень
точную оценку издержки даже для больших книг. Сравнение колонок «факт» и «модель» —
валидация модели полуспреда из p4.
Полуспред NBBO (Massive /v3/quotes)
5.73
медиана по популяции 11:00
Вход MOO исполняется в аукционе — MOO-ордер получает ровно OPG-принт,
спреда не платит. Спред платим ОДИН раз на выходе маркет-ордером: LONG выходит в bid,
SHORT крывается в ask. Поэтому линейка «агрессор» = raw − полуспред (не два пересечения,
как было в ZAPAS).
Полуспред по ячейкам (медиана bps)
Выборка стратифицирована по (год × цена × ADV$ × |гэп|), поэтому редкие ячейки
перепредставлены — в модель попадают медианы ячеек, а применяются они популяционно.
Кросс-валидация цен выхода
30-мин бары Massive против локального 1-минутного стора (intraday_1m_gap_days_v2,
пересечение 2025-04-15…2026-07-31): медиана расхождения 0.00 bps, p90 0.00 bps,
доля расхождений >10 bps — 0.05% на 10:00 и 0.00% на 11:00 (n≈4.1K / 4.0K).
Конвенция подтверждена: close 30-мин бара 09:30 = цена 10:00, close бара 10:30 = цена 11:00.
Санити-чек входа
Аукционный принт Datum OPG обязан лежать внутри диапазона 30-мин бара 09:30 (±0.5%).
Не прошло 0.54% строк — выброшены. Это же проверка на несовпадение raw/adjusted:
бары тянутся с adjusted=false, чтобы быть в одной линейке с raw-принтами Datum.