October 7

Polymarket Scanner Bot

Оглавление:

Предисловие

Введение

Архитектура бота

Инструкция

Математическая модель

Риск-менеджмент

Стратегии

Подписка

Предисловие

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

Вош-трейдинг для этой задачи не подходил, т.к. тупо сибильская деятельность + найти адекватные спреды, чтобы хотя бы в 0 набивать объёмы - это очень трудная задача, поверьте мне, таких ботов тьма, мы тоже пытались их разрабатывать. А теперь ещё и баны прибавились, если вы совсем обнаглевший сибилка.

Дельта-нейтральные стратегии для этого очень классно подходят, но дельта-нейтральные стратегии - это прямо работа. Надо сидеть искать эти сделки, высчитывать математику и стопы. Вам повезло, если вы нашли профильное сообщество и там люди делятся сделками, а не просто закрывают ликву своими сумками.

В какой-то момент размышлений, мне в голову и пришла идея со статистической торговлей. Частично вдохновение я получил от ребят из Semolina, когда они запустили своё обучение арбитражу на фонде, но мне хотелось что-то прямо именно внутри крипты. А учитывая моё лудоманское прошлое (покерист в прошлом, не как Пеллигриныч офк, но на хлеб с маслом зарабатывал), вот тут-то и пригодилась различная математическая статистика. Какое-то время я пользовался своим алгоритмом в кастомном режиме, тяп-ляп из консоли, но спустя время вот привёл его в солидный и более-менее опрятный вид.

Введение

Polymarket Scanner - это система автоматического поиска и анализа прибыльных возможностей на платформе Polymarket. Система использует передовые математические модели для расчета вероятностей, Expected Value (EV) и Критерию Келли для оптимального размера ставок.

(Что такое EV - ссылка, что такое Критерий Келли - ссылка, читать не обязательно для понимания работы сканера)

Смысл в том, что вам не нужно находиться за компом 24/7 в поиске сделок, в которые можно залететь по дельта-нейтралке. Бот сам ищет и отфильтровывает сделки, которые недооценены/переоценены рынком и сигнализирует вам об этом.

Таким образом, был разработан бот, который трекает за меня сделки и анализирует их. Что реализовано на текущий момент:

🔸 Трекинг всех сделок формата bitcoin/etheteum/solana-above-X-date (пока что, планирую поглотить вообще все рынки с этими активами).

🔸 Трекинг ордербука на ликвидность.

🔸 Расчёт дисперсии актива, к примеру BTC поминутно за 2 года с бОльшим весом к последним свечам.

🔸 Расчёт матожидания сделки на основе дисперсии.

Основная цель:

Автоматическое обнаружение недооцененных рынков с положительным математическим ожиданием (EV), предоставление точных рекомендаций по размеру ставок и мгновенные уведомления через Telegram-бота.

На текущий момент бот генерирует 10-15% в месяц ПО МАТОЖИДАНИЮ. Это не значит, что вы будете зарабатывать каждый месяц такую сумму, это значит, что на большой дистанции вы выйдете на эти показатели. Надо понимать, что стрики могут быть как в одну, так и в другую сторону. Цифры в 10-15% показывают как бектесты, так и мои результаты за месяц калибровки системы.

Архитектура бота

как на блок схеме выглядит бот (техническая часть)
вот так бот выглядит для пользователя (UX часть)

Инструкция как считывать данные из бота

/start
Запускает бота, проверяет доступ/подписку и показывает первичный экран.

Первичный экран

💳 Оплатить доступ
Открывает оплату и выбор тарифа. После успешного платежа нужно послать TXID админу @tawer95 в личку, я активирую подписку вручную.

Главное меню (доступно после подписки)

Так выглядит главное меню, лаконично

📊 Возможности
Обзор функций сканера: какие сигналы/рынки поддерживаются и как с ними работать.

Какие неэффективности есть сейчас, чаще обновляйте кнопкой, обновы приходят раз в две-две с половиной минуты. (скрин 1)
Как выглядят детали по сигналу неэффективности для парной сделки. (скрин 2)
Как выглядят детали по сигналу неэффективности для одиночной сделки. (скрин 3)

Сначала скрин 1:

Существует 2 вида сделок - парные и одиночные. В заголовке на кнопке указаны детали по сделке по порядку:

АКТИВ - Направление сделки (может быть коридор) - дата экспирации - EV сделки.

Пример: BTC 102000 - 110000 25.10.25 (+8.5%)

Парные - это когда вы ставите на диапазон, то есть "BTC будет выше 100к и ниже 110к", то есть коридор. В этом случае вы ставите на нижнюю границу в 100к - YES, а на высокую границу в 110к - NO. Пример такой сделки мы будем разбирать на втором скрине.

Одиночные - это когда вы ставите только в одну сторону, то есть будет ли выше/ниже BTC 110к в сроку экспирации. Пример такой сделки на скрине 3.

Разберём парную сделку, потому что одиночная - это такая же, что и парная, но там меньше показателей.

Итак, смотрим на скрин 2.

Первый блок - общая информация.
Первые 4 строчки пояснять - это главные показатели по сделки, на основе чего принималось решение ботом: EV сделки, Цена, Целевое направление и Срок Экспирации.

Второй блок - финансовые детали.
Первые 2 строчки - дублирующая информация. А следующие 2 строки - это размер алокации, которую бот посчитал оптимальной по Келли. Банкролл - это ваш капитал, который вы занесли на полик для ставок. Пусть будет 1000$, из этого все расчёты в будущем. Итак, там есть размер ставки и общая алокация, в данном случае они одинаковые, но иногда они будут отличаться, пока это не учитывайте. То есть, из 1000$ вам нужно поставить 53$ на эту ставку, что как раз равно 5.3%. Почему именно такие ставки, мы будем проходить в разделе математики.

Третий блок - вероятности.
Бот считает вероятность попадания цены в коридиор - 1 строчка - выше и ниже коридор - 2 и 3 строчки. Эта информация также описана в разделе математики.

Четвёртый блок - размеры ставок на каждую ногу/плечо.
На низ коридора 3700 за 1 ETH мы ставим 3.5% банкролла, то есть 35$ из расчёта на 1000$. На низ мы всегда ставим на YES, не перепутайте!
Если ваш банкролл равен 2500, то считается это так: 2500$ (ваш банкролл) * 0.035 (1 нога) = 87.5$

На верх коридора 4100 за 1 ETH мы ставим 1.5% банкролла, то есть 15$. Ставим на NO, т.к. на верх мы всегда ставим на NO.
Если ваш банкролл равен 2500, то считается это так: 2500$ (ваш банкролл) * 0.015 (1 нога) = 37.5$

Пятый блок - Потенциальная прибыль: Первая строка - это сколько вы заработаете в % от банкролла на момент ставки, если цена останется в этом коридоре, в нашем случае 3700-4100. Вторая-третья строка - убытки в случае закрытия цены выше/ниже.

Шестой блок - Преимущества/недостатки Здесь в зависимости от типа сделки (парная/одиночная) будет написана информация, почему лучше искать парные сделки.

Седьмой блок - Уровни ликвидности Тут мы увидим сколько денег стоит на уровнях, от которых бот считал EV сделки. В нашем случае на 3700 будет стоять 1542$ на уровне 0.73 на YES и на 4100 будет стоять 5405$ на уровне 0.76 на NO.

С одиночными сделками всё то же самое, за исключением блока с ногами.

🔔 Алёрты
Бот поддерживает трекинг событий в формате "EV/режим сделки/вероятность победы/вид актива". Вы можете настроить комбинированную вероятность, к примеру:

Только парные сделки, только сделки по BTC, только с вероятностью 60% и выше, EV выше 5%

Пример моего алёрта прямо сейчас

👤 Личный кабинет Здесь находятся все ваши данные - ID, Username, Дата регистрации в бота (когда вы первый раз нажали /start), количество открытых алёртов, а также самое важное - срок подписки. Если подписка будет подходить к концу, вас бот сам уведомит, когда срок будет подходить к концу, так что вы не забудете.

❓ Помощь
Ну тут всё совсем просто. Справка и FAQ из главного меню, быстрые ссылки на мою личку.

Математическая модель

Модель вероятностного ценообразования ассетов - Geometric Brownian Motion (GBM)

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

Система использует классическую модель Geometric Brownian Motion (GBM) для прогнозирования движения цен криптовалют. Это стандартная модель, используемая в финансовой математике для описания движения цен активов. Эту модель используют все современные хедж-фонды, фэмели фонды и другие крупные кампании для расчёта и моделирования цен активов и опционов, а также для расчёта риск-профиля по ним.

Простыми словами: GBM - это математическая формула, которая описывает как изменяется цена актива со временем, учитывая случайные колебания (волатильность) и общий тренд (дрейф). Я использую именно историческую волатильность, а не ожидаемую волатильность из опционов.

ВАЖНАЯ ДЕТАЛЬ: я считаю, что крупные активы - BTC, ETH, SOL двигаются в краткосроке не по прихотям маркетмейкера, чтобы ловить ваши стопы, а имеют природу Броновского движения. Ясное дело, что если вы приверженец Слёз Сатоши, то для вас модель не работает, можете скипать бота.

Пример: Если теоретическая модель говорит, что вероятность роста ETH выше $4,500 составляет 35%, это означает, что в 35 случаях из 100 цена будет выше этого уровня.

Система строит свои прогнозы на 2 уровнях, а именно:

🔸 Теоретическая вероятность (Black-Scholes)

Это математическая модель, основанная на теории финансовых рынков, а именно на исторической волатильности. Если мы знаем текущую цену ETH ($4,100), волатильность (50%) и время до события (10 дней), то можем математически рассчитать вероятность того, что цена будет выше $4,500.

Теоретическую часть считаю примерно так:

Теоретическая часть

🔸 Эмпирическая вероятность (Исторические данные)

Система анализирует реальные исторические цены ETH за последние 90 дней. Мы смотрим, как часто цена ETH действительно поднималась на определенный процент за определенное время в прошлом. Тут формулу вставлять не буду, определения достаточно, единственное скажу, что я заякореваю эмпирику ближе к рынку, чтобы сильно не отрываться по EV в хвостах, иначе бот иногда показывает сделки +250% EV со ставкой по цене 0.015.

🔸Комбинированная финальная вероятность

Финальная вероятность строится на основе обоих вариантов

P(finally) = 0.7 * P_theoretical + 0.3 * P_empirical

На самом деле, у любого прогноза есть пара изъянов - точность и чёрный лебедь. Ну за чёрный лебедь я пояснять не буду, это очевидно, а вот про точность хотел бы уточнить.

Я прогонял несколько бектестов в сделках с полимаркетом, расчёты проводились методом Монте-Карло с 1000 итераций. Показатели брались ровно такие же, как у меня в сканере, а потом сравнивались с резолвами. У меня получались такие показатели:
1. Бриер скор = < 0.15.
2. Шарп ратио = 0.8 - 1.2.
3. Максимальная просадка = -15% (при ограничении ставок в 3.5% за ногу)

Также, стоит упомянуть, что сам полик не хранит у себя в базе данных уровни ликвидности на момент сделок, так что мне пришлось и эмулировать посредством спреда. Я брал старые сделки, смотрел среднюю цену (эти данных хранятся в API), ставил спред текущих сделок и таким образом эмулировал старые сделки. А настоящий бектест уже идёт 20 дней и показывает динамику даже чуть лучше, чем я описал.

РИСК-МЕНЕДЖМЕНТ

Kelly Criterion

Критерий Келли - это математическая формула, которая определяет оптимальный размер ставки для максимизации долгосрочной прибыли при минимизации риска банкротства. Почему Келли важен, повторюсь, я расписывал здесь - https://t.me/tawer_crypt/841, в посте с критикой Толстушки.

Зачем он нужен? Келли помогает ответить на вопрос "Сколько денег ставить?" - не слишком мало (упускаем прибыль), но и не слишком много (рискуем потерять много).

Примеры в моделировании без Келли с и ним:

Бросок монеты с положительным матожаданием, но отрицательным геометрическим средним.
Та же модель, что и выше, но с применением критерия Келли.

Применяемые ограничения (безопасность превыше всего):

Почему нужны ограничения? Келли может давать слишком агрессивные рекомендации (например, 25% банкролла), что опасно даже для верняковых сделок, поэтому есть несколько фильтров, чтобы ограничивать его, а именно:

- Фракционный Келли: 33% от оптимального размера (захардкодил в канареечном режиме, чтобы сильно не рисковать)

- Максимальная ставка: при банкролле 1000$ - 4% от банкролла на одну сделку.

- Групповой лимит: 7% на связанные события (YES + NO не будет превышать 5%)

Результат: Консервативный, но прибыльный подход к управлению капиталом.

Стратегии:

Т.к. бот выдаёт различные варианты недооценки, там есть множество сигналов, начиная с пары сделок ДА-НЕТ с диапазоном (к примеру 102к-110к через неделю) и шансом победы 60-70%, заканчивая одиночными с EV под 10-15% на сделку и вероятностью победы в 5%.

Очевидно, что каждый из этих сигналов имеет различную частоту входа, ведь шанс победы в 5% подразумевает, что мы проиграем 19 из 20 раз, но в 20 получим прибыль сполна. Если заходить в сделки бездумно, можно остаться без банкролла вообще.

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

🔹 Первое и важнейшее правило - Свободный капитал мы считаем только тем, который у нас НЕ в сделках! Если у вас 1000$ и вы уже поставили 100, а сделка ещё не закончена, то % от банкролла для следующей ставки, который рекомендует бот, вы считаете ОТ 900$!!!

🔹 Второе - Если у вас уже стоит сделках на один срок экспирации (на 24.11 к примеру) И на один актив (к примеру - на BTC), вы больше НЕ ставите на такую конструкцию.
Пример: стоит ставка на BTC above 110k к 24.11.
✅ Новую ставку на BTC above 110k к 25.11 ставить можно.
❌ Новую ставку на BTC above 112k к 24.11 ставить нельзя.

🔹 Третье - При выборе ставки, не выбирайте противоположные исходы, если в них нет арбитража или дельта-нейтральных ставок. Очень странная ставка, если на 24.11 вы ставит биткоин выше 118к, а на 25.11 - биткоин ниже 102к. Бот будет выдавать такие сделки, т.к. он сам не ставит и он просто показывает недооценку рынка.
Единственные варианты, когда так можно ставить - вы ожидаете волатильность и будете закрывать свои позиции раньше точно, но это несёт свои риски, сделки могут пойти неравномерно и в разные стороны.

🔹 Далее, для тех, кто не собирается крыть сделки раньше времени, а просто покупать и ждать, я составил примерный список, какие сделки стоит выбирать:

Если для удержания до конца, то исходим из 2 вещей - чем меньше время до экспирации, тем лучше. Чем выше EV - тем ещё лучше.

  • На парную сделку меньше 3.5-4% EV и больше, чем день, я бы не брал.
  • На парную сделку с EV 4-6% уже брал бы с экспирацией день-два, мб 3.
  • На парную сделку с EV 6+% уже смотрел бы в индивидуальном порядке по времени и по распределению, какой коридор будет. С ЕВ выше 8 и если цена внутри коридора, я бы почти любую брал. Если текущая цена вне коридора и высокий ЕВ - надо думать, тут ответа у меня нет.
  • Одиночку с EV меньше 4% вообще не беру.
  • Одиночку с EV 5-6% за день-два.
  • Одиночку с EV 8+% почти люблю экспирацию.

Но держите в голове, что бот показывает 2 вида одиночек - высоковероятные (когда показывает 50-60+% на победу) и хвосты (когда вероятность победы варьируется от 5 до 50%). Всё что выше я писал - про высоковероятные, они обычно на последних страницах.

У хвостов нужна другая стратегия, либо вам нужно ставить 10к сделок, чтобы получить регрессию к среднему, либо закрывать их в момент схлопывания неэффективности. То есть, когда модель и рынок показывают, что цена контракта и модель сравнялись. Такая сделка пропадает из списка бота, т.к. она не проходит фильтры уже.

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

И последняя рекомендация, ведите дневник сделок. Он поможет вам легче ориентироваться в текущих ставках, чтобы видеть, какие позиции у вас открыты и в какую сторону. Так вы наметите у себя в голове тренд на движение + будет легче менеджерить сделки.

Подписка

Стоимость месячной подписки: 49$ USDT ERC-20 в ARB, OP или BSC сетях.

Для получения адреса, переходите в бота - @polymarket_scanner_bot, нажимайте start и кнопку "Оплата доступ", после этого вам бот пришлёт инструкции для оплаты. После оплаты в ERC-20 (не перепутайте, не TRC-20 сеть!), кидайте мне в личку хэш транзы, я руками вас добавлю. Стараюсь всех добавлять как можно быстрее, но ночью могут быть задержки, я всё-таки сплю :)

Если вы зашли по какой-то цене, к примеру, по 49$, то даже если цены в будущем будут подниматься, то для вас она фиксирована на все будущие продления, если вы не вылетали из бота. Бот сам контролирует время подписки и выбьет у вас доступ, если время закончится.

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

И ещё, я бы рекомендовал заходить с минималкой в 1000$ на полимаркете, потому что иначе вы просто не заработаете особо на этом.

Функционал бота постоянно расширяется, так что со временем буду набирать всё больше людей, так что если кому-то не хватит слота, извините, в следующий раз попробуйте прокинуть заявку или напишите мне в личку, обсудим.

Ну и напоследок, не теряйся, тюленьчик.

Крипто-Шелки, Tawer's мюсли