Skip to content

Q4-Under-after-3-Overs backtest + quarter-totals experiment specs - #14

Closed
Manimall wants to merge 2 commits into
mainfrom
feat/q4-under-after-3-overs-backtest
Closed

Q4-Under-after-3-Overs backtest + quarter-totals experiment specs#14
Manimall wants to merge 2 commits into
mainfrom
feat/q4-under-after-3-overs-backtest

Conversation

@Manimall

Copy link
Copy Markdown
Owner

Что это

Phase 1 бэктеста гипотезы «3 ТБ подряд (Q1–Q3) → Q4 ТМ» на CBA (445 матчей, сезон 25/26) + спеки серии четвертных экспериментов.

Вердикт: NO-GO по паттерну

Против прокси-линии total_line/4 ROI выглядит +28…+50% — но это артефакт базовой просадки Q4, а не сигнал:

значение
безусловный P(Q4 ТМ) против /4 64%
P(Q4 ТМ | 3 ТБ) 67.6%
прирост от условия +3.7 пп (шум, n=71)
средний Q4 после 3 ТБ vs без 41.73 vs 41.88 (≈0)

Единственный рычаг к ~60% ТМ — блоуаут (margin перед Q4 ≥ 20), но против пре-матч линии; живой бук отрыв видит → проверка в Phase 2 на реальных четвертных линиях.

Защита от самообмана (сверх исходного ТЗ)

  • Сдвиг Q4-линии — свип, а не магическое число.
  • Печать базовой ставки рядом с условной (эдж = прирост, не голый win rate).
  • Опция --cross-season (в CBA пока 1 сезон → нельзя, честно отмечено).

Состав

  • scripts/test_4q_pattern.py — бэктест (чистые функции + sync-загрузка из БД)
  • tests/test_4q_pattern.py5 юнит-тестов логики (без БД), зелёные + ruff чист
  • docs/experiment_*.md — спеки Q1-Over, Q4-просадки, Q4-ТМ-после-3ТБ, Phase 2
  • docs/results_q4_under_after_3_overs.md — разбор NO-GO

Проверка

ruff check ✅ · pytest tests/test_4q_pattern.py5 passed ✅ · прогон на CBA выполнен.

🤖 Generated with Claude Code

Manimall and others added 2 commits July 21, 2026 23:27
Phase 1 бэктеста гипотезы «3 ТБ подряд (Q1-Q3) → Q4 ТМ» на CBA.

Вердикт: NO-GO. Против прокси-линии total_line/4 ROI выглядит +28..50%,
но это артефакт базовой просадки Q4 (безусловный P(Q4 ТМ) = 64%), а не
сигнал: прирост от условия «3 ТБ» ~0 пп (средний Q4 после 3 ТБ = 41.73
vs без = 41.88). Единственный рычаг к ~60% — блоуаут (margin перед Q4
>= 20), но против пре-матч линии; живой бук отрыв видит → нужен Phase 2
с реальными четвертными линиями.

Скрипт содержит защиту от самообмана (в отличие от исходного ТЗ):
свип сдвига вместо магического числа, печать базовой ставки рядом с
условной (эдж = прирост), опция cross-season.

- scripts/test_4q_pattern.py — бэктест (чистые функции + sync-загрузка из БД)
- tests/test_4q_pattern.py — 5 юнит-тестов логики паттерна (без БД)
- docs/experiment_*.md — спеки трёх четвертных экспериментов + Phase 2
- docs/results_q4_under_after_3_overs.md — разбор NO-GO

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
scripts/export_3over_q4_matches.py выгружает все матчи CBA, где Q1-Q3
зашли ТБ (против total_line/4), с результатом Q4. Артефакт-доказательство
под docs/results_q4_under_after_3_overs.md.

results/cba_3over_q4_matches.csv: 71 матч, из них 48 (67.6%) Q4 ТМ, 23 ТБ.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Manimall Manimall closed this Jul 21, 2026
@Manimall

Copy link
Copy Markdown
Owner Author

Закрыт: гипотеза '3 ТБ подряд -> Q4 ТМ' не подтвердилась. На чистой выборке FIBA-лиг сезона 25/26 (n=728) P(Q4 ТМ | 3 ТБ) = 49.2% (база 52.9%, lift -3.7 пп), ниже порога безубытка 52.6%. CBA-шные 67.6% оказались выбросом на n=71. Причина: высокий темп персистентен (corr H1/H2 = +0.27), а не регрессирует. Код и результаты остаются в ветке feat/q4-under-after-3-overs-backtest.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant