Когда пользователи пытаются применять нейросети для анализа рынков предсказаний вроде децентрализованного Polymarket или регулируемой американской биржи Kalshi, результат часто разочаровывает. Прямые вопросы модели в духе «Кто победит на выборах?» или «Снизит ли регулятор процентную ставку?» приводят к тривиальным ответам без учета котировок, комиссий и законов теории вероятностей.
Чтобы превратить модель в эффективный инструмент, требуется замкнутый исследовательский контур (AutoML Research Loop), объединяющий математическую строгость Claude Opus 5.5 с анализом биржевых стаканов и жестким риск-менеджментом.
Анатомия рыночной неэффективности: как убрать букмекерскую маржу
Котировки на рынках предсказаний представляют собой вероятности, выраженные в ценах от 0 до 1 доллара или USDC. Однако сумма цен исходов («Да» и «Нет») на бирже почти никогда не равна единице: из-за спреда между лучшим покупателем и продавцом сумма составляет 1,03–1,05. Эту разницу называют маржой или «вигом» (Vig).
Первая задача автоматизированного контура — нормализовать данные и удалить комиссию маркетмейкеров. Истинная рыночная вероятность вычисляется нормализацией цен исходов на их сумму ($P_ = P_ / \sum P$). Только после этого очищенные значения передаются аналитической модели для сопоставления со спортивной статистикой или котировками казначейских облигаций США. Калибровка предсказаний Claude по шкале Brier Score достигает 0,224 против 0,247 у случайного выбора, доказывая наличие статистического перевеса.
Сбор стаканов заявок и первичный фильтр ликвидности
Пайплайн на Python подключается к CLOB API Polymarket. До запуска рассуждений нейросети скрипт отсеивает неликвидные позиции: если спред превышает 3% или в стакане доступно менее $500, сделка отменяется правилом «лучший шаг — пропустить контракт».
import requests
def fetch_and_clean_orderbook(token_id: str):
"""Выгрузка стакана заявок Polymarket и проверка ликвидности."""
url = f"https://clob.polymarket.com/book?token_id={token_id}"
response = requests.get(url, timeout=10).json()
bids, asks = response.get("bids", []), response.get("asks", [])
best_bid = float(bids[0]["price"]) if bids else 0.0
best_ask = float(asks[0]["price"]) if asks else 1.0
if (best_ask - best_bid) > 0.03:
return None, "Широкий спред — риск проскальзывания"
return (best_bid + best_ask) / 2.0, "OK"
Математический аудит Claude Opus 5.5 и расчет критерия Келли
Если контракт прошел фильтр, данные передаются в Claude Opus 5.5. Модель рассчитывает вероятность события ($p_$) и перевес ($edge = p_ - P_$). При перевесе от 2% скрипт вычисляет размер ставки по дробной формуле Келли (Quarter Kelly), защищающей баланс от просадки:
import json
from anthropic import Anthropic
client = Anthropic()
def evaluate_market_decision(market_title: str, clean_prob: float, context_data: dict):
"""Генерация торгового вердикта и сайзинга позиции через Claude."""
user_query = f"""
Контракт: {market_title}, Очищенная вероятность: {clean_prob:.3f}
Данные: {json.dumps(context_data, ensure_ascii=False)}
Рассчитай: p_model, edge, decision ('TAKE' при edge >= 0.02 иначе 'PASS'),
дробный критерий Quarter Kelly: f = 0.25 * (edge / (1 - clean_prob)).
Верни строго JSON.
"""
response = client.messages.create(
model="claude-opus-5-5",
temperature=0.0,
max_tokens=400,
messages=[{"role": "user", "content": user_query}]
)
return json.loads(response.content[0].text)
Дисциплина риска как основа долгосрочного успеха
Успешная работа с вероятностями строится на дисциплине стоп-лоссов, а не на интуитивных догадках. Инженерная система на базе Claude Opus 5.5 отсеивает свыше 90% контрактов из-за низких объемов ликвидности или неясных формулировок исхода. Автоматический конвейер стабильно фиксирует редкие рыночные аномалии, полностью исключая эмоциональные ошибки трейдера.
