Я проиграл 72% сделок на Polymarket — и впервые вышел в плюс

Я проиграл 72% сделок на Polymarket — и впервые вышел в плюс

В прошлой статье я рассказывал, как бот на Polymarket сделал 1014 сделок, выиграл 78,8% и всё равно потерял деньги. Финальная цифра того прогона — 1 298 сделок, winrate 80,1%, P&L −$89.98. Это был первый прогон.

Тогда я обещал второй. Добавить один фильтр и посмотреть, что изменится.

Прошло 89 часов. Вот что получилось.

Второй прогон: 47 сделок. Winrate 27,7%. P&L +$2.09.

Статья короткая и про одно: почему эти два числа — winrate и прибыль — живут в разных вселенных. Если у вас есть что-то, где вы оцениваете вероятность события и покупаете его по какой-то цене (опционы, ставки, страхование, воронки маркетинга, любая бинарная классификация) — этот материал про вас.

Что было сломано

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

Контракт стоит $0.90 → нужно побеждать в 90% случаев, чтобы выйти в ноль. Побеждаешь в 89% — ты в минусе. При этом winrate формально «высокий».

Бот радостно брал такие контракты сотнями. Стратегия momentum_spike выигрывала 92,6% — и теряла деньги, потому что покупала по $0.88–0.94. Стратегия early_entry выигрывала реже — и тоже в минус. Стратегия contrarian проваливала всё подряд.

Что я сделал

Добавил в код одну проверку. Перед каждой сделкой бот считает: breakeven = цена контрактаedge = оценённая вероятность − breakeven

Если edge меньше 0.02 (меньше двух процентных пунктов запаса) — сделка не открывается. Просто игнорируется.

Всё. Больше ничего не трогал. Те же три стратегии, тот же банкролл, та же модель предсказаний на техническом анализе BTC с Binance WebSocket.

Что произошло за 89 часов

Бот увидел 2 623 потенциальные точки входа.

Открыл 47. Отменил 2 576. Коэффициент отсева — 98,2%.

Из 47 открытых выиграл 13. Winrate 27,7%. Суммарный P&L — плюс $2.09.

Так выглядит «правильный» winrate, когда смотришь не на процент побед, а на edge.

Три стратегии — три разных фильма

Я проиграл 72% сделок на Polymarket — и впервые вышел в плюс

early_entry: 21 сделка, winrate 61,9%, P&L +$46.86, средняя цена контракта $0.44. Эта стратегия вытащила весь прогон. 13 побед из 21. Средний edge — почти 10 процентных пунктов. Именно там, где моделька видела преимущество, оно оказалось реальным.

contrarian: 24 сделки, winrate 0%, P&L −$35.22, средняя цена $0.19. Катастрофа. Ноль побед на двух с лишним десятках сделок. И тут интересное: фильтр её почти не тормозил — отклонил всего 14 сделок со средним edge −7,6%. То есть по метрике edge её ставки выглядели разумно. А по результату — все до одной проиграли.

momentum_spike: 2 сделки, winrate 0%, P&L −$9.55, средняя цена $0.46. В первом прогоне она давала 92,6% побед и всё равно была в минусе. Теперь фильтр отсёк 815 её сделок (средний edge −44%, средний breakeven 94%) и пропустил только 2. Обе проиграны. Стратегия больше не генерит сделок — потому что почти всё, что она хочет взять, лежит в зоне «контракт уже дороже, чем шанс».

Вывод по contrarian важнее остальных: модель для неё не предсказывает цену. Она предсказывает шум. Фильтр edge работает только там, где внутренняя оценка вероятности хоть как-то связана с реальностью. У contrarian эта связь, похоже, отрицательная — модель смотрит на признаки разворота и стабильно ошибается. Поэтому стратегию надо не фильтровать, а удалить целиком.

Где деньги лежат на самом деле

Я проиграл 72% сделок на Polymarket — и впервые вышел в плюс

Я разбил все прошедшие фильтр сделки по цене контракта.

$0.10–$0.20: 18 сделок, winrate 0%, P&L −$26.17.

$0.30: 13 сделок, winrate 38,5%, P&L +$29.05.

$0.40–$0.50: 12 сделок, winrate 50%, P&L +$4.40.

$0.60: 2 сделки, winrate 100%, P&L +$9.29.

$0.70: 2 сделки, winrate 0%, P&L −$14.50.

Самая очевидная зона — $0.30–$0.60. 27 сделок, 13 побед, суммарно +$42.74. Это и есть сладкое пятно Polymarket при такой модели.

Что по краям.

Ниже $0.30 — модель видит «почти невозможное событие с бонусом», но рынок прав. Все 18 сделок в зоне $0.10–$0.20 проиграны. Ни единой победы. Отрицательный edge 3 к 1.

Выше $0.70 — слишком мало данных, и обе сделки проиграны. Там, где модель уверена на 80%, нужна уверенность не на 80%, а на 85–90%, чтобы перекрыть breakeven. Этой маржи у бота сейчас нет.

Откуда взялся плюс

Честно: общий +$2.09 — это не «winrate 27,7% сработал». Это одна стратегия перебила две другие.

early_entry: +$46.86

contrarian: −$35.22

momentum_spike: −$9.55

Сложи — получится +$2.09.

Если бы я запустил только early_entry, был бы плюс $47. Но даже эта цифра на 21 сделке ещё ничего не значит — статистики мало, я поймал удачный кусок. Вывод здесь другой: фильтр edge работает там, где у модели есть реальное предсказание.

У early_entry оно есть — отсюда 61,9% побед на дешёвых контрактах. У contrarian его нет — 24 сделки, ноль побед, и фильтр её не спасал, потому что отделить несуществующий сигнал от шума фильтр не умеет.

Поэтому правильный вывод из второго прогона — не «winrate 27,7% приносит прибыль». А вот такой: winrate — всё ещё бесполезная метрика, и это второй раз, когда данные это показывают.

Первый раз — WR 80% при минус $90. Второй раз — WR 28% при плюс $2. Оба числа ничего не говорят о том, работает ли бот. Считать надо edge.

Что дальше

По текущим данным второй прогон ещё идёт — осталось около 7 часов из запланированных 96. Финальные цифры могут сместиться на одну-две сделки, но вывод уже очевиден.

План на третий прогон:

1. Убрать contrarian. Стратегия не лечится фильтром. Она лечится удалением.

2. Ограничить цены $0.25–$0.65. Зона, где есть edge. Снаружи — шум.

3. Поднять порог edge с 0.02 до 0.05. Отсев станет ещё жёстче, сделок будет меньше, но каждая — более осмысленная.

4. Запускать дольше. 89 часов × ~0.5 сделки/час — статистика ещё слишком маленькая, чтобы говорить «работает». 47 сделок — это не результат, а гипотеза.

Главный вывод

Первая статья закончилась тезисом: winrate без edge — признак скорого минуса.

Эта заканчивается другим: низкий winrate с положительным edge — признак того, что ты наконец начал видеть рынок.

Бот раньше выигрывал 80% сделок и терял деньги. Теперь он проигрывает 72% и начал зарабатывать. Отличие в том, что он перестал брать лёгкие ставки и начал брать правильные.

Это два разных бота. Один верил в свою непобедимость. Второй научился отказываться от сделки.

Второй ещё ничего не доказал — $2 на 89 часах это не доказательство, а шанс. Но это первый раз, когда шанс появился.

Что забрать из этой истории

Если вам нечего делать с BTC-ботами на Polymarket — это нормально, статья всё равно про вас. Потому что модель «winrate vs edge» работает везде, где вы оцениваете вероятность события и платите за вход цену.

Опционы: премия — это ваш breakeven, прогноз — ваш edge.

Ставки у букмекера: коэффициенты — это breakeven, ваша оценка — edge.

Маркетинг: CAC — это цена контракта, конверсия в LTV — это winrate. Проверять нужно не CAC и не конверсию по отдельности, а их разницу.

ML-классификаторы: точность — это winrate. Цена ошибки и цена пропуска определяют breakeven. Модель с 95% accuracy бывает хуже модели с 65%, если асимметрия потерь перевёрнута.Страхование, факторинг, венчур: та же математика.

Один вопрос, который стоит задавать любой системе со ставками: «Какая минимальная точность нужна, чтобы не уйти в минус, и насколько мы её на самом деле превышаем?» Всё остальное — шум вокруг этого вопроса.

Бот ещё работает, код лежит на сервере, третий прогон начнётся после того, как я напишу в него фильтр по ценовому коридору и выкину contrarian. Результаты — там же.

3
Начать дискуссию