Учебник по ботам Полимаркет · Глава 14 из 32
Новостной арбитраж на Полимаркет: как обыгрывать рынок на заголовках, источники новостей (RSS/Twitter/AP), бюджеты задержки, фильтры ложных срабатываний и когда новостное преимущество исчезает в цене рынка.
Что охватывает эта глава
Новостной арбитраж — это стратегия торговли на публичной информации быстрее, чем рынок успевает переоценить. Преимущество реальное, но узкое — большую часть времени к моменту, когда человек успевает прочитать «новость», она уже в цене. В этой главе мы разбираем, какие источники реально обыгрывают рынок, какой бюджет задержки определяет стратегию, и какой фильтр ложных срабатываний нужен, чтобы бот не торговал на каждый ретвит.
- Как выглядит информационное преимущество
- Источники новостей: RSS, Twitter, AP, официальные фиды
- Бюджет задержки: от прочтения до сделки менее чем за 2 секунды
- Фильтры ложных срабатываний
- Когда новостное преимущество умирает
- Код: опрос новостной ленты и отправка FOK на релевантные рынки
- Риск: полуправда и опровергнутые заголовки
Как выглядит информационное преимущество
Новостной арбитраж означает торговлю на публичной информации быстрее, чем рынок успевает переоценить. Преимущество существует в узком окне — обычно 30-300 секунд — между моментом, когда факт становится публичным, и тем, как Полимаркет его отражает.
Чтобы преимущество было реальным, должны выполняться три условия. Во-первых, источник новостей должен быть быстрее, чем медианный трейдер Полимаркет (Twitter быстрее массовой прессы; новостная лента AP быстрее Twitter). Во-вторых, новость должна быть однозначной (объявление о травме, судебное решение) — трактовка съедает задержку. В-третьих, рынок должен быть достаточно широким, чтобы движение цены оправдывало издержки на спред.
Боты, которые охотятся за этим преимуществом, делятся на два лагеря: те, кто подписывается на прямые источники и парсит их, и те, кто следит за необычным движением цены на Полимаркет и делает вывод, что новость уже случилась. Оба подхода допустимы; первый ведёт, второй следует.
Источники новостей: RSS, Twitter, AP, официальные фиды
Источники, ранжированные по задержке до статуса публичной информации, самые быстрые — первыми.
- Прямые первичные источники: судебные материалы, правительственные пресс-релизы, объявления центральных банков. Часто имеют публичный RSS или API. Самые быстрые, с самой низкой частотой ложных срабатываний.
- Новостная лента AP / Reuters Eikon (платно). Лента, которой пользуются традиционные трейдеры. Примерно на 5-30 секунд опережает потребительский Twitter.
- Twitter (X, платный API). Списки верифицированных аккаунтов: официальные аккаунты организаций, профильные репортёры. Бесплатные API слишком ограничены по частоте запросов; платите за Pro tier или используйте сервис-ретранслятор.
- Специализированные рассылки / Discord: платные Substacks, отраслевые фиды под эмбарго. Полезно для нишевых рынков (криптовалюты, киберспорт).
- Сайты массовой прессы: слишком медленно для преимущества новостного арбитража.
RSS — для всего, что публикует RSS: это бесплатно, а интервалы опроса надёжны. Twitter — для остального. AP — для серьёзных боевых новостных редакций.
Бюджет задержки: от прочтения до сделки менее чем за 2 секунды
Бот должен получить, классифицировать, принять решение и разместить ордер в сумме за 1-2 секунды. Бюджет:
- Получение: 50-300мс (фид WebSocket, опрос RSS, поток Twitter).
- Классификация: 50-200мс (regex / совпадение по ключевому слову, опционально LLM, если вы кэшируете промпт).
- Решение: 50мс (поиск по таблице правил; сопоставление тега новости и slug рынка).
- Размещение: 200-500мс (подписанный ордер FOK в CLOB).
Самый большой пожиратель бюджета — классификация с помощью LLM. Один вызов GPT-4 на 500 токенов добавляет 1-3 секунды; и всё окно арбитража исчезает. Для продакшена классифицируйте с помощью правил по ключевым словам; используйте LLM только для офлайн-калибровки набора ключевых слов.
Фильтры ложных срабатываний
Боты новостного арбитража, которые не фильтруют ложные срабатывания, торгуют на каждый ретвит и теряют деньги на издержках на спред. Вот три фильтра.
- Белый список источников: действуйте только на аккаунты/фиды из заранее одобренного списка. Список небольшой (10-30 источников).
- Пара «ключевое слово + подтверждение»: одно совпадение по ключевому слову — это шум; совпадения в двух независимых источниках в течение 30с — это сигнал.
- Защита по состоянию рынка: пропускайте рынки, которые уже сдвинулись > 5% за последние 60 секунд — кто-то другой уже поймал новость, преимущество исчезло.
Частота ложных срабатываний хорошо настроенных фильтров: примерно 1 из 5-10. Частота ложных срабатываний в 90% уничтожает стратегию; 50% ещё приемлемы при небольших размерах позиции.
Когда новостное преимущество умирает
Окно от «новость публична» до «цена отражает новость» закрывается с каждым годом быстрее. В 2020 политические рынки со средней ценой занимали минуты, чтобы переварить заголовок. В 2026 те же заголовки сжимаются до 30-90 секунд до того, как цена полностью сдвинется.
Признаки того, что преимущество умерло: PnL на сделку по отмеченным сделкам падает с +3c до нуля на окне из 30 сделок; доля ложных срабатываний, которые оказываются уже учтёнными в цене, поднимается выше 70%; рынок исполняет вашу заявку FOK в течение 200мс, потому что кто-то другой добрался туда первым.
Честный разворот, когда преимущество умирает: переходите к более медленным, более требующим трактовки новостям (судебные решения, протоколы заседаний центрального банка), где разбор смысла занимает больше времени, чем гонка задержек. Или прекращайте запускать стратегию.
Код: опрос новостной ленты и отправка FOK на релевантные рынки
Боевой каркас: опрашивать источник новостей, прогонять совпадения по правилам, отправлять ордера FOK при срабатываниях.
import feedparser, time, re
from py_clob_client.client import ClobClient
RULES = [
{"regex": re.compile(r"out for season|torn ACL", re.I), "tag":"injury-fade"},
{"regex": re.compile(r"federal reserve.*(rate cut|rate hike)", re.I), "tag":"fed-move"},
]
seen = set()
while True:
feed = feedparser.parse("https://example.com/news.rss")
for entry in feed.entries[:20]:
if entry.id in seen: continue
seen.add(entry.id)
for rule in RULES:
if rule["regex"].search(entry.title + " " + entry.summary):
# Look up relevant Полимаркет markets, place FOK
fire(rule["tag"], entry)
break
time.sleep(15)
Интервалы опроса: 5-15 секунд для RSS. WebSocket, где доступен (Twitter, новостная лента AP). Всегда убирайте дубли по ID, предоставленному источником; никогда не предполагайте, что опрос — это строго однократная операция.
Риск: полуправда и опровергнутые заголовки
Самый плохой день для бота новостного арбитража — когда заголовок оказывается неверным. Примеры: твит Reuters говорит "Trump fires Yellen", рынок подскакивает на 8 центов, через 12 минут твит удаляют и исправляют. Бот, который купил на +8c, теперь держит запас на -3c без возможности что-то сделать.
Защита:
- Подтверждение из двух источников: никогда не торгуйте на одном твите; требуйте подтверждающий сигнал от второго независимого источника в течение 60-180 секунд.
- Размер позиции, масштабируемый по доверию к источнику: новостная лента AP = полный размер; Twitter от верифицированного профильного репортёра = 50%; источник слухов = 25%.
- Автоматический выход по сигналу опровержения: если источник, который вы использовали, выпускает исправление в течение 30 минут, выходите по рынку независимо от PnL.
Проблема с опровержениями — это жёсткий потолок для размера позиции в новостном арбитраже. Торговля на $50 за сигнал позволяет пережить 30% ложных срабатываний; торговля на $500 — нет.


