关于 betting
betting 是用于分析赔率和投注概率的技能,适合需要评估市场价格的用户。它提供赔率换算、去水、优势与套利分析等计算,但不负责获取赔率数据。
主要功能
- 01转换美式、十进制和概率赔率
- 02去除赔率中的水钱
- 03计算优势、期望值和投注评估
- 04检测套利机会
- 05分析串关和赔率变动
适用场景
- 01比较博彩公司赔率与预测市场价格
- 02检查不同来源的价格是否形成套利
- 03评估多场串关的概率和价值
- 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
- 获取 ESPN 的独赢赔率(例如,来自
nba get_scoreboard):主队:-150,客队:+130 - 获取同一结果在 Polymarket/Kalshi 上的价格(例如,主队为
0.52) - 去水:
devig --odds=-150,+130 --format=american→ 公平概率:主队 57.9%,客队 42.1% - 比较:
find_edge --fair_prob=0.579 --market_prob=0.52→ 优势:5.9%,EV:11.3% - 或一步完成:
evaluate_bet --book_odds=-150,+130 --market_prob=0.52
套利检测
- 从不同来源获取每种结果的最佳价格(Polymarket 上主队为 0.48,Kalshi 上客队为 0.49)
find_arbitrage --market_probs=0.48,0.49 --labels=home,away- 总隐含概率为 0.97(< 1.0)→ 找到套利机会,保证 ROI:3.09%
串关评估
- 对每一腿去水:第 1 腿 → 0.58,第 2 腿 → 0.55,第 3 腿 → 0.50
parlay_analysis --legs=0.58,0.55,0.50 --parlay_odds=600- 返回综合公平概率、优势和凯利比例
盘口变动分析
- 获取 ESPN 的开盘和收盘盘口:开盘 -140,收盘 -160
line_movement --open_odds=-140 --close_odds=-160- 返回概率变化、方向和分类(sharp_action、steam_move 等)
示例
示例 1:使用 ESPN 和 Polymarket 价格检查优势 用户说:“湖人队这场比赛有优势吗?ESPN 给出的赔率是 -150,Polymarket 上是 52 美分” 操作:
- 调用
devig(odds="-150,+130", format="american")→ 主队公平概率约为 58% - 调用
find_edge(fair_prob=0.58, market_prob=0.52)→ 优势约为 6%,预期收益为正 - 调用
kelly_criterion(fair_prob=0.58, market_prob=0.52)→ 最优投注比例 结果:给出优势百分比、每美元的 EV,以及建议投注额占资金池的百分比
示例 2:检测套利机会 用户说:“可以套利吗?Polymarket 上主队是 48 美分,Kalshi 上客队是 49 美分” 操作:
- 调用
find_arbitrage(market_probs="0.48,0.49", labels="home,away") - 检查结果中的
arbitrage_found结果:若存在套利,给出资金分配比例和保证 ROI。若不存在,则给出超额概率并说明无法保证盈利
示例 3:串关评估 用户说:“这个 +600 的三腿串关值得买吗?” 操作:
- 对每一腿去水以获得公平概率(例如,0.58、0.62、0.55)
- 调用
parlay_analysis(legs="0.58,0.62,0.55", parlay_odds=600)结果:给出综合公平概率、优势、EV、+EV 或 -EV 的判断,以及凯利比例
示例 4:解读盘口变动 用户说:“盘口从 -140 变到 -160,这意味着什么?” 操作:
- 调用
line_movement(open_odds=-140, close_odds=-160)结果:给出概率变化、方向、幅度和分类(sharp action、steam move 等)
示例 5:对标准让分盘口去水 用户说:“这个让分盘口的真实赔率是多少?两边都是 -110” 操作:
- 调用
devig(odds="-110,-110", format="american")结果:给出双方各 50% 的公平概率,水位约为 4.5%
示例 6:转换赔率格式 用户说:“将 -200 转换为隐含概率” 操作:
- 调用
convert_odds(odds=-200, from_format="american")结果:给出 66.7% 的隐含概率和 1.50 的十进制赔率
不存在的命令 — 切勿调用
— 不存在。此模块用于分析赔率,不会获取赔率。对于 ESPN 赔率,请使用 nba-data/nfl-data 等;对于预测市场价格,请使用 polymarket/kalshi。get_odds— 不存在。请改用calculate_evfind_edge或evaluate_bet。— 不存在。跨平台比较请使用compare_marketsmarkets技能。
如果某个命令未列在 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 重新核实公平概率