Рынки прогнозов

Набор исходов, который платит известную сумму при любом исходе, куплен дешевле этой суммы — разница ваша. Ищем такие наборы так, как их описывают площадки и исследования: ребалансировка группы исходов на одной площадке и одно событие на двух площадках. По стаканам, после комиссий, на ваш капитал. Между площадками совпадение событий — оценка: у каждой пары указаны уверенность и причины.

Как считаем

Ребалансировка (термин исследования Saguillo и др., 2025, по сделкам Polymarket) — внутри одной площадки. Long: лучшие ask YES всех исходов группы, где выигрывает ровно один, в сумме меньше $1 после комиссий — покупаем YES каждого исхода, при разрешении один из них платит $1. Только для группы, которую площадка объявила взаимоисключающей, прочитанной целиком, с исходом на всё остальное («другое», «ничья») и без исходов, которые ещё добавятся. NO каждого исхода группы не показываем. Только там, где документация площадки обещает не больше одного YES; каждый исход один раз; «Other» дополняемой группы Polymarket не берём, как велит её документация. YES + NO одного рынка проверяем тоже, но на этих площадках стакан NO — зеркало стакана YES: вместе они всегда стоят $1 плюс спред.

Не показываем то, что арбитражем не является: суммы отображаемых цен, середин спреда и последних сделок (по ним не купить); YES всех исходов, когда список исходов неполный; NO всех исходов, когда исходы не исключают друг друга (лестницы дат и порогов, «какие штаты выиграет…»); один исход дважды; покупку плеч по очереди; игровые деньги. Комбинаторный арбитраж между логически связанными рынками не строим: площадки не публикуют, какие вопросы зависят друг от друга, а связь, угаданная по названиям, — выдуманная вилка.

Цена плеча — лучшее предложение на продажу (ask) в стакане площадки; ask NO на зеркальном стакане — 1 минус бид YES. Глубина — по стакану: берём комплекты, пока следующий ещё дешевле выплаты, пока не кончится капитал или стакан. Где глубины нет, считаем по лучшей цене за один комплект и пишем, что глубина неизвестна. Минимальный размер заявки площадки не учитываем.

Межплощадочный арбитраж — проверка ботов Polymarket–Kalshi: ask YES на одной площадке плюс ask NO того же события на другой меньше $1 после комиссий; держим оба плеча до разрешения. Спортивные наборы — та же проверка для одной игры и одной ставки, совпавших по лиге, сторонам, началу, типу ставки и линии, с правилами расчёта, сверенными по их тексту. Остальные события сопоставляем по словам названия, числам (пороги, даты), стороне исхода, дате окончания и источнику разрешения. Разные числа, годы, месяцы, направление («выше» и «ниже»), партия или даты окончания дальше недели — не пара. Площадки могут разрешить одно событие по-разному, поэтому каждая такая строка помечена «условия разрешения могут отличаться», если обе не публикуют дословно один текст правил.

Тоталы и форы на разных линиях одной игры (на двух площадках или на одной) проверяем по матрице выплат: для каждого возможного итогового счёта считаем, сколько платят плечи по правилам своих рынков. Вилка — только если при любом счёте она платит не меньше $1 и каждое плечо где-то платит одно. Пример: больше 2,5 на одной площадке и меньше 3,5 на другой — при 3 голах платят оба ($2), при любом другом счёте одно ($1). Чистый и процент считаем только по минимальной выплате. Исход матча с ничьей на трёх площадках — каждый исход один раз, по лучшему ask. Лайв: каждое плечо не старше 10 секунд, плечи разошлись не больше чем на 5 секунд (по замерам задержек площадок) и оба сняты после последнего изменения счёта по данным Polymarket и Kalshi; где счёт не публикуется, строка помечена «состояние матча не подтверждено» и не даёт сигнала бота. Каждая карточка показывает максимум своего столбца среди строк, прошедших фильтры. Устаревшие котировки и различия правил отмечаем предупреждениями; они не меняют выбор максимума.

Комиссии тейкера — по правилам каждой площадки, ниже. Где комиссия рынка неизвестна, чистый результат не указываем. Дни до выплаты — до последней даты разрешения плеч; годовые — простые, без капитализации. Капитал в долларах; USDC, USD1 и доллар на счёте Kalshi — разные деньги, курс 1:1 между ними не гарантирован.

Списки рынков читаются раз в 2–4 минуты, стаканы кандидатов — каждые 20 секунд. Плечо старше 5 минут или плечи, разошедшиеся больше чем на 3 минуты, помечены ⚠. Сайт только показывает данные: не торгует и не просит ключи.

Площадки и комиссии

Polymarket: тейкер платит акции × ставка категории × p(1−p) (0 на геополитике), мейкер — ничего; расчёт в USDC; в США, Великобритании, Германии, Франции, России и ряде других стран — только закрытие позиций, в санкционных регионах закрыт. docs

Kalshi: тейкер платит 0,07 × множитель серии × C × P × (1−P), округление вверх до цента; расчёт в долларах; биржа под надзором CFTC, торговля по Member Agreement, среди запрещённых юрисдикций — Австралия, Канада, Франция, Индия, Сингапур, Великобритания. docs

Limitless: тейкер на новых площадках — 5 % × (1 − цена) от суммы в USDC, на старых стаканах 0,40–3,00 % купленных акций (формула не опубликована, считаем 3 %); расчёт в USDC; торговля недоступна из США, Китая, Онтарио и Альберты. docs

Myriad: тейкер платит ставку из taker_fee_bps_array рынка для его цены, мейкер — ничего; расчёт в токене рынка (USD1, USDT, USDC); ограничения по странам в документации не указаны. Рынки на AMM не читаем. docs

Hyperliquid: комиссия берётся только при закрытии или расчёте позиции, ставка для исходов не опубликована — чистый результат не указываем; расчёт в USDC; данные — публичный info API без ключа и WebSocket. docs

Opinion: тейкер платит ставку темы × p(1−p) от суммы, 0–1 %, не меньше $0,25 за сделку; ставки темы нет в API, поэтому считаем 1 % (оценка снизу); расчёт в USDT; условия закрывают торговлю из США, Великобритании, Франции, Онтарио, Сингапура, Польши, Таиланда, Южной Кореи, Китая, Тайваня, Гонконга. Читаем только документированный публичный API, не сайт. docs

Binance: прогнозы Binance Web3 Wallet: все запросы, даже к рыночным данным, подписываются ключом. Выключено, пока вы не зададите ключ только с правом чтения командой npm run predictions:setup; ставка комиссии в API без единиц — чистый результат не указываем. docs

SX Bet: тейкер платит 1 % от прибыли выигравшей ставки, мейкер — ничего; ставка задаётся для аккаунта, поэтому считаем 1 % на каждом плече (оценка снизу); расчёт в USDC; отменённая игра аннулируется и все ставки возвращаются — правила по отмене отличаются от других площадок, такие вилки помечены ⚠. Список рынков открыт, цены читаются по ключу API. docs

Predict.fun: тейкер платит базовую ставку рынка (feeRateBps, 200 = 2 %) × min(цена, 1 − цена) за акцию, со скидкой на 10 % меньше; мейкер — ничего; минимальная заявка 1 USDT; разрешение — оракул UMA по правилам рынка. Все данные, даже рыночные, читаются по ключу API. docs

Manifold: игровые деньги (мана): только для сравнения, никогда не как арбитраж. docs

Не используем: PredictIt (из этой сети отвечает 403), Drift BET (документация теперь только о бессрочных контрактах), Gemini Predictions (нет глубины по REST), Novig (каждый запрос с ключом), Betfair (нужен ключ и сессия).