К основному содержанию
скилл CX Codex

betting — скилл для Claude Code: расчёт ставок и поиск арбитража

Считает вероятности, edge и размер ставки по критерию Келли. Пригодится, когда есть коэффициенты из двух источников и надо понять, есть ли перевес.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add machina-sports/sports-skills --skill betting -a claude-code
Открыть на GitHub

Что делает betting

Скилл betting из набора machina-sports/sports-skills занимается только расчётами. Он переводит коэффициенты между форматами (американский, десятичный, вероятность), снимает маржу букмекера через devig, ищет перевес между честной вероятностью и рыночной ценой, считает оптимальную долю банка по критерию Келли, проверяет арбитраж, разбирает парлеи и движение линии.

Коэффициенты он не добывает. Их надо взять заранее — из спортивных скиллов для ESPN или из polymarket/kalshi — и уже потом передавать в анализ. Поэтому первым шагом всегда идёт devig: без снятой маржи сравнение с ценой предсказательного рынка даёт бессмысленный результат. Формат тоже надо указать точно — american, decimal или probability, иначе команда падает с ValueError: unknown format.

Работать можно двумя способами: через CLI sports-skills betting <команда> или через Python SDK from sports_skills import betting. Команд вроде get_odds, calculate_ev и compare_markets здесь нет — если чего-то не хватает, сверьтесь с references/api-reference.md. При слишком большой доле Келли (выше 0.5) авторы советуют пересчитать честную вероятность и взять половину или четверть от неё.

Какие задачи решает

  • перевести американские коэффициенты в вероятность и десятичный формат
  • снять маржу букмекера и получить честные вероятности
  • сравнить цену ESPN с ценой Polymarket и найти перевес
  • посчитать размер ставки по критерию Келли
  • проверить, складывается ли арбитраж из цен двух площадок

Примеры запросов агенту

  • ESPN даёт -150 на хозяев, Polymarket — 52 цента. Есть ли тут перевес?
  • Сними маржу с -150,+130 и посчитай оптимальную долю банка
  • Проверь арбитраж: Polymarket 0.48 на хозяев, Kalshi 0.49 на гостей

Как установить betting

1Через Skills CLI (Vercel)

npx skills add machina-sports/sports-skills --skill betting -a claude-code

2Вручную: положить файлы

~/.claude/skills/betting/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/betting/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора21

football-data Скилл даёт агенту данные о футболе: таблицы, расписание, статистику матчей, xG, трансферы и прогнозы. Ключи API не нужны. CX Codex +1 2 300установок polymarket Читает спортивные рынки Polymarket: цены, вероятности, стаканы заявок и события. Пригодится, когда нужно узнать, кого букмекеры считают фаворитом. CX Codex +1 1 300установок sports-news Тянет свежие спортивные заголовки из RSS-лент и Google News, ищет по запросу и фильтрует по датам. Пригодится, когда нужны трансферные слухи или отчёты о матчах. CX Codex +1 1 200установок kalshi Скилл даёт агенту доступ к рынкам предсказаний Kalshi: события, серии, контракты, сделки и свечи по спортивным исходам. Пригодится, когда нужны цены-вероятности, а не результаты матчей. CX Codex +1 1 000установок nba-data Скилл для загрузки статистики NBA, счёта матчей и координат бросков через CLI без API-ключей. Пригодится при анализе игр, составов и истории лиги с 1946 года. CX Codex +1 989установок markets Скилл связывает расписания ESPN с рынками прогнозов Kalshi и Polymarket: единые дашборды, сравнение цен и оценка ставки. CX Codex +1 861установок nfl-data Скилл даёт агенту доступ к расписаниям, составам, статистике и play-by-play NFL через публичные эндпоинты ESPN и nflverse. Ключи API не нужны. CX Codex +1 752установок mlb-data Скилл даёт доступ к текущим и архивным данным MLB из ESPN и официального API лиги. Пригодится, когда агенту нужны счета матчей, ростеры, списки травм или метрики бросков. CX Codex +1 737установок

Похожие

sports-betting-analyzer OneWave-AI Разбирает спреды, тоталы и проп-ставки на основе исторических трендов и ситуационной статистики. Подходит для образовательного анализа спортивных рынков. CX Codex +1 808установок bet-sizing JoelLewis Считает, какую долю капитала отдать одной позиции: критерий Келли, дробный Келли, риск-бюджет, лимиты концентрации. Пригодится, когда портфель надо разложить по весам, а не на глаз. CX Codex +1 718установок risk-management-trading omer-metin Скилл для расчёта размера позиции, стоп-лоссов и просадки. Пригодится, когда агент помогает с торговой стратегией или портфелем. CX Codex +1 393установок crypto-trading-bots omer-metin Скилл для ИИ-агента, который помогает писать и разбирать автоматические торговые системы на крипторынке: снайперы DEX, арбитраж, защита от MEV и рагпулов. CX Codex +1 917установок llmquant-prediction-markets LLMQuant Скилл-маршрутизатор для работы с прогнозными рынками: вероятности событий, условия расчёта контрактов, арбитраж между площадками. CX Codex +1 496установок polymarket-analyzer mjunaidca Ищет арбитраж, анализирует стакан котировок и всплески объёмов на Polymarket. Пригодится трейдерам на рынках предсказаний для расчёта расхождений цен без ключей API. CX Codex +1 486установок

Рядом в теме «Финансы и бизнес»

Всё по теме «Финансы и бизнес» →

Вопросы о betting

Как установить betting в Claude?

Выполните npx skills add machina-sports/sports-skills --skill betting -a claude-code. Скилл появится в ~/.claude/skills/betting/SKILL.md.

Что делает скилл betting?

Считает вероятности и перевес: конвертация коэффициентов, снятие маржи, edge, критерий Келли, арбитраж, парлеи, движение линии. Сами коэффициенты он не загружает.

Нужны ли ключи API для работы?

Нет, это чистые вычисления без обращений к сети. Но коэффициенты придётся получить отдельно — через спортивные скиллы для ESPN или polymarket/kalshi.

Исходный текст

SKILL.md · MIT
---
name: betting
description: |
  Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement. Pure computation, no API calls. Works with odds from any source: ESPN (American odds), Polymarket (decimal probabilities), Kalshi (integer probabilities).

  Use when: user asks about bet sizing, expected value, edge analysis, Kelly criterion, arbitrage, parlays, line movement, odds conversion, or comparing odds across sources. Also use when you have odds from ESPN and a prediction market price and want to evaluate whether a bet has positive expected value.
  Don't use when: user asks for live odds or market data — use polymarket, kalshi, or the sport-specific skill to fetch odds first, then use this skill to analyze them.
license: MIT
metadata:
  author: machina-sports
  version: "0.2.0"
---

# Betting Analysis

Before writing queries, consult `references/api-reference.md` for odds formats, command parameters, and key concepts.

## Quick Start

```bash
sports-skills betting convert_odds --odds=-150 --from_format=american
sports-skills betting devig --odds=-150,+130 --format=american
sports-skills betting find_edge --fair_prob=0.58 --market_prob=0.52
sports-skills betting evaluate_bet --book_odds=-150,+130 --market_prob=0.52
sports-skills betting find_arbitrage --market_probs=0.48,0.49
sports-skills betting parlay_analysis --legs=0.58,0.62,0.55 --parlay_odds=600
sports-skills betting line_movement --open_odds=-140 --close_odds=-160
```

Python SDK:
```python
from sports_skills import betting

betting.convert_odds(odds=-150, from_format="american")
betting.devig(odds="-150,+130", format="american")
betting.find_edge(fair_prob=0.58, market_prob=0.52)
betting.find_arbitrage(market_probs="0.48,0.49")
betting.parlay_analysis(legs="0.58,0.62,0.55", parlay_odds=600)
betting.line_movement(open_odds=-140, close_odds=-160)
```

## CRITICAL: Before Any Analysis

CRITICAL: Before calling any analysis command, verify:
- Odds format is correctly identified (american, decimal, or probability).
- ESPN odds are de-vigged with `devig` before computing edge vs prediction market prices.
- This module computes — it does not fetch. Obtain odds from sport-specific skills or polymarket/kalshi first.

## Workflows

### Compare ESPN vs Polymarket/Kalshi

1. Get ESPN moneyline odds (e.g., from `nba get_scoreboard`): Home: `-150`, Away: `+130`
2. Get Polymarket/Kalshi price for the same outcome (e.g., home at `0.52`)
3. De-vig: `devig --odds=-150,+130 --format=american` → Fair: Home 57.9%, Away 42.1%
4. Compare: `find_edge --fair_prob=0.579 --market_prob=0.52` → Edge: 5.9%, EV: 11.3%
5. Or all in one step: `evaluate_bet --book_odds=-150,+130 --market_prob=0.52`

### Arbitrage Detection

1. Get best price per outcome from different sources (Polymarket home at 0.48, Kalshi away at 0.49)
2. `find_arbitrage --market_probs=0.48,0.49 --labels=home,away`
3. Total implied 0.97 (< 1.0) → arbitrage found, guaranteed ROI: 3.09%

### Parlay Evaluation

1. De-vig each leg: Leg 1 → 0.58, Leg 2 → 0.55, Leg 3 → 0.50
2. `parlay_analysis --legs=0.58,0.55,0.50 --parlay_odds=600`
3. Returns combined fair probability, edge, and Kelly fraction

### Line Movement Analysis

1. Get ESPN open and close lines: Open -140, Close -160
2. `line_movement --open_odds=-140 --close_odds=-160`
3. Returns probability shift, direction, and classification (sharp_action, steam_move, etc.)

## Examples

Example 1: Edge check using ESPN and Polymarket prices
User says: "Is there edge on the Lakers game? ESPN has them at -150 and Polymarket has them at 52 cents"
Actions:
1. Call `devig(odds="-150,+130", format="american")` → fair home probability ~58%
2. Call `find_edge(fair_prob=0.58, market_prob=0.52)` → edge ~6%, positive EV
3. Call `kelly_criterion(fair_prob=0.58, market_prob=0.52)` → optimal bet fraction
Result: Present edge percentage, EV per dollar, and recommended bet size as % of bankroll

Example 2: Arbitrage opportunity detection
User says: "Can I arb this? Polymarket has home at 48 cents and Kalshi has away at 49 cents"
Actions:
1. Call `find_arbitrage(market_probs="0.48,0.49", labels="home,away")`
2. Check `arbitrage_found` in result
Result: If arbitrage: present allocation percentages and guaranteed ROI. If not: present overround and explain no guaranteed profit

Example 3: Parlay evaluation
User says: "Is this 3-leg parlay at +600 worth it?"
Actions:
1. De-vig each leg to get fair probabilities (e.g., 0.58, 0.62, 0.55)
2. Call `parlay_analysis(legs="0.58,0.62,0.55", parlay_odds=600)`
Result: Present combined fair probability, edge, EV, +EV or -EV verdict, and Kelly fraction

Example 4: Line movement interpretation
User says: "The line moved from -140 to -160, what does that mean?"
Actions:
1. Call `line_movement(open_odds=-140, close_odds=-160)`
Result: Present probability shift, direction, magnitude, and classification (sharp action, steam move, etc.)

Example 5: De-vig a standard spread
User says: "What are the true odds for this spread? Both sides are -110"
Actions:
1. Call `devig(odds="-110,-110", format="american")`
Result: Present each side as 50% fair probability, vig is ~4.5%

Example 6: Odds format conversion
User says: "Convert -200 to implied probability"
Actions:
1. Call `convert_odds(odds=-200, from_format="american")`
Result: Present 66.7% implied probability and 1.50 decimal odds

## Commands that DO NOT exist — never call these

- ~~`get_odds`~~ — does not exist. This module analyzes odds; it does not fetch them. Use nba-data/nfl-data/etc. for ESPN odds, or polymarket/kalshi for prediction market prices.
- ~~`calculate_ev`~~ — does not exist. Use `find_edge` or `evaluate_bet` instead.
- ~~`compare_markets`~~ — does not exist. Use the `markets` skill for cross-platform comparison.

If a command is not listed in `references/api-reference.md`, it does not exist.

## Troubleshooting

Error: `ValueError: unknown format` when calling `convert_odds`
Cause: The `from_format` parameter is not one of `american`, `decimal`, or `probability`
Solution: Use exactly `american`, `decimal`, or `probability` as the format string

Error: `find_edge` returns negative EV when a positive edge is expected
Cause: Fair probability and market probability may be reversed, or de-vigging was skipped
Solution: Run `devig` on sportsbook odds first, then pass the de-vigged `fair_prob` to `find_edge`

Error: `find_arbitrage` shows no arbitrage even when prices seem low
Cause: Prices may sum to more than 1.0 when all outcomes are correctly included
Solution: Verify you are using the correct probabilities for all outcomes; check `total_implied` in the result

Error: Kelly fraction is very high (greater than 0.5)
Cause: Edge estimate is very large — often from a miscalculated fair probability
Solution: Use half-Kelly or quarter-Kelly for conservative sizing. Re-verify fair probability via `devig`

© machina-sports · MIT · machina-sports/sports-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой