mcpField
B
betting

betting

github.com/machina-sports数据与数据库2611.6k 次安装今天更新
代码仓库

关于 betting

betting 是用于分析赔率和投注概率的技能,适合需要评估市场价格的用户。它提供赔率换算、去水、优势与套利分析等计算,但不负责获取赔率数据。

主要功能

  1. 01转换美式、十进制和概率赔率
  2. 02去除赔率中的水钱
  3. 03计算优势、期望值和投注评估
  4. 04检测套利机会
  5. 05分析串关和赔率变动

适用场景

  1. 01比较博彩公司赔率与预测市场价格
  2. 02检查不同来源的价格是否形成套利
  3. 03评估多场串关的概率和价值
  4. 04分析开盘与收盘赔率变化

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/machina-sports/sports-skills --skill betting

安装后在 Claude Code 中输入/betting确认已加载。

附带文件references/api-reference.md

详细介绍

博彩分析

编写查询前,请查阅 references/api-reference.md,了解赔率格式、命令参数和关键概念。

快速入门

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:

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)

重要:任何分析前

重要:调用任何分析命令前,请确认:

  • 已正确识别赔率格式(american、decimal 或 probability)。
  • 在计算相对于预测市场价格的优势时,已先对 ESPN 赔率进行去水处理(devig)。
  • 此模块负责计算,不负责获取数据。请先通过特定体育项目的技能或 polymarket/kalshi 获取赔率。

工作流

比较 ESPN 与 Polymarket/Kalshi
  1. 获取 ESPN 的独赢赔率(例如,来自 nba get_scoreboard):主队:-150,客队:+130
  2. 获取同一结果在 Polymarket/Kalshi 上的价格(例如,主队为 0.52)
  3. 去水:devig --odds=-150,+130 --format=american → 公平概率:主队 57.9%,客队 42.1%
  4. 比较:find_edge --fair_prob=0.579 --market_prob=0.52 → 优势:5.9%,EV:11.3%
  5. 或一步完成:evaluate_bet --book_odds=-150,+130 --market_prob=0.52
套利检测
  1. 从不同来源获取每种结果的最佳价格(Polymarket 上主队为 0.48,Kalshi 上客队为 0.49)
  2. find_arbitrage --market_probs=0.48,0.49 --labels=home,away
  3. 总隐含概率为 0.97(< 1.0)→ 找到套利机会,保证 ROI:3.09%
串关评估
  1. 对每一腿去水:第 1 腿 → 0.58,第 2 腿 → 0.55,第 3 腿 → 0.50
  2. parlay_analysis --legs=0.58,0.55,0.50 --parlay_odds=600
  3. 返回综合公平概率、优势和凯利比例
盘口变动分析
  1. 获取 ESPN 的开盘和收盘盘口:开盘 -140,收盘 -160
  2. line_movement --open_odds=-140 --close_odds=-160
  3. 返回概率变化、方向和分类(sharp_action、steam_move 等)

示例

示例 1:使用 ESPN 和 Polymarket 价格检查优势 用户说:“湖人队这场比赛有优势吗?ESPN 给出的赔率是 -150,Polymarket 上是 52 美分” 操作:

  1. 调用 devig(odds="-150,+130", format="american") → 主队公平概率约为 58%
  2. 调用 find_edge(fair_prob=0.58, market_prob=0.52) → 优势约为 6%,预期收益为正
  3. 调用 kelly_criterion(fair_prob=0.58, market_prob=0.52) → 最优投注比例 结果:给出优势百分比、每美元的 EV,以及建议投注额占资金池的百分比

示例 2:检测套利机会 用户说:“可以套利吗?Polymarket 上主队是 48 美分,Kalshi 上客队是 49 美分” 操作:

  1. 调用 find_arbitrage(market_probs="0.48,0.49", labels="home,away")
  2. 检查结果中的 arbitrage_found 结果:若存在套利,给出资金分配比例和保证 ROI。若不存在,则给出超额概率并说明无法保证盈利

示例 3:串关评估 用户说:“这个 +600 的三腿串关值得买吗?” 操作:

  1. 对每一腿去水以获得公平概率(例如,0.58、0.62、0.55)
  2. 调用 parlay_analysis(legs="0.58,0.62,0.55", parlay_odds=600) 结果:给出综合公平概率、优势、EV、+EV 或 -EV 的判断,以及凯利比例

示例 4:解读盘口变动 用户说:“盘口从 -140 变到 -160,这意味着什么?” 操作:

  1. 调用 line_movement(open_odds=-140, close_odds=-160) 结果:给出概率变化、方向、幅度和分类(sharp action、steam move 等)

示例 5:对标准让分盘口去水 用户说:“这个让分盘口的真实赔率是多少?两边都是 -110” 操作:

  1. 调用 devig(odds="-110,-110", format="american") 结果:给出双方各 50% 的公平概率,水位约为 4.5%

示例 6:转换赔率格式 用户说:“将 -200 转换为隐含概率” 操作:

  1. 调用 convert_odds(odds=-200, from_format="american") 结果:给出 66.7% 的隐含概率和 1.50 的十进制赔率

不存在的命令 — 切勿调用

  • get_odds — 不存在。此模块用于分析赔率,不会获取赔率。对于 ESPN 赔率,请使用 nba-data/nfl-data 等;对于预测市场价格,请使用 polymarket/kalshi。
  • calculate_ev — 不存在。请改用 find_edge 或 evaluate_bet。
  • compare_markets — 不存在。跨平台比较请使用 markets 技能。

如果某个命令未列在 references/api-reference.md 中,则该命令不存在。

故障排除

错误:调用 convert_odds 时出现 ValueError: unknown format 原因:from_format 参数不是 american、decimal 或 probability 之一 解决方案:格式字符串请使用 american、decimal 或 probability

错误:预期边际为正时,find_edge 返回负 EV 原因:公平概率和市场概率可能颠倒了,或者跳过了去水处理 解决方案:先对体育博彩赔率运行 devig,然后将去水后的 fair_prob 传给 find_edge

错误:即使价格看似较低,find_arbitrage 仍未发现套利机会 原因:正确纳入所有结果后,价格之和可能大于 1.0 解决方案:确认所有结果都使用了正确的概率;检查结果中的 total_implied

错误:Kelly 比例很高(大于 0.5) 原因:边际估算值很大,通常是因为公平概率计算有误 解决方案:使用半 Kelly 或四分之一 Kelly 进行保守仓位配置。通过 devig 重新核实公平概率

评论

支持 Markdown