| Панель | Источник | Такт | Цена | Ограничение, найденное на практике |
|---|---|---|---|---|
| Расписание матчей | site.api.espn.com · scoreboard | раз в 30 мин | бесплатно | отдаёт 403 на любой свой User-Agent, ходить без заголовка |
| Составы и кто сел | espn · summary + teams/{id}/schedule | раз в 3 мин в T−150…T+5 | бесплатно | состав появляется за 50–60 мин; «кто сел» только сравнением с прошлым туром |
| Книги Polymarket | clob.polymarket.com/books · POST | 120 / 60 / 20 с по мере приближения | бесплатно | на свистке книга пустеет полностью; батч до 20 токенов |
| Каталог рынков | gamma-api · /events?tag_slug= | при первом появлении матча | бесплатно | offset глубже 5 000 отдаёт 422, только keyset с after_cursor; limit режется до 100 |
| Эталон без маржи | the-odds-api · /odds?bookmakers= | только T−16…T+0, шаг 5 и 4 мин | 1 кредит на лигу, ~2,5 на матч | Pinnacle через вендора в игре заморожен; сопоставлять по времени начала, не по именам |
| Публикация в базу | tools/publish_to_db.py → Postgres | раз в минуту | — | вынесен из демона: падение базы не должно стоить ни одной точки |
| Подпись ордера | кошелёк в браузере · EIP-712 | по клику | — | ключей на сервере нет; L1-подпись раз за сессию, дальше L2 |
- 1
Эталон только без маржи
Пропорциональный девиг сам занижает фаворита и рождает несуществующую стратегию. Считать против биржи или методом Шина.
- 2
Матчи сопоставляются по времени начала
Имена команд у ESPN, Polymarket и вендора не совпадают, а клуб играет каждый тур: матчер по именам цепляет чужой матч.
- 3
Ёмкость раньше сигнала
Разрыв в 26 пт на 43 долларах ликвидности не сигнал. Размер режется долей глубины книги, а не задаётся константой.
- 4
Порог алерта из распределения
Сейчас 2,5 пт при медиане 0,40 и p90 0,98. Пересчитывать по мере накопления матчей, а не оставлять навсегда.
- 5
Порог применяется только до свистка
Распределение, из которого он взят, измерено в пре-матче. В игре гол двигает Polymarket на 30 пт за минуту, а эталон опрашивается раз в четыре минуты и разъезжается маржой втрое: это другая популяция. Из 22 переходов порога за всю запись 20 случились в игре и все были артефактом.
- 6
Разрыв считается только против свежего эталона
Между двумя опросами биржи разрыв набирает всё, что Polymarket прошёл сам. Засчитывается, только если меньше половины разрыва набежало после снятия эталонной цены.
- 7
CLV считается от приведённой отметки
Эталон суммируется в 100, Polymarket в 98,5–100,5. Без приведения сумма трёх CLV матча равна этой разнице и создаёт ровное положительное среднее из ничего. Приводить отметку к сумме 100 и брать закрытие последним квотом до свистка, а не первым после.
- 8
Ключей на сервере нет
Сервер отдаёт только данные. Ордер подписывает кошелёк в браузере, и это не ограничение, а граница ответственности.