IBKR Analytics Studio 是一个用于 Interactive Brokers Activity Statement 的本地化报表分析工具。它可以在浏览器中直接解析 IBKR 导出的 CSV/TXT 报表,生成账户总览、持仓分析、绩效统计、每日交易统计、数据质量检查和社交分享图。
项目网站:https://www.ibkrstatement.site/
账户总览用于快速查看报表核心状态,包括:
资产配置占比会把 Open Positions 的市值和 Net Asset Value 中的现金合并计算,因此可以看到股票、现金等组合构成。
持仓页面用于分析当前 Open Positions:
持仓饼图按每个标的的当前市值统计,不包含现金,适合观察持仓集中度。
绩效页面用于查看报表周期内收益表现:
页面标题和说明不会写死为年初至今,而是按照导入报表的实际周期展示。
每日页面基于 Trades 区块中的逐笔交易记录生成:
月份下拉会根据报表中实际存在的交易月份生成。交易流水表会随月份切换而更新,显示该月份所有交易,包括成交时间、代码、买卖方向、资产类别、数量、成交价、成交金额、佣金和已实现盈亏。
数据质量页面用于排查报表解析情况:
如果缺少关键区块,例如 Account Information、Net Asset Value、Trades、Open Positions 或 Realized & Unrealized Performance Summary,页面会给出诊断提示。
推荐从 IBKR Client Portal 导出英文 Activity Statement:
当前解析器主要面向英文 IBKR Activity Statement CSV。中文导出的报表字段名可能不同,项目会尝试检测并提示重新导出英文版本。
项目会读取并使用以下区块中的数据:
不同账户权限、报表配置和报表周期可能导致区块缺失。缺失区块不会阻止页面加载,但对应指标可能为空或显示诊断提示。
每日统计和交易流水依赖 Trades 区块中的 Order 行。常见字段包括:
项目会按交易日期聚合每日已实现盈亏、交易笔数、成交额和佣金。
项目是静态前端应用,无需安装运行时依赖。只需要本机有 Node.js,用于启动本地静态服务器。
cd "E:\IBKR Reader\ibkr-analytics-studio"
npm run serve
默认访问地址:
http://127.0.0.1:4187/
不要优先使用 localhost。在部分 Windows 环境中,localhost 可能解析到 IPv6 地址,导致访问不到只监听 127.0.0.1 的本地服务。
项目没有构建步骤,当前检查主要是 JavaScript 语法检查:
npm run check
该命令会检查:
src/encoding.jssrc/parser.jssrc/reportLanguage.jssrc/app.jsibkr-analytics-studio/
├─ assets/
│ ├─ ibkr-logo.svg
│ ├─ icon.svg
│ ├─ statement-preview.svg
│ └─ styles.css
├─ samples/
│ ├─ ibkr-sample-demo.csv
│ └─ ibkr-sample-9999.csv
├─ src/
│ ├─ app.js
│ ├─ encoding.js
│ ├─ parser.js
│ └─ reportLanguage.js
├─ stitch-reference/
├─ index.html
├─ package.json
├─ serve.mjs
├─ sitemap.xml
└─ vercel.json
src/app.js:应用 UI、交互、图表、分享图和导出逻辑。src/parser.js:IBKR CSV 解析、账户指标、持仓、交易、月度和每日统计。src/encoding.js:文件读取和文本编码处理。src/reportLanguage.js:报表语言检测。assets/styles.css:完整页面样式、暗色主题、响应式布局。serve.mjs:本地静态文件服务器。samples/:示例 IBKR 报表,用于本地测试。stitch-reference/:设计参考和验证截图,不参与运行逻辑。IBKR Analytics Studio 默认只在当前浏览器内处理数据:
如果部署到静态托管平台,仍建议使用 HTTPS,并避免把真实报表样本提交到公开仓库。
项目支持生成两种 PNG 分享图:
分享图使用浏览器 Canvas 生成,内容来自当前解析后的报表摘要,包括账户周期、净值、盈亏、资产配置、月度趋势和主要贡献者等。
项目可以部署到任何静态托管平台,例如 Vercel、Netlify、GitHub Pages 或本地内网静态服务器。
由于应用无需后端 API,部署时只需要托管以下文件即可:
index.htmlassets/src/samples/,如果需要保留示例数据robots.txtsitemap.xmlVercel 配置文件已包含在 vercel.json 中。
新增功能时建议遵循以下顺序:
src/parser.js 中补充结构化数据。src/app.js 中新增渲染函数。assets/styles.css 中补齐样式和响应式规则。npm run check 做语法检查。samples/ 中的示例报表手动验证页面。本项目不是 Interactive Brokers 官方产品,也不与 Interactive Brokers LLC 存在官方关联。所有商标和产品名称归其各自所有者所有。
本工具仅用于本地报表解析和个人数据分析。用户应自行核对原始 IBKR Activity Statement,任何投资、税务或会计决策都应以官方报表和专业意见为准。
本项目基于 MIT License 开源,详见 LICENSE。
$ claude mcp add ibkrstatement \
-- python -m otcore.mcp_server <graph>