Polymarket Scanner Bot
Оглавление:
Предисловие
Я уже давно сижу на полимаркете, как минимум год публично пишу, что это один из наиболее явных проектов под отработку. При этом я постоянно думал, как бы так правильно начинать его отрабатывать, чтобы ещё и зарабатывать при этом.
Вош-трейдинг для этой задачи не подходил, т.к. тупо сибильская деятельность + найти адекватные спреды, чтобы хотя бы в 0 набивать объёмы - это очень трудная задача, поверьте мне, таких ботов тьма, мы тоже пытались их разрабатывать. А теперь ещё и баны прибавились, если вы совсем обнаглевший сибилка.
Дельта-нейтральные стратегии для этого очень классно подходят, но дельта-нейтральные стратегии - это прямо работа. Надо сидеть искать эти сделки, высчитывать математику и стопы. Вам повезло, если вы нашли профильное сообщество и там люди делятся сделками, а не просто закрывают ликву своими сумками.
В какой-то момент размышлений, мне в голову и пришла идея со статистической торговлей. Частично вдохновение я получил от ребят из Semolina, когда они запустили своё обучение арбитражу на фонде, но мне хотелось что-то прямо именно внутри крипты. А учитывая моё лудоманское прошлое (покерист в прошлом, не как Пеллигриныч офк, но на хлеб с маслом зарабатывал), вот тут-то и пригодилась различная математическая статистика. Какое-то время я пользовался своим алгоритмом в кастомном режиме, тяп-ляп из консоли, но спустя время вот привёл его в солидный и более-менее опрятный вид.
Введение
Polymarket Scanner - это система автоматического поиска и анализа прибыльных возможностей на платформе Polymarket. Система использует передовые математические модели для расчета вероятностей, Expected Value (EV) и Критерию Келли для оптимального размера ставок.
(Что такое EV - ссылка, что такое Критерий Келли - ссылка, читать не обязательно для понимания работы сканера)
Смысл в том, что вам не нужно находиться за компом 24/7 в поиске сделок, в которые можно залететь по дельта-нейтралке. Бот сам ищет и отфильтровывает сделки, которые недооценены/переоценены рынком и сигнализирует вам об этом.
Таким образом, был разработан бот, который трекает за меня сделки и анализирует их. Что реализовано на текущий момент:
🔸 Трекинг всех сделок формата bitcoin/etheteum/solana-above-X-date (пока что, планирую поглотить вообще все рынки с этими активами).
🔸 Трекинг ордербука на ликвидность.
🔸 Расчёт дисперсии актива, к примеру BTC поминутно за 2 года с бОльшим весом к последним свечам.
🔸 Расчёт матожидания сделки на основе дисперсии.
Автоматическое обнаружение недооцененных рынков с положительным математическим ожиданием (EV), предоставление точных рекомендаций по размеру ставок и мгновенные уведомления через Telegram-бота.
На текущий момент бот является помощников в отработке Polymarket'а с положительным APY. Это не значит, что вы будете зарабатывать каждый месяц такую какую-то сумму, это значит, что на большой дистанции вы выйдете в плюсовые показатели + будете иметь аккаунты отработанные с реальной не фейковой активностью, которая не накручена вош-трейдингом. Надо понимать, что стрики могут быть как в одну, так и в другую сторону. Цифры в 5-8% показывают как бектесты, так и мои результаты за месяцы калибровки системы.
Архитектура бота
Инструкция как считывать данные из бота
/start
Запускает бота, проверяет доступ/подписку и показывает первичный экран.
💳 Оплатить доступ
Открывает оплату и выбор тарифа. После успешного платежа нужно послать TXID админу @tawer95 в личку, я активирую подписку вручную.
Главное меню (доступно после подписки)
📊 Возможности
Обзор функций сканера: какие сигналы/рынки поддерживаются и как с ними работать.
Существует 4 вида сделок - парные, одиночные, просто рендж и комбинированные рендж. В заголовке на кнопке указаны детали по сделке по порядку:
АКТИВ - Направление сделки (может быть коридор) - дата экспирации - EV сделки.
Парные - это когда вы ставите на диапазон, то есть "BTC будет выше 100к и ниже 110к", то есть коридор. В этом случае вы ставите на нижнюю границу в 100к - YES, а на высокую границу в 110к - NO. Пример такой сделки мы будем разбирать на втором скрине.
Одиночные - это когда вы ставите только в одну сторону, то есть будет ли выше/ниже BTC 110к в сроку экспирации. Пример такой сделки на скрине 3.
Разберём парную сделку, потому что одиночная - это такая же, что и парная, но там меньше показателей.
Комбинированные рендж - это когда вы ставите на диапазон 130$-140$ + 140$-150$ по SOL или любому другому активу.
Просто рендж - это когда вы ставите на диапазон 130-140 по SOL или любому другому активу.
Первый блок - общая информация.
Первые 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. Максимальная просадка = -25% (при ограничении ставок в 3.5% за ногу)
Также, стоит упомянуть, что сам полик не хранит у себя в базе данных уровни ликвидности на момент сделок, так что мне пришлось и эмулировать посредством спреда. Я брал старые сделки, смотрел среднюю цену (эти данных хранятся в API), ставил спред текущих сделок и таким образом эмулировал старые сделки. А настоящий бектест уже идёт 20 дней и показывает динамику даже чуть лучше, чем я описал.
РИСК-МЕНЕДЖМЕНТ
Критерий Келли - это математическая формула, которая определяет оптимальный размер ставки для максимизации долгосрочной прибыли при минимизации риска банкротства. Почему Келли важен, повторюсь, я расписывал здесь - 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к сделок, чтобы получить регрессию к среднему, либо закрывать их в момент схлопывания неэффективности. То есть, когда модель и рынок показывают, что цена контракта и модель сравнялись. Такая сделка пропадает из списка бота, т.к. она не проходит фильтры уже.
Она может и в минус уйти и в плюс, но она становится "справедливой", поэтому я бы их закрывал, когда они пропадают из бота со стабильным аптаймом, то есть если их нет уже полчаса+
И последняя рекомендация, ведите дневник сделок. Он поможет вам легче ориентироваться в текущих ставках, чтобы видеть, какие позиции у вас открыты и в какую сторону. Так вы наметите у себя в голове тренд на движение + будет легче менеджерить сделки.
Подписка
При работе с ботом, я пришёл к выводу, что дистанция - это главное в обработке, поэтому помесячную подписку я отменяю, она останется только у тех, кто входил в 1 и 2 поток.
Стоимость подписки за 3 месяца: 149$ USDT ERC-20 в ARB, OP или BSC сетях.
Для получения адреса, переходите в бота - @polymarket_scanner_bot, нажимайте start и кнопку "Оплата доступ", после этого вам бот пришлёт инструкции для оплаты. После оплаты, бот hodlpass добавит вас в приватную группу и в бота PolymarketScanner.
Если вы зашли по какой-то цене, к примеру, по 149$, то даже если цены в будущем будут подниматься, то для вас она фиксирована на все будущие продления, если вы не вылетали из бота. Бот сам контролирует время подписки и выбьет у вас доступ, если время закончится.
Кроме этого, держите в голове, что текущий бот - это не основная вещь в группе, упор будет сделан именно на отработки предикшнов, которые я постоянно мониторю и проверяю на неэффективности, на горячие темки и другие ставки. Иногда будут проскакивать арбитражи.
И ещё, я бы рекомендовал заходить с минималкой в 1000$ на полимаркете, потому что иначе вы просто не заработаете особо на этом.
Функционал бота постоянно расширяется, так что со временем буду набирать всё больше людей, так что если кому-то не хватит слота, извините, в следующий раз попробуйте прокинуть заявку или напишите мне в личку, обсудим.