@ken_so:刚上线了我们开源 Kalshi 交易机器人的 /backtest 功能。AI 模型真的能发现优势吗?现在你可以验证……

X AI KOLs Following 工具

摘要

OctagonAI 发布了一款开源 CLI,可在 Kalshi 预测市场上回测 AI 驱动的优势识别,并通过半凯利仓位管理和 5 道风控引擎执行有规模的交易。

刚上线了我们开源 Kalshi 交易机器人的 /backtest 功能。AI 模型真的能发现优势吗?现在你可以一条命令回溯 N 天(样本外),把每条预测与结算价或盯市价对比,立刻拿到盈亏收益、ROI、命中率等全套指标。
查看原文
查看缓存全文

缓存时间: 2026/04/21 12:28

OctagonAI/kalshi-trading-bot-cli

源码:https://github.com/OctagonAI/kalshi-trading-bot-cli

Kalshi 交易机器人 CLI

AI 驱动的 Kalshi 命令行交易工具,自动发现优势并执行下单。对每一个市场都做深度基本面研究——独立概率估算、核心驱动因素排序、事件日历——然后计算模型价格与实时盘口之间的价差作为“优势”。信号按半凯利(half-Kelly)仓位管理,并通过 5 道风控闸门后才投入真金白银。
集成 Octagon Research API(https://app.octagonai.co),用 AI 生成的概率估算为优势检测引擎提供火力。

Kalshi 交易机器人 CLI

前置条件

  • Bun(https://bun.com/)≥ 1.1(必需——脚本依赖 bun:sqlite 并直接运行 .tsx,Node.js 无法使用)
    curl -fsSL https://bun.com/install | bash
    
  • Kalshi 账户并开通 API(需 API key + RSA 私钥)
  • 任意 LLM 供应商密钥(OpenAI / Anthropic / Google / xAI / OpenRouter / Ollama)。首次运行时会通过设置向导收集。
  • 可选:Octagon(https://app.octagonai.co)密钥用于 AI 优势分析,Tavily 密钥用于网络研究。

快速开始

bunx kalshi-trading-bot-cli@latest

无需克隆、无需安装,首次启动自动进入设置向导。
想全局安装?

bun add -g kalshi-trading-bot-cli

然后直接 kalshi 即可。
或者克隆运行:

git clone https://github.com/OctagonAI/kalshi-trading-bot-cli.git
cd kalshi-trading-bot-cli
bun install
bun start

文件位置

  • 配置、缓存、SQLite 数据库: ~/.kalshi-bot/
  • API 密钥(.env): ~/.kalshi-bot/.env——由设置向导生成。当前目录下的 .env 优先级更高(开发时方便)。
  • 首次无密钥启动会自动弹出设置向导。

更新

bunx 命令里加 @latest 永远拉最新版:

bunx kalshi-trading-bot-cli@latest

若之前没加 @latest,Bun 可能用缓存,可强制刷新:

bunx kalshi-trading-bot-cli@latest      # 本次强制最新
bun pm cache rm                         # 或清空 Bun 安装缓存

全局安装后:

bun update -g kalshi-trading-bot-cli    # 就地更新
bun add -g kalshi-trading-bot-cli@latest # 或重装到最新

查看版本:kalshi --version(或 bun pm ls -g | grep kalshi

会话示例

$ bunx kalshi-trading-bot-cli@latest
Welcome to Kalshi Trading Bot CLI
Type help for commands, or just ask a question.
> search crypto
Ticker               Title                                  Last   Volume
KXBTC-26APR-B95000   Bitcoin above $95k by Apr 30         $0.58  12,841
KXBTC-26APR-B100000  Bitcoin above $100k by Apr 30        $0.31  8,203
KXETH-26APR-B2000    Ethereum above $2k by Apr 30         $0.72  5,419
3 markets found
> analyze KXBTC-26APR-B95000
Octagon Research Report — KXBTC-26APR-B95000
───────────────────────────────────────────────
Model Probability     72%
Market Price          58%
Edge                  +14.0% (very_high confidence)
Top Drivers
1. Bitcoin ETF inflows accelerating   impact: high
2. Halving cycle momentum              impact: high
3. Macro risk-on sentiment             impact: moderate
Kelly Sizing
Recommended: 3 contracts YES at $0.58
Risk gates: ✓ Kelly ✓ Liquidity ✓ Correlation ✓ Concentration ✓ Drawdown
> buy KXBTC-26APR-B95000 3 58
✓ Order placed: BUY 3 YES @ $0.58
Order ID: abc-123-def
> portfolio
Ticker                  Side  Qty  Entry  Now   Edge  P&L
KXBTC-26APR-B95000      YES   3    $0.58  $0.61 +11.0% +$0.09
Cash: $487.26 · Exposure: $1.74 · Positions: 1

命令

命令说明
`search [主题代码
search edge [--min-edge N]按模型优势扫描全市场
analyze <代码>深度分析:优势、驱动、Kelly 仓位
watch <代码>实时价格与盘口推送
watch --theme <主题>持续主题扫描
`buy <代码> <数量> [价格] [yesno]`
`sell <代码> <数量> [价格] [yesno]`
cancel <订单ID>撤单
backtest模型准确率报告 + 实时优势扫描
portfolio持仓、盈亏、风险快照
setup在 TUI 内重新运行设置向导
init从 CLI 启动设置向导(kalshi init
clear-cache删除本地缓存并重建(kalshi clear-cache
help [命令]查看命令详情

参数

参数说明
--json输出 JSON,方便脚本/代理调用
--refresh强制刷新 Octagon 报告(analyze)
--performance显示胜率、夏普、Brier 分数(portfolio)
--dry-run仅扫描不持久化优势(watch)
--verbose详细输出
--min-edge <N>最小优势阈值,单位 pp(backtest 默认 0.5)
--interval <分钟>扫描间隔(watch)
--live强制 15 分钟间隔(watch)
--days <N>回看天数(backtest,默认 15)
--max-age <N>忽略早于 N 天的预测(backtest,默认 = --days
--resolved仅已结算市场(backtest)
--unresolved仅未结算市场(backtest)
--category <类别>按类别过滤(backtest、search edge)
--limit <N>最多返回条数(search edge,默认 20)
--min-volume <N>最小合约成交量(优先用 Octagon 快照,缺失则回退到 Kalshi 终身量,backtest 默认 1)
--min-price <N>最小合约价格,0-100 刻度(backtest,默认 5)
--max-price <N>最大合约价格,0-100 刻度(backtest,默认 95)
--export <文件>导出逐条 CSV(backtest)

回测

模型到底有没有真优势?回看 N 天,把模型当时的预测与现在市场结果对比。

  • 已结算——按 Kalshi 最终结算评分(YES=100%,NO=0%)
  • 未结算——按当前 Kalshi 交易价格盯市

方法论(与 Supabase 参考一致):

  • 每条合约的 mp/kp 取自对应 Octagon 快照的 outcome_probabilities,不回落到事件级。
  • 可交易性闸门优先用快照里的单合约 volume/volume_24h;若无则回退到缓存里 Kalshi 终身成交量。
  • --min-edge 默认 0.5pp,让 0-5% 优势桶可见;每条信号打 edge_bucket 标签(0-5%5-10%90%+)。
  • flat_bet_roi 按资本加权:sum(pnl) / sum(capital),其中 YES 优势 capital = kp/100,NO 优势 capital = (100-kp)/100
kalshi backtest                      # 默认 15 天回看
kalshi backtest --days 30            # 30 天回看
kalshi backtest --max-age 14         # 只评 <=14 天的预测
kalshi backtest --resolved           # 仅已结算
kalshi backtest --unresolved --min-edge 10  # 未结算且优势≥10pp
kalshi backtest --category crypto    # 仅加密类别
kalshi backtest --min-volume 10 --min-price 5 --max-price 95  # 可交易过滤
kalshi backtest --export results.csv # 导出明细
Octagon Backtest — 15-day lookback (04/02 – 04/17)
══════════════════════════════════════════════════════════
VERDICT: Model has edge (Skill +12.5% [CI: +4.1%, +20.8%]; ROI +7.8%)
Events                83
Markets               247 (142 resolved, 105 unresolved)
Brier (Octagon)       0.168
Brier (Market)        0.192
Skill Score           +12.5% [95% CI: +4.1% to +20.8%]
Hit rate              61.4% [95% CI: 54.2% to 68.1%]
Flat-bet P&L          +$14.38 (ROI: +7.8%)

RESOLVED (142 markets)
Ticker                    Model  Mkt Then  Outcome  Edge  P&L
KXBTC-26APR-B95000        72%    58%       YES      +14pp +$0.42
...

UNRESOLVED (105 markets)
Ticker                    Model  Mkt Then  Now   Edge  M2M
KXBTC-26MAY-B110000       71%    58%       68%   +13pp +$0.10
...

演示模式

.env 里设置 KALSHI_USE_DEMO=true 即可接入 Kalshi 模拟环境,所有下单均为虚拟,不投入真金。

代理调用

所有命令都支持 --json 结构化输出,方便脚本或 AI 代理编排。

kalshi search crypto --json
kalshi analyze KXBTC-26APR-B95000 --json
kalshi buy KXBTC-26APR-B95000 3 58 --json
kalshi portfolio --json

JSON 响应格式

统一信封:

{
  "ok": true,
  "command": "analyze",
  "data": {
    "ticker": "KXBTC-26APR-B95000",
    "modelProb": 0.72,
    "marketProb": 0.58,
    "edge": 0.14,
    "confidence": "very_high",
    "drivers": [
      { "claim": "Bitcoin ETF inflows accelerating", "impact": "high" }
    ]
  },
  "meta": {
    "octagon_credits_used": 3,
    "octagon_cache_hits": 0
  },
  "timestamp": "2026-03-30T10:00:00.000Z"
}

失败返回 "ok": false 并带 error 对象。退出码 0 成功,1 失败。

编排示例

# 1. 找市场
MARKETS=$(kalshi search crypto --json | jq '.data')
# 2. 分析首选
ANALYSIS=$(kalshi analyze KXBTC-26APR-B95000 --json)
EDGE=$(echo "$ANALYSIS" | jq '.data.edge')
# 3. 优势够大就下单
if (( $(echo "$EDGE > 0.05" | bc -l) )); then
  kalshi buy KXBTC-26APR-B95000 3 58 --json
fi
# 4. 查持仓
kalshi portfolio --json

watch --theme 输出 NDJSON(每行一个 JSON),适合流式管道。

配置

环境变量

设置向导(首次自动或 kalshi init)会交互式完成。手动编辑:

cp env.example ~/.kalshi-bot/.env

必填:

变量说明
KALSHI_API_KEYKalshi API key ID
KALSHI_PRIVATE_KEY_FILEKalshi RSA 私钥 PEM 文件路径
OPENAI_API_KEYOpenAI API 密钥(默认模型 GPT-5.4)
OCTAGON_API_KEYOctagon API 密钥,用于深度研究,前往 app.octagonai.co 获取

可选:

变量说明
KALSHI_USE_DEMOtrue 使用模拟环境(虚拟交易)
KALSHI_PRIVATE_KEY内联 PEM 私钥,与文件路径二选一
ANTHROPIC_API_KEYAnthropic(Claude)
GOOGLE_API_KEYGoogle(Gemini)
XAI_API_KEYxAI(Grok)
OPENROUTER_API_KEYOpenRouter(多模型)
TAVILY_API_KEYTavily 网络事件研究

注意: 默认模型 GPT-5.4。若换供应商,请用 config 命令切换,否则缺 OPENAI_API_KEY 会报错。

Octagon 额度

每份报告 3 额度。报告按到期临近程度分级缓存——快关市的市场缓存时间更短。用 --refresh 强制刷新。
可用 config octagon.daily_credit_ceiling <N> 设置每日上限。

运行时设置

kalshi config                          # 列出所有设置
kalshi config risk.kelly_multiplier    # 查看某值
kalshi config risk.kelly_multiplier 0.3 # 设置值
设置默认说明
scan.interval60扫描间隔(分钟)
scan.themetop50默认市场主题
risk.kelly_multiplier0.5Kelly 比例(0.5 = 半凯利)
risk.max_drawdown0.20最大回撤熔断
risk.max_positions10最大同时持仓数
risk.max_per_category3每事件类别最大持仓
risk.daily_loss_limit200日亏损上限(美元)
octagon.daily_credit_ceiling100每日 Octagon 额度上限
alerts.min_edge0.05触发警报的最小优势

架构

Kalshi 交易流程
CLI 与两大外部服务通信:Kalshi 交易所 API(行情、下单、持仓)与 Octagon 研究 API(AI 概率、驱动因素)。结果缓存在本地 SQLite,减少调用与额度消耗。

LLM 供应商

默认 GPT-5.4,可用 config 命令切换。

前缀供应商
gpt-OpenAI
claude-Anthropic
gemini-Google
grok-xAI
openrouter/OpenRouter
ollama:Ollama(本地)

开发

bun dev          # 热重载开发模式
bun run typecheck # 类型检查
bun test         # 跑测试

遥测

本应用收集匿名使用遥测以改进产品。绝不收集任何个人数据、API 密钥、交易详情或自然语言输入。 仅追踪命令名、工具使用、耗时与成败指标。
遥测默认开启。关闭方式:
.env 添加

TELEMETRY_ENABLED=false

或运行前设置环境变量:

TELEMETRY_ENABLED=false bunx kalshi-trading-bot-cli@latest

文档

详见 用户指南 获取详细用法、示例与技巧。

Star History

许可证

MIT 许可证 — 详见 LICENSE

相似文章