适用于 Claude Desktop
向 Claude 查询你的 IBKR 账户。
在 Mac 上把 Canary 加入 Claude Desktop,然后问它你的持仓今日表现如何、哪些风险规则需要留意,或者市场走势如何。Claude 可以读取你的账户,但不能下达、更改或取消订单。
需要 IBKR Pro 账户,并在 Mac 上运行 IB Gateway 或 TWS(Interactive Brokers 的桌面软件),且已开启其 API。
开源 · Go
盈透证券(Interactive Brokers)的投资组合、风险及订单工具。
Canary 在你自己的电脑上连接 IBKR 账户,读取你的投资组合及市场数据,每分钟检查你的风险规则,并草拟规则要求的保护措施。Claude、你的脚本及已配对的手机应用程序,读取的都是同一组数字。
canary brief,每日早上的概览。虚构账户适用于 Claude Desktop
在 Mac 上把 Canary 加入 Claude Desktop,然后问它你的持仓今日表现如何、哪些风险规则需要留意,或者市场走势如何。Claude 可以读取你的账户,但不能下达、更改或取消订单。
需要 IBKR Pro 账户,并在 Mac 上运行 IB Gateway 或 TWS(Interactive Brokers 的桌面软件),且已开启其 API。
给工程师
本机守护进程(daemon)负责维持 IBKR 连接,并保管你的风险政策及订单日志。每个 CLI 命令都会传回 JSON,因此 CLI 就是你的 API。Go 程序可以使用守护进程客户端,或直接使用 TWS 协议,无需供应商 SDK。
订单只经一条路径,这条路径设于需自行选用的交易版本内,会按你的限额及确认逐一检查每张订单。Canary Desk(私人项目)就是这样建成的。
给 AI 智能体
先看 llms.txt:Canary 是什么、其工具传回什么、限制在哪里。数字均附来源及时效。Canary 无法确认的内容会报告为缺失,绝不显示为零。
每个 MCP 工具都是只读的:不能预览或发送订单,也不能更改限额。安装详情见服务器清单。
持仓、风险敞口,并与券商结单对账。过时或缺失的数据会保留标示,绝不填补。
市况阶段、市场广度、压力、日历及市场事件,各自附来源及时效。
规则手册每分钟检查投资组合。规则一旦触发,Canary 便草拟其要求的止损、平仓或削减预算。
需自行选用的交易版本会发送你确认或按规则预先授权的订单;当你持有的股数减少时,会缩减或取消自己设下的止损单。标准下载版本是只读的。
近期版本
canary strategy-one 为标普 500 股票排名,并显示包含止损位及仓位大小的入场计划。此筛选没有交易资金配置,也不会发送订单。v3.33canary feedback 准备一份已遮盖敏感资料的诊断报告及 GitHub 错误报告表格链接。提交前请先阅读报告;此命令不会自行提交任何内容。v3.33canary mandate 显示尚余空间。v3.22canary add 按每个期限列出最接近你 delta 区间的看跌期权,以及尚未受保护的股数,然后在该范围内计算看跌期权的数量。看涨及看跌区间设于你的机会政策内。v3.31canary status 会指出每项与 Canary 所需不同的 TWS 或 IB Gateway 设置。Canary 绝不更改任何设置。v3.26开始使用
在同一部电脑上运行 IB Gateway 10.37 或以上版本,或 TWS。你需要具备 TWS API 权限的 IBKR Pro 账户;IBKR Lite 不包括此权限。
每个版本都附有已签名的校验码,安装程序会以固定的密钥核对。Canary 不发送遥测数据。
Claude Desktop 安装curl -fsSL https://raw.githubusercontent.com/osauer/canary/main/install.sh | sh
canary status # 连接到哪个 Gateway 及账户
canary brief # 今日需要留意什么
# Claude Desktop
canary setup claude-desktop
# Claude Code 插件
/plugin marketplace add osauer/canary
/plugin install canary@canary
# 然后问:
# 「我的 IBKR 账户今日状况如何?」
开始之前
Canary 通过本机 TWS 或 IB Gateway 连接,与 Interactive Brokers 配合使用。市场数据视乎你的 IBKR 订阅而定。
可以,通过选用的交易版本及其审批检查。标准下载版本及所有 MCP 工具都是只读的。见订单指南。
适用。无论你的账户由哪家 IBKR 公司持有,连接方式都相同;简报、交易所日历和货币会跟随你的持仓,持有港股也一样。见香港及新加坡指南。你所在的地区未必可以使用 Claude:撰写本文时(2026 年),Anthropic 的支持地区列表并未包括香港、澳门或中国内地。CLI 和已配对的应用程序不需要 Claude;其他 MCP 主机也可以使用同一套工具,但所用的模型同样要在你的地区有提供。
运行 canary status。其中的 Gateway 设置一行会以浅白文字指出每项与 Canary 所需不同的设置。Canary 在每次连接后读取设置一次,绝不更改。见故障排除。
以此为基础开发
Canary 为智能体提供每个数字及其来源和时效,并让每张订单都受你的规则约束。用两个命令连接 Claude Code,或建立你自己的智能体。Canary Desk 就建基于此,并有用于简报及分析的智能体。
MIT 授权;源代码在 GitHub 上。无需注册,也没有遥测。
只读边界证据
Canary 无法确认的数字绝不会显示为正常。来源、时效及覆盖范围都在数字旁边,让你和你的助手知道可信赖什么。
在命令行上
每个数字都注明来源及时效。每个命令也可输出 JSON 供脚本使用。
canary positions虚构账户
canary rules虚构账户Canary Edge
Edge 把每次开仓、加仓、减仓及平仓,与在 1、5 及 20 个交易日内维持仓位不变作比较,数据来自券商记录。
它描述过去的交易,不作预测或建议。
政策检查
Canary 按你设置的数字行事,由规则门槛到订单大小及现金储备。它会列出每一个生效中的数字及其来源和含义,并将它们互相对照、与你的账户对照。每个不合适的数值都会附上原因,适用时亦会建议修正方法。
订单限额跟随账户变动。单一订单价值的上限会随账户价值(即净清算价值)变动,介乎你设置的最低值与最高值之间。临时提高上限需要一次覆盖,Canary 会记录在日志中。
在交易版本中,只要保护性止损单卖出的数量不超过你持有的股票或 ETF(连同你其他正在生效的卖出订单计算),该上限及卖空检查都不会拒绝它。当你持有的股数少于 Canary 自己某个止损单将卖出的数量时,Canary 会自行缩减或取消该止损单。
检查只作读取;要更改限额,请编辑你的文件。你手动设下的止损单绝不会被更改,标准下载版本维持只读。
政策检查如何运作canary policy show --explain 列出每项限额、政策及设置,连同其数值、单位及来源。加上章节名称可只输出其中一部分。
canary policy check 将你的配置文件、政策文件及账户互相对照,解释每个不合理的数值,适用时建议修正方法。
canary_policy_check 为 MCP 客户端提供相同检查。它只作读取,不能更改限额。
观察名单及形态
在一份观察名单上保留最多 20 只美股。Canary 将每根已完成的五分钟 K 线与过往可比较的交易日对比,当异常成交量之后价格守稳或上升时便会报告。
对于你想跟进的形态,它会列出标准看涨期权,并读取你所选看涨期权的一个附日期报价。Canary 下单成交后,会在两个时点以其后报价检查入场表现。
形态只是观察,并非经验证的信号。成交后价格追踪(markout)不计佣金,也绝不取代账户盈亏。编辑观察名单只会更改本机偏好设置,而且没有 MCP 形态工具。
canary watchlist add NVDA 保存一份可长期保留的名单,最多 20 只股票。其他一概不变。
canary setups coverage 显示每个交易日已完成的 K 线、评估状态及缺失数据。
canary setups markouts 读取其后的报价,并说明任何检查点缺失的原因。
借券研究
比较你指定股票的借券费用、价格及流动性。筛选 IBKR 的美股借券数据,找出费用持续高企的股票,并按规模及回补日数排列 FINRA 报告的卖空持仓。
你的助手通过只读 MCP 工具读取相同结果。筛选条件在结果数量限制之前套用,每行都保留来源日期。
借券费用是借入方的成本,并非出借方的收益率。卖空持仓来自每月两次的报告,并不追踪即时持仓。自由流通量百分比无法提供。
canary lending rates 及 canary lending market,针对你列出的代码。
canary lending screen 找出在多个来源日期都维持高费用的借券。
canary short-interest screen,可按仅限上市股票、价格、流动性及回补日数筛选。
现金调拨
Canary 为你所持货币的剩余现金规划短期政府票据。它会优先保留承诺款项及现金储备,才作新买入;储备跟随账户的净清算价值及计划需要而变动。
在任何买入之前,计划会显示票据的最低订单额、费用范围,以及扣除差价、费用及放弃的现金利息后的估计收益。每次买入都维持在最低与最高金额之间,确保不会小得赚不回佣金。由你选择哪种货币优先。
Canary 制订计划,并检查现金、票据、价格、费用及授权;如你使用 Canary Desk,计划会在其中显示。每张订单都需要你确认,或经明确预先授权、设有限额及否决时限的调拨。
默认关闭。开启时需要在政策中设置已校准的储备,以及最新的结算记录。票据如在到期前卖出,可能会亏损。
阅读调拨控制每种货币的已结算现金,资料须新近至已反映已确认的交易,并已扣除承诺款项及储备。只要任何货币处于借款状态,买入票据便会暂缓,因为票据的收益会低于该笔贷款的保证金利息。
同一货币的票据及其到期日。券商预览价格及费用,计划则显示相对持有现金的净收益。
确认订单,或使用你已授予的限定授权。缺少证据时订单会暂缓。
以结单为据的外汇
外汇贡献量度货币变动对账户基础货币盈亏的影响,涵盖当日、当周、当月及年初至今,数据来自已完成的券商结单。
自 v3.16 起。canary reporting fx --json 及 canary_reporting_fx 传回相同结果。缺失的日期保持可见,不完整的期间不显示总计。这是估值归因,与已实现的外汇批次盈亏分开。
股票借出观察
Canary 从保留的 IBKR 结单读取受管理的股票借出及客户净费用。借出中的持仓带有附日期的注记,费用记录可按需要开启。
canary lending fees --json 及 canary_lending_fees 传回相同、设有上限的只读记录。缺失的部分、不完整的期间,以及收入确实为零的完整记录,三者保持区分。
自 v3.16 起。费用与账户盈亏分开,因为费用与派付及盈亏的关系尚未确认。账户需要有包含借出数据的结单报告,才会显示内容。
股票借出如何报告架构
守护进程负责维持券商连接,并保管证据、你的规则及订单日志。其他一切都只是转接层,建基于相同而具类型定义的结果。
它按需要启动,闲置 15 分钟后停止。券商回应缓慢时,状态查询仍可快速回应;执行 canary stop 后,它会保持停止,直至你重新启动。
全部功能
Go 库
pkg/ibkr 自行处理 TWS 通讯协议,无需供应商 SDK,也不会再分发任何 Interactive Brokers 代码。
要从你自己的程序读取运行中的 Canary,请导入模块根目录。canarytest 在临时 socket 上提供服务,供你测试使用。
cfg := ibkr.DefaultConfig()
cfg.Port = 4002 // Gateway, paper account
conn := ibkr.NewConnector(&ibkr.ConnectorConfig{
PreferredClientID: 17,
BaseConfig: cfg,
})
if err := conn.Start(ctx); err != nil {
return err
}
defer conn.Stop()
summary, err := conn.RequestAccountSummary(ctx, 5*time.Second)
if err != nil {
return err
}
fmt.Println(summary.AccountID)