Betting

machina-sports/sports-skills/skills/betting

作者 machina-sports09eb7e8566f4MIT242 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫3 天前更新

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.

僅含說明Business & Finance
AI 產生的概覽

分析運動博彩賠率:格式轉換、去水、優勢與凱利下注、套利、串關和盤口變化。

功能
此技能對使用者或其他技能提供的賠率進行純計算。它可在美式、小數與機率格式之間轉換,去除抽水以取得公平機率,對照市場價格計算優勢與期望值,提供凱利下注比例建議,偵測各結果間的套利機會,評估串關,並解讀盤口變化。產出包括公平機率、優勢百分比、期望值、保證報酬率,以及銳利資金、蒸汽盤等分類結果。
適用情境
當使用者詢問下注金額、期望值、優勢分析、凱利準則、套利、串關、盤口變化、賠率轉換,或比較不同來源的賠率時使用。當已有博彩公司賠率和預測市場價格、需要判斷某筆投注是否具正期望值時也適用。它不用於取得即時賠率或市場資料,這些須先由其他技能取得。
執行需求
不附帶指令碼,僅為說明文件。它需要提供 betting 模組的 sports-skills 命令列工具或 sports_skills Python 套件,以及一份說明賠率格式與參數的參考檔案。它不呼叫 API,無需憑證或網路存取,但分析前必須先從其他地方取得賠率。

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=americansports-skills betting devig --odds=-150,+130 --format=americansports-skills betting find_edge --fair_prob=0.58 --market_prob=0.52sports-skills betting evaluate_bet --book_odds=-150,+130 --market_prob=0.52sports-skills betting find_arbitrage --market_probs=0.48,0.49sports-skills betting parlay_analysis --legs=0.58,0.62,0.55 --parlay_odds=600sports-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/sports-skills位於skills/betting提交09eb7e8

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架

更多來自 machina-sports/sports-skills 的技能

World Cup

machina-sports

Premium FIFA World Cup 2026 market & match intelligence — a hosted, read-only layer that fuses official match truth (fixtures, standings, squads, injuries, player performance) with live prediction markets (Kalshi + Polymarket: prices, order books, price history, movers, cross-venue edges) and AI-grounded context (prematch briefs, move explanations, fan/social pulse). Every entity carries a canonical machina URN cross-walked across api-football, sportradar, opta, entain and ESPN, so a market resolves to a fixture resolves to two teams. This skill is prompt-only and premium: it routes the agent to the hosted World Cup Intelligence project (a per-project Machina MCP server) via `machina-cli`. It runs no code locally and ships no API keys. Use when: the user wants World Cup 2026 odds + match context together, asks "what moved and why", wants a grounded market brief or fan-sentiment read on a fixture, or needs one stable id that joins markets ↔ fixtures ↔ teams across providers. Don't use when: the user wants fr

待分類2423 天前更新

Xctf Data

machina-sports

從 TFRRS 擷取 NCAA 越野賽與田徑運動員資料,並從 The Stride Report 取得新聞。

包含腳本
Data & Analytics2423 天前更新

Sports Reporter

machina-sports

透過 sports-skills 命令列工具取得即時資料,產生原創體育新聞文章。

包含腳本
Writing & Content2423 天前更新

Volleyball Data

machina-sports

透過 Nevobo API 取得荷蘭排球資料:積分榜、賽程、賽果、俱樂部、賽事與新聞。

Data & Analytics2423 天前更新

Polymarket

machina-sports

以唯讀方式存取 Polymarket 運動預測市場:賠率、價格、委託簿、賽事與市場搜尋。

包含腳本
Business & Finance2423 天前更新

Metadata

machina-sports

透過 TheSportsDB 查詢球隊隊徽、球員照片、球場與俱樂部資訊,並支援球隊與球員名稱搜尋。

Research & Analysis2423 天前更新