January 4

Арбитраж Polymarket, Kalshi, Opinion | ПОЛНОЕ РУКОВОДСТВО

✍️ Перевод: https://x.com/securezer0/status/2007570038732271998?s=20
🦧 Подпишись на канал: https://t.me/cryptomokakke
📚 Больше статей: https://t.me/smart_sorting

Последние 3 месяца я был сосредоточен на том, как НАХОДИТЬ, ИСПОЛНЯТЬ и ЗАКРЫВАТЬ арбитражные сделки между тремя крупнейшими рынками предсказаний: Polymarket <> Kalshi <> Opinion

За это время я заработал десятки тысяч на прибыли, грантах и комиссиях, создавая арбитражные торговые боты и терминалы для:
Ставочных синдикатов <> Малых Рынков Предсказаний <> Ритейл Трейдеров

Параллельно с этим я использовал собственный капитал для поиска и торговли этими арбитражами, в среднем получая от 12% до 20% в месяц.

Арбитраж на рынках предсказаний прост по своей сути: всё, что вам нужно, — найти два рынка с функционально идентичными правилами, но с разными коэффициентами, например так:

Когда коэффициенты различаются и вы можете купить YES + NO суммарно дешевле $1, возникает арбитраж. В этом примере:

Buy 3,781 Opinion $NO for $2,228
Buy 3,781 Polymarket $YES for $1,437

Стоимость $3,664 | Профит $116

Я ненавижу гейткиперов, поэтому расскажу от А до Я, как создавать такие боты, а также стратегию, которую я использовал для торговли на этих рынках.

Не умеете кодить? Или не хотите тратить 3 месяца, чтобы дойти до этого уровня, как это сделал я? В конце этого документа у меня есть кое-что для вас.

АЛГОРИТМ

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

Но если вы хотите создать арбитражного бота, который реально зарабатывает деньги, всё нужно делать правильно с самого начала.

Первый шаг к успеху — идентификация идентичных рынков между платформами предсказаний.

Совпадающие Рынки

Вот пример.

Kalshi:
Los Angeles Mayoral Election winner?
→ Karen Bass

Polymarket:
Will Karen Bass win the 2026 Los Angeles mayoral election?

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

Поэтому я создал гибридный алгоритм сопоставления.

Трёхчастная система сопоставления (Trigram, Jaccard, Cosine) объединяется в единый гибридный скор. Затем все пары сортируются по убыванию, а фильтрация по порогу отсеивает совпадения с низкой уверенностью.

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

Следующий шаг — использование ИИ для подтверждения или отклонения оставшихся пар. Я думал, что это будет легко. Я ошибался. Это оказалось самой сложной частью всего проекта.

Проблема в том, что все LLM нестабильны. Вы можете отправить один и тот же рынок 10 раз — он подтвердит его 8 раз и отклонит 2 раза. Если сделать модель слишком детерминированной, начинаются абсурдные отказы:
«Отклонено, потому что “The FED” и “US FED” могут быть разными сущностями».

Если дать модели слишком много свободы: «Подтверждено, потому что тикеры $SPACEX и $SPAX функционально похожи».

Рынков слишком много и они слишком разные. Только потратив большие суммы на API-токены, можно понять, какие промпты работают, а какие — нет.

После долгого тестирования мне удалось создать один универсальный промпт, который работает более чем в 99.8% случаев.

Однако, если бы я начинал с нуля, я бы делал отдельные промпты под отдельные типы рынков. Это дало бы сопоставимое качество и заняло бы гораздо меньше времени.

В результате сотни тысяч потенциальных совпадений сократились всего до 5,000 реальных метчей — и мы переходим ко второму шагу.

ВОССОЗДАНИЕ ОРДЕРБУКОВ

Каждый раз, когда мне пишут в личку люди, которые пытались сделать собственного арбитражного бота или купили бота где-то в интернете и жалуются, что потеряли деньги на арбитраже, причина всегда одна и та же.

  • Им удалось сопоставить хотя бы часть рынков.
  • Они нашли разницу в ценах.
  • Они купили по 1000 шеров с каждой стороны.
  • Коэффициенты выровнялись (спред закрылся).
  • Они продали.
  • В итоге у них оказалось меньше денег, чем было изначально.

Что пошло не так?

Они не учли ликвидность.

Их бот говорил им: «13% спред → покупай YES и NO → прибыль 13%».

А на самом деле боту нужно считать, сколько шеров доступно к покупке при спреде 13%… при 12%… при 11% и так далее. С учётом того, как ваши покупки повлияют ОБА стакана.

Когда у вас есть стаканы, вы знаете, сколько ликвидности доступно на каждом ценовом уровне, а значит — можете покупать только то, что реально прибыльно. И тогда вы знаете фактический ROI в процентах.

Хороший бот скажет вам: «13% спред → купить 843 YES и NO → прибыль 10%».

Проблема в том, что это сделать непросто.
5 000 совпадений = 20 000 стаканов (YES и NO).
API имеет слишком большую задержку, особенно в таком масштабе, поэтому нужны вебсокеты.

Документация по вебсокетам Polymarket — ужасная. Практически нигде не описано, что означают типы сообщений. Плюс, на одно WS-соединение можно подписаться примерно только на 250 clob id, после чего данные начинают теряться.

Но если вы хотите сделать арбитражного бота, который работает, это нужно реализовать.

Когда у вас есть стаканы, вы можете посчитать спред:

Spread = 1 - (YES ASK + NO ASK)

Гораздо более сложный расчёт — это MAX EV и EV с учётом вашего банкролла. То есть ожидаемая прибыль в зависимости от того, сколько денег вы вкладываете. Сложность в том, что нужно учитывать два стакана одновременно, и ваши покупки будут двигать цену в обоих.

НАЧАЛО ТОРГОВЛИ

На этом этапе у вас уже есть вся информация, чтобы начинать брать арбитражи вручную. На самом деле большинство своих арбитражей я до сих пор обрабатываю именно вручную.

Каждый день существуют сотни неверных цен. Вот лишь некоторые из тех, которые бот нашёл и выложил на моём сайте (AlertPilot).

Автоматизация торговли — это то, над чем я всё ещё работаю, поэтому это оставлю для второй части. Сейчас, на мой взгляд, куда интереснее обсудить торговые стратегии для работы с арбитражами, которые вы уже видите в терминале.

Торговая СТРАТЕГИЯ

Сначала давайте разберём несколько распространённых заблуждений про арбитраж на prediction markets:

Спреды быстро закрываются, если брать арбитраж вручную:

  • Верно только для спортивных рынков и UP / DOWN
  • Большинство остальных спредов, которые мы находим, живут по несколько часов

Нужно ждать резолва рынка, чтобы зафиксировать прибыль:

  • Прибыль можно зафиксировать сразу после закрытия спреда (обычно через несколько дней)
  • Чем больше ваша позиция, тем дольше будет продаваться весь объём

Это недостаточно прибыльно

  • Это стратегия, где деньги делают деньги
  • Не имеет смысла при банкролле меньше $1,000

Теперь к стратегии. Первый шаг — выбор рынка для арбитража. Вариантов много, и поначалу легко тянуться к самому высокому EV (самой большой сумме в $), но есть куда больше факторов, которые нужно учитывать.

Какой процент спреда?
-> Именно он определяет ваш ROI

Много маленьких $ с большим спредом > один большой $ с маленьким спредом
-> Минимизируете риск одного рынка (не клади все яйца в одну корзину)

Насколько рынок сейчас актуален?
-> Если да, спред закроется быстрее и вы раньше выйдете из позиции

Опытный арбитражник, особенно с бэкграундом в спортивных ставках, схватит это гораздо быстрее, чем новичок. Мне понадобилась неделя или две, чтобы понять, какие рынки стоит брать, а какие — нет.

После выбора рынка у вас есть несколько вариантов входа в сделку:

Market buy с обеих сторон
-> моментально в позиции
-> платите часть комиссий (небольшие на Opinion, отсутствуют на Poly)

Лимитки с одной стороны, market buy по мере исполнения
-> лучшая цена (за счёт bid / ask спреда)
-> нет комиссий на maker-ордерах
-> более медленный вход / риск упустить спред, если не будет исполнений

Обычно я захожу через market buy с обеих сторон, если только не вижу, что спред устойчивый — тогда я также выставляю лимитные ордера.

При покупке крайне важно внимательно смотреть на то, что говорит бот: сколько покупать, как изменения ликвидности повлияют на ваши ордера и как комиссии отразятся на вашем итоговом ROI.

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

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

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

Также не обязательно продавать всё сразу.

В целом я бы сказал, что арбитраж этих рынков после того, как у вас уже есть бот, — это самая простая часть.

Но что если вы не умеете кодить?
Или у вас нет свободных трёх месяцев, чтобы заниматься этим каждый день?

Тогда вы можете просто использовать мой бот.

Arbitrage Bot от AlertPilot публикует сотни арбитражей Polymarket <> Kalshi <> Opinion каждый день, тысячи процентов спреда и сотни тысяч EV каждый месяц.

Посмотреть можно здесь -> AlertPilot.io/arb

✍️ Перевод: https://x.com/securezer0/status/2007570038732271998?s=20
🦧 Подпишись на канал: https://t.me/cryptomokakke
📚 Больше статей: https://t.me/smart_sorting