В процессе разработки @insidersdotbot я провёл множество обсуждений с командами высокочастотного маркет-мейкинга и арбитража. Самый частый вопрос — как построить эффективные арбитражные стратегии.
Наши пользователи, друзья и партнёры исследуют сложный, многомерный путь арбитража на @Polymarket. Если вы активный пользователь Twitter, вы наверняка видели посты вроде: «Я заработал X на prediction markets, используя Y арбитражную стратегию».
Однако большинство материалов чрезмерно упрощают суть арбитража, сводя всё к «это может каждый» или «просто используйте Clawdbot», не объясняя, как системно построить собственную арбитражную инфраструктуру.
Если вы хотите понять, как инструменты арбитража Polymarket действительно приносят прибыль, рекомендую статью @RohOnChain — это наиболее глубокий анализ, который я встречал.
Как и в предыдущей статье, из-за высокой технической сложности оригинала я переработал и дополнил материал, чтобы вы могли усвоить все ключевые моменты без необходимости обращаться к дополнительным источникам.
Предположим, вы видите рынок на Polymarket:
Цена YES $0,62, цена NO $0,33.
Вы думаете: 0,62 + 0,33 = 0,95 — меньше 1, значит, есть арбитраж! Покупаете YES и NO за $0,95, и в любом случае получаете $1,00, чистая прибыль $0,05.
Это верно.
Но есть проблема: пока вы вручную складываете цены, количественные системы действуют иначе.
Они одновременно анализируют 17 218 условий по 2^63 возможным комбинациям исходов, выявляя ценовые неэффективности за миллисекунды. Когда вы размещаете ордера, спред уже исчез. Система уже нашла аналогичные неэффективности в десятках связанных рынков, рассчитала оптимальные объёмы с учётом глубины стакана и комиссий, исполнила все сделки параллельно и перевела капитал к следующей возможности [1].
Разница не только в скорости. Это — математическая инфраструктура.
Рассмотрим пример.
Рынок A: «Победит ли Трамп в Пенсильвании?»
Цена YES $0,48, цена NO $0,52. В сумме $1,00.
Выглядит идеально — арбитража нет?
Нет.
Добавьте ещё один рынок — всё меняется.
Рынок B: «Победит ли Республиканская партия в Пенсильвании с перевесом более 5 процентных пунктов?»
Цена YES $0,32, цена NO $0,68. В сумме $1,00.
Каждый рынок по отдельности «нормален». Но есть логическая зависимость:
Президентские выборы в США решаются по штатам. Каждый штат — отдельное «поле битвы», и кандидат, набравший больше голосов, получает все голоса выборщиков (winner-takes-all). Трамп — кандидат от республиканцев. То есть «республиканцы победили в Пенсильвании» и «Трамп победил в Пенсильвании» — одно и то же событие. Если республиканцы выигрывают с перевесом более 5 пунктов, Трамп не просто побеждает, а делает это уверенно.
Иными словами, YES на рынке B (разгром республиканцев) — это подмножество YES на рынке A (Трамп побеждает): разгром всегда означает победу, но победа не всегда означает разгром.
Эта логическая связь создаёт арбитражные возможности.
Это как ставки на «Будет ли завтра дождь?» и «Будет ли завтра гроза?». Если есть гроза, значит, идёт дождь (гроза ⊆ дождь). Поэтому цена YES на «гроза» не должна быть выше цены YES на «дождь». Если рынок ошибается, можно купить дешево и продать дорого одновременно без риска — это арбитраж.
В любом рынке с n условиями существует 2^n комбинаций цен.
Кажется, это немного? Рассмотрим реальный пример.
Турнир NCAA 2010 года [2]: 63 игры, в каждой — победа/поражение. Это 2^63 = 9 223 372 036 854 775 808 комбинаций — более 9 квинтильонов. В рынке было более 5 000 ордербуков.
Насколько велико 2^63? Даже если проверять 1 миллиард комбинаций в секунду, потребуется около 292 лет, чтобы перебрать все. Поэтому полный перебор здесь невозможен.
Проверять каждую комбинацию? Вычислительно невозможно.
Теперь — выборы в США 2024 года. Исследователи нашли 1 576 пар рынков с потенциальной зависимостью [2]. Если в каждой паре по 10 условий, это 2^20 = 1 048 576 комбинаций на пару. Умножаем на 1 576 пар. Пока ваш ноутбук закончит, выборы уже пройдут.
Количественные системы решают задачу не «быстрее перебором», а вообще без перебора.
Они используют целочисленное программирование [3], чтобы описать «какие исходы допустимы».
Реальный пример: рынок Duke vs. Cornell — у каждой команды по 7 ордербуков (от 0 до 6 побед), всего 14 условий, или 2^14 = 16 384 комбинации.
Но есть ограничение: обе команды не могут выиграть больше 5 матчей, так как встретятся в полуфинале (только одна может пройти дальше).
Как целочисленное программирование решает это? Всего три ограничения:
Ограничение 1: Только один из 7 ордербуков Duke может быть истинен (у Duke только одно итоговое число побед).
Ограничение 2: Только один из 7 ордербуков Cornell может быть истинен.
Ограничение 3: Duke побед 5 + Duke побед 6 + Cornell побед 5 + Cornell побед 6 ≤ 1 (обе команды не могут столько выиграть).
Три линейных ограничения вместо 16 384 переборов.
Перебор против целочисленного программирования
Иначе говоря, перебор — это искать слово в словаре, читая всё подряд. Целочисленное программирование — сразу открыть нужную страницу. Не нужно проверять все варианты — достаточно описать, что такое «допустимый ответ», и алгоритм найдёт ошибочные цены.
Данные: 41% рынков дают арбитраж
В статье говорится, что исследователи проанализировали данные с апреля 2024 по апрель 2025 [2]:
• Проверено 17 218 условий
• В 7 051 условии найден арбитраж в одном рынке (41%)
• Медианное отклонение цены: $0,60 (должно быть $1,00)
• 13 подтверждённых кросс-рыночных арбитражей
Медианное отклонение $0,60 означает, что рынок часто отклоняется на 40%. Это не «почти эффективный» рынок — это «широко эксплуатируемый».
Найти арбитраж — одно, рассчитать оптимальную сделку — другое.
Нельзя просто «усреднить» или «подправить цены». Нужно проецировать текущее состояние рынка на арбитражно-безопасное пространство, сохраняя информационную структуру цен.
Интуитивный подход — найти «ближайшую допустимую цену» и торговать на разнице.
Математически это минимизация евклидова расстояния: ||μ - θ||²
Но этот подход считает все изменения цен равнозначными.
Переход с $0,50 до $0,60 и с $0,05 до $0,15 — оба изменения на $0,10, но их информационный смысл совершенно разный.
Почему? Потому что цены отражают подразумеваемые вероятности. Перемещение с 50% до 60% — умеренное изменение. С 5% до 15% — серьёзный скачок: почти невозможное событие становится «отчасти возможным».
Представьте: вес взрослого человека меняется с 70 до 80 кг — «немного поправился». С 30 до 40 кг — «от почти смерти до тяжёлой дистрофии». Одинаковое изменение в 10 кг, но смысл разный. Изменения цен около 0 или 1 несут гораздо больше информации.
Маркет-мейкер Polymarket использует LMSR (Logarithmic Market Scoring Rule) [4], где цены — это распределения вероятностей.
Здесь правильная метрика расстояния — не евклидова, а дивергенция Брегмана [5].
Для LMSR дивергенция Брегмана превращается в KL-дивергенцию (дивергенция Кульбака–Лейблера) [6] — меру «информационного расстояния» между двумя распределениями вероятностей.
Формулу запоминать не нужно. Достаточно знать:
KL-дивергенция автоматически придаёт больший вес изменениям у крайних цен. Переход с $0,05 до $0,15 «дальше» по KL-дивергенции, чем с $0,50 до $0,60. Это совпадает с интуицией: экстремальные изменения цен — это серьёзные информационные сдвиги.
Пример: на prediction market @zachxbt проект Axiom обошёл Meteora в последний момент из-за экстремального движения цены.
Проекция Брегмана против евклидовой проекции
Ключевой вывод из статьи:
Максимальная гарантированная прибыль любой сделки равна расстоянию проекции Брегмана от текущего состояния рынка до арбитражно-безопасного пространства.
Проще говоря: чем дальше цены рынка от «допустимого пространства», тем больше можно заработать. Проекция Брегмана подсказывает:
- Что покупать или продавать (направление проекции = направление сделки)
- Сколько покупать или продавать (с учётом глубины стакана)
- Сколько можно заработать (расстояние проекции = макс. прибыль)
Топовый арбитражёр заработал $2 009 631,76 за год [2]. Его стратегия — решать эту задачу оптимизации быстрее и точнее других.
Маргинальный политоп и арбитраж
Представьте, что вы стоите на горе, а у подножия — река (арбитражно-безопасное пространство). Ваше текущее положение (цены рынка) находится на некотором расстоянии от реки.
Проекция Брегмана помогает найти «кратчайший путь от вашей позиции к реке» — не по прямой, а с учётом рельефа (структуры рынка). Длина этого пути — ваша максимальная возможная прибыль.
Чтобы вычислить оптимальный арбитраж, нужна проекция Брегмана.
Но напрямую вычислить её невозможно.
Почему? Потому что арбитражно-безопасное пространство (маргинальный политоп M) содержит экспоненциально много вершин. Стандартная выпуклая оптимизация требует полного набора ограничений, то есть перебора всех допустимых исходов. Это невозможно на практике.
Гениальность алгоритма Франка–Вульфа [7] в том, что он не пытается решить всё сразу, а сходится к решению пошагово.
Как это работает:
Шаг 1: Начать с небольшого набора известных допустимых исходов.
Шаг 2: Оптимизировать по этому набору и найти текущее лучшее решение.
Шаг 3: С помощью целочисленного программирования найти новый допустимый исход и добавить его в набор.
Шаг 4: Проверить, достаточно ли близко к оптимуму. Если нет — вернуться к шагу 2.
Каждая итерация добавляет только одну вершину. Даже после 100 итераций вы отслеживаете лишь 100 вершин, а не 2^63.
Итерация Франка–Вульфа
Представьте, что вы ищете выход в огромном лабиринте.
Перебор — это пройти каждый путь. Метод Франка–Вульфа — выбрать случайный путь, а на каждом развилке спросить «проводника» (решатель целочисленного программирования): «В каком направлении отсюда наибольшая вероятность выхода?» Затем сделать шаг туда. Не нужно исследовать весь лабиринт — достаточно делать правильный выбор в ключевых точках.
Каждая итерация Франка–Вульфа требует решения задачи целочисленного линейного программирования. Теоретически это NP-трудная задача (нет известных быстрых универсальных алгоритмов).
Но современные решатели, такие как Gurobi [8], эффективно справляются со структурированными задачами.
Исследователи использовали Gurobi 5.5. Фактическое время решения [2]:
• Ранние итерации (мало завершённых игр): менее 1 секунды
• Средний этап (30–40 игр завершено): 10–30 секунд
• Поздний этап (50+ игр завершено): менее 5 секунд
Почему быстрее на поздних этапах? По мере определения результатов пространство допустимых решений сужается. Меньше переменных, жёстче ограничения, быстрее решение.
У стандартного Франка–Вульфа есть техническая проблема: при приближении цен к 0 градиент LMSR стремится к минус бесконечности, что вызывает нестабильность.
Решение — Barrier Frank-Wolfe: оптимизация не по всему политопу M, а по немного «суженной» версии M’. Параметр сжатия ε уменьшается адаптивно с каждой итерацией: сначала подальше от границы (для устойчивости), затем постепенно приближаясь к истинной границе (для точности).
На практике для сходимости достаточно 50–150 итераций [2].
В статье отмечается [2]:
В первых 16 играх турнира NCAA маркет-мейкер Frank-Wolfe (FWMM) и простой маркет-мейкер с линейными ограничениями (LCMM) работали схоже — решатель целочисленного программирования был ещё слишком медленным.
Но после 45 игр первая успешная проекция за 30 минут была завершена.
С этого момента FWMM обогнал LCMM по точности ценообразования на 38%.
Переломный момент — когда пространство исходов сузилось настолько, что целочисленное программирование укладывалось в торговое окно.
FWMM — как студент, который разогревается в начале экзамена, а потом начинает набирать обороты. LCMM — стабильный, но ограниченный студент. Ключевое отличие: у FWMM более мощное «оружие» (проекция Брегмана), но ему нужно время на «зарядку» (ожидание решателя).
Вы нашли арбитраж. Вы рассчитали оптимальную сделку с помощью проекции Брегмана.
Теперь нужно исполнить сделки.
Здесь терпит неудачу большинство стратегий.
Polymarket использует CLOB (Central Limit Order Book) [9]. В отличие от децентрализованных бирж, сделки в CLOB проходят последовательно — нельзя гарантировать исполнение всех ордеров одновременно.
Ваш арбитражный план:
Купить YES по $0,30. Купить NO по $0,30. Общая стоимость: $0,60. В любом исходе получить $1,00. Прибыль: $0,40.
Реальность:
Отправляете ордер на YES → исполняется по $0,30 ✓
Ваш ордер сдвигает цену рынка.
Отправляете ордер на NO → исполняется по $0,78 ✗
Общая стоимость: $1,08. Выплата: $1,00. Итог: минус $0,08.
Одна сторона исполнилась, другая — нет. Вы остались под риском.
Поэтому в статье учитываются только возможности с маржой прибыли более $0,05 [2]. Меньшие спреды съедаются риском исполнения.
Риск неатомарного исполнения
Не думайте, что всегда сможете исполнить ордер по лучшей цене. Нужно считать средневзвешенную по объёму цену (VWAP) [10].
Метод исследователей: для каждого блока в сети Polygon (примерно каждые 2 секунды) рассчитывать VWAP для всех сделок YES и всех NO в этом блоке. Если |VWAP_yes + VWAP_no - 1,0| > 0,02, это фиксируется как арбитражная возможность [2].
VWAP — это «средняя цена, которую вы реально платите». Если вы хотите купить 10 000 токенов, а в стакане $0,30 за 2 000, $0,32 за 3 000, $0,35 за 5 000 — ваш VWAP будет (2000×0,30 + 3000×0,32 + 5000×0,35) / 10 000 = $0,326. Это выше «лучшей цены» $0,30, которую вы видели.
Даже если цены не согласованы, ваша прибыль ограничена доступной ликвидностью.
Реальный пример [2]:
На рынке виден арбитраж: сумма цен YES $0,85. Потенциальная прибыль: $0,15 с доллара. Но глубина стакана по этим ценам — только $234. Максимальная извлекаемая прибыль: $234 × 0,15 = $35,10.
Для кросс-рыночного арбитража нужна ликвидность по всем позициям одновременно. Минимальная доступная ликвидность ограничивает потолок.
Поэтому на современных количественных платформах влияние цен ордеров на цену исполнения критично.
Это и есть решение проблемы в публичной бете.
Теория — чиста. Продакшн — хаотичен.
Вот как выглядит настоящая арбитражная система [2].
Реальные данные: WebSocket-подключение к API Polymarket [9], получение обновлений ордербуков (изменения цен/объёмов), уведомлений о сделках и событий создания/закрытия рынков.
Исторические данные: запрос событий контрактов через API Alchemy Polygon node — OrderFilled (исполнение сделки), PositionSplit (выпуск нового токена), PositionsMerge (сжигание токена).
Исследователи проанализировали 86 миллионов сделок [2]. Такой масштаб требует инфраструктуры, а не просто скриптов.
P.S. Сейчас мы
планируем открыть исходный код высокоскоростного торгового API. Если вы хотите использовать похожую модель и получить ранний доступ, пишите в личку.
В 305 рынках по выборам в США — 46 360 возможных пар. Анализ вручную невозможен.
Исследователи применили крупную языковую модель DeepSeek-R1-Distill-Qwen-32B для первичного отбора [2].
На вход: описания условий двух рынков. На выход: JSON с допустимыми комбинациями исходов.
Далее — три проверки: есть ли в каждом рынке ровно одно истинное условие? Число допустимых комбинаций меньше n × m (значит, есть зависимость)? Соответствует ли зависимый поднабор условиям арбитража?
Результат: 40 057 независимых пар (нет арбитража) → 1 576 зависимых пар (потенциальный арбитраж) → 374 пары, прошедшие строгий отбор → 13 пар, подтверждённых вручную [2].
Точность LLM на сложных рынках с несколькими условиями — 81,45%. Достаточно для первичного фильтра, но перед исполнением нужна ручная проверка.
Уровень 1: Простые линейные ограничения (LCMM). Быстрая проверка базовых правил — «сумма вероятностей равна 1», «если A влечёт B, то P(A) не может быть больше P(B)». Выполняется за миллисекунды, устраняет явные ошибки ценообразования.
Уровень 2: Проекция с помощью целочисленного программирования (Frank-Wolfe + Gurobi). Это ядро. Параметры: Alpha = 0,9 (извлечь не менее 90% доступного арбитража), начальный ε = 0,1 (сжатие на 10%), порог сходимости = 1e-6, лимит времени = 30 минут. Типичное число итераций: 50–150. Время решения одной итерации: 1–30 секунд [2].
Уровень 3: Проверка исполнения. Перед отправкой ордеров — симуляция исполнения по текущему стакану. Проверки: достаточно ли ликвидности? Какое ожидаемое проскальзывание? Какова гарантированная прибыль после проскальзывания? Превышает ли прибыль минимальный порог ($0,05)? Только если все критерии выполнены, происходит исполнение.
Стандартная формула Келли [11] определяет, какую долю капитала выделять на сделку. Для арбитража её нужно скорректировать с учётом риска исполнения:
f = (b×p - q) / b × √p
Где b — процент арбитражной прибыли, p — вероятность полного исполнения (оценка по глубине стакана), q = 1 - p.
Ограничение: не более 50% глубины стакана. Иначе ордер существенно сдвигает рынок.
С апреля 2024 по апрель 2025 общий извлечённый профит [2]:
Арбитраж по одному условию: купить обе стороны дешево $5 899 287 + продать обе стороны дорого $4 682 075 = $10 581 362
Ребалансировка рынка: купить все YES дешево $11 092 286 + продать все YES дорого $612 189 + купить все NO $17 307 114 = $29 011 589
Кросс-рыночный комбинированный арбитраж: $95 634
Итого: $39 688 585
Топ-10 арбитражёров получили $8 127 849 (20,5% от общего объёма). Топ-арбитражёр: $2 009 632 за 4 049 сделок, в среднем $496 за сделку [2].
Это не лотерея. Не удача. Это системное, математически точное исполнение.
Пока трейдеры читают «10 советов по prediction markets», что делают количественные системы?
Они с помощью целочисленного программирования анализируют зависимости между 17 218 условиями. Считают оптимальные арбитражные сделки через проекцию Брегмана. Запускают алгоритм Франка–Вульфа для борьбы с взрывом градиента. Используют VWAP для оценки проскальзывания и параллельного исполнения. Системно извлекают $40 млн гарантированной прибыли.
Разница не в удаче. Разница — в математической инфраструктуре.
Статья публична [1]. Алгоритмы известны. Прибыль реальна.
Вопрос только один: успеете ли вы построить такую систему до того, как будут извлечены следующие $40 млн?
• Маргинальный политоп → Множество всех допустимых цен. Цены должны лежать в этом регионе, чтобы не было арбитража.
• Целочисленное программирование → Описывает допустимые исходы с помощью линейных ограничений, без перебора. Сжимает 2^63 проверок в несколько ограничений [3].
• Дивергенция Брегмана / KL-дивергенция → Мера «расстояния» между двумя распределениями вероятностей, более точная, чем евклидова, для цен/вероятностей. Придаёт больший вес изменениям у экстремальных значений [5][6].
• LMSR (Logarithmic Market Scoring Rule) → Механизм ценообразования маркет-мейкера Polymarket; цены — подразумеваемые вероятности [4].
• Алгоритм Франка–Вульфа → Итерационный алгоритм оптимизации, добавляющий по одной вершине за итерацию, без перебора экспоненциально многих исходов [7].
• Gurobi → Лидер среди решателей целочисленного программирования, «проводник» для каждой итерации Франка–Вульфа [8].
• CLOB (Central Limit Order Book) → Механизм торговли на Polymarket; ордера исполняются по очереди, без атомарности [9].
• VWAP (Volume Weighted Average Price) → Средневзвешенная по объёму цена, которую вы реально платите с учётом глубины стакана. Реалистичнее, чем «лучшая котировка» [10].
• Формула Келли → Определяет, какую долю капитала выделять на сделку, балансируя доходность и риск [11].
• Неатомарное исполнение → Проблема, когда нельзя гарантировать исполнение нескольких ордеров одновременно. Одна сторона исполнилась, другая — нет, возникает риск.
• DeepSeek → Языковая модель для поиска зависимостей между рынками, точность 81,45%.
[1] Оригинальный пост: https://x.com/RohOnChain/status/2017314080395296995
[2] Исследование “Unravelling the Probabilistic Forest: Arbitrage in Prediction Markets”: https://arxiv.org/abs/2508.03474
[3] Теория “Arbitrage-Free Combinatorial Market Making via Integer Programming”: https://arxiv.org/abs/1606.02825
[4] Объяснение LMSR: https://www.cultivatelabs.com/crowdsourced-forecasting-guide/how-does-logarithmic-market-scoring-rule-lmsr-work
[5] Введение в дивергенцию Брегмана: https://mark.reid.name/blog/meet-the-bregman-divergences.html
[6] KL-дивергенция — Wikipedia: https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
[7] Алгоритм Франка–Вульфа — Wikipedia: https://en.wikipedia.org/wiki/Frank%E2%80%93Wolfe_algorithm
[8] Gurobi Optimizer: https://www.gurobi.com/
[9] Документация API CLOB Polymarket: https://docs.polymarket.com/
[10] Объяснение VWAP — Investopedia: https://www.investopedia.com/terms/v/vwap.asp
[11] Формула Келли — Investopedia: https://www.investopedia.com/articles/trading/04/091504.asp
[12] Статья Decrypt “The $40 Million Free Money Glitch”: https://decrypt.co/339958/40-million-free-money-glitch-crypto-prediction-markets





