关于 kalshi
kalshi 是通过 sports-skills 命令行工具或 Python SDK 查询 Kalshi 体育预测市场的技能,涵盖市场、赛事、交易和价格历史,并说明如何将价格解读为概率。
主要功能
- 01按运动和关键词搜索市场
- 02列出当日赛事及其市场
- 03获取市场、赛事和交易详情
- 04查看 OHLC 价格历史
- 05读取电竞价格及隐含概率
适用场景
- 01查找开放的 NBA 或 EPL 市场
- 02查看指定运动的当日赛事
- 03比较期货市场中的竞争者
- 04检查市场历史价格
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ machina-sports/ sports-skills --skill kalshi安装后在 Claude Code 中输入/kalshi确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/api-reference.mdapi.mdcommands.mdseries-tickers.mdscripts/validate_params.sh详细介绍
Kalshi — 预测市场
编写查询前,请查阅 references/api-reference.md,了解体育代码、系列代码和命令参数。
快速开始
优先使用 CLI,避免 Python 导入路径问题:
sports-skills kalshi search_markets --sport=nba
sports-skills kalshi get_todays_events --sport=nba
sports-skills kalshi get_sports_config
sports-skills kalshi get_markets --series_ticker=KXNBA --status=open
Python SDK(替代方案):
from sports_skills import kalshi
kalshi.search_markets(sport='nba')
kalshi.search_markets(sport='nba', query='Lakers')
kalshi.get_todays_events(sport='nba')
kalshi.get_sports_config()
kalshi.get_markets(series_ticker="KXNBA", status="open")
重要:执行任何查询前
重要:调用任何市场端点前,请确认:
- 对单场比赛市场,始终将
sport参数传递给search_markets和get_todays_events。 - 价格采用 0-100 的整数刻度(20 = 隐含概率 20%),不要将其视为美式赔率。
- 查询市场时使用
status="open",以排除已结算或已关闭的市场。
不传递 sport 参数时:
WRONG: search_markets(query="Leeds") → 0 results
RIGHT: search_markets(sport='epl', query='Leeds') → returns all Leeds markets
重要说明
- 在 Kalshi 上,“Football” = NFL。 对于英式足球(EPL、La Liga 等),请使用体育代码:
epl、ucl、laliga、bundesliga、seriea、ligue1、mls、worldcup。 - Formula 1 使用体育代码
f1(车手/车队冠军,以及每场大奖赛的比赛、领奖台、杆位、最快圈速、胜负对决和冲刺赛系列)。 - 市场代码不总是
<event_ticker>-<suffix>。 Kalshi 有些代码使用不同的前缀,例如KXATP-26-SHA属于事件KXATP-26USO(2026 年美国网球公开赛男单),与KXATP-26USO-SIN并列。这是 Kalshi 的实际代码:将其原样传递给get_market,并按市场的event_ticker字段分组,切勿通过解析代码来分组。 - 价格代表概率。
last_price为 20 表示隐含概率为 20%。刻度为 0-100(不像 Polymarket 使用 0-1)。 - 查询市场时始终使用
status="open",否则结果会包含已结算或已关闭的市场。 - 与 Polymarket 共用接口:
search_markets(sport=...)、get_todays_events(sport=...)和get_sports_config()在两个平台上的工作方式相同。
工作流
体育市场搜索(推荐)
search_markets --sport=nba— 查找所有未关闭的 NBA 市场。- 可选添加
--query="Lakers",按关键词筛选。 - 结果包含每个市场的 yes_bid、no_bid 和 volume。
今日赛事
get_todays_events --sport=nba— 获取包含嵌套市场的未关闭赛事。- 展示赛事及价格(价格 = 隐含概率,刻度为 0-100)。
期货市场查询
get_markets --series_ticker=<ticker> --status=open- 按
last_price降序排序。 - 展示领先竞争者的概率和交易量。
市场价格历史
- 使用
search_markets --sport=nba获取市场代码。 get_market_candlesticks --series_ticker=<s> --ticker=<t> --start_ts=<start> --end_ts=<end> --period_interval=60- 展示包含交易量的 OHLC 数据。
命令
完整命令列表及参数请参见 references/api-reference.md。
| 命令 | 描述 |
|---|---|
get_sports_config | 可用体育代码和系列代码 |
get_todays_events | 某项体育运动今天的赛事及其嵌套市场 |
search_markets | 按体育运动和/或关键词查找市场 |
get_esports_odds | 电竞市场(cs2/lol/dota2):以美分计价的价格(0-100),以及 implied_probability(0-1)和 decimal_odds |
get_markets | 市场列表(原始 API) |
get_event | 赛事详情 |
get_market | 市场详情 |
get_trades | 最近的交易 |
get_market_candlesticks | OHLC 价格历史 |
示例
示例 1:NBA 市场搜索 用户说:“Kalshi 上有哪些 NBA 市场?” 操作:
- 调用
search_markets(sport='nba')结果:所有开放的 NBA 市场,包含是/否价格和交易量
示例 2:EPL 比赛市场 用户说:“显示 Kalshi 上利兹联对阵曼城的赔率” 操作:
- 调用
search_markets(sport='epl', query='Leeds')结果:所有 EPL 系列中的利兹联 EPL 市场,包含价格和交易量
示例 3:今天的 EPL 赛事 用户说:“Kalshi 上有哪些 EPL 比赛?” 操作:
- 调用
get_todays_events(sport='epl')结果:今天的 EPL 赛事及其嵌套市场
示例 4:欧冠未来赛果市场 用户说:“谁会赢得欧冠?” 操作:
- 调用
search_markets(sport='ucl')或get_markets(series_ticker="KXUCL", status="open") - 按
last_price降序排列(价格 = 隐含概率) 结果:领先的 UCL 竞争者,包含yes_sub_title、last_price(%)和交易量
示例 5:市场价格历史 用户说:“显示这场 NBA 比赛的价格历史” 操作:
- 从
search_markets(sport='nba')获取市场代码 - 调用
get_market_candlesticks(series_ticker="KXNBA", ticker="...", start_ts=..., end_ts=..., period_interval=60)结果:包含交易量的 OHLC 价格数据
不存在的命令 — 切勿调用
— 不存在。使用get_oddssearch_markets或get_markets查找市场价格。— 不存在。Kalshi 提供市场,而非赛程。赛程请使用对应运动项目的技能。get_team_schedule/get_scores— 不存在。Kalshi 是预测市场。请使用对应运动项目的技能。get_results
如果某个命令未列在 references/api-reference.md 中,它就不存在。
故障排除
错误:search_markets 返回 0 条结果
原因:缺少 sport 参数 — 若不提供该参数,搜索只会返回高交易量的未来赛果市场,而会遗漏单场比赛市场
解决方案:始终为 search_markets 传入 sport='<code>'。请查看 references/api-reference.md,了解有效的运动代码
错误:返回的市场包含已结算/已过期的合约
原因:未设置 status 参数
解决方案:始终传入 status="open",以便只筛选开放市场
错误:系列代码未返回结果
原因:系列代码可能不正确,或者没有开放市场
解决方案:调用 get_series_list() 查找可用代码,或查看 references/series-tickers.md
错误:搜索“Football”时找不到美式足球/足球市场
原因:在 Kalshi 上,“Football”指 NFL — 足球使用特定联赛代码
解决方案:足球联赛请使用 sport='epl'、sport='ucl'、sport='laliga' 等代码