Interactive Brokers 投资组合分析器 - 一款专为期权交易者设计的 Chrome 浏览器扩展
一键获取你的 IB 账户数据,实时查看希腊值、风险评估和投资建议。
| 功能 | 描述 |
|---|---|
| 账户概览 | 净资产、未实现盈亏、持仓数量 |
| 希腊值分析 | Delta/Gamma/Theta/Vega 实时计算与美元化敞口 |
| 风险评估 | 95% VaR、风险等级评定 (LOW/MEDIUM/HIGH/CRITICAL) |
| 智能建议 | Delta 对冲、时间价值管理、集中度警告 |
| 完整报告 | 交互式 HTML 报告,含 5 种可视化图表 |
- 持仓分配饼图 - 各标的市值占比
- 希腊值汇总柱状图 - Delta/Gamma/Theta/Vega 可视化
- Delta 暴露柱状图 - 按标的显示 Delta 敞口
- 收益分布直方图 - 30 天蒙特卡洛模拟收益分布
- 蒙特卡洛模拟图 - 50 条路径的投资组合价值演变
cd ib-analysis
# 创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate
# 安装依赖
pip install -r requirements.txt- 打开 Chrome,访问
chrome://extensions/ - 开启右上角「开发者模式」
- 点击「加载已解压的扩展程序」
- 选择
extension目录
cd extension
chmod +x install.sh
./install.sh- 确保 TWS 或 IB Gateway 正在运行
- 启用 API 连接(TWS: 编辑 → 全局配置 → API → 设置)
- 点击扩展图标,进入「设置」页面配置连接参数
| 模式 | 端口 |
|---|---|
| TWS Paper Trading | 7497 |
| TWS Live Trading | 7496 |
| IB Gateway Paper | 4001 |
| IB Gateway Live | 4002 |
点击浏览器工具栏中的扩展图标,即可查看你的投资组合数据!
- 操作系统: macOS / Linux / Windows
- 浏览器: Chrome 88+ / Edge 88+ (Chromium 内核)
- Python: 3.9+
- IB 软件: TWS 或 IB Gateway
ib-analysis/
├── extension/ # Chrome 扩展 (核心产品)
│ ├── manifest.json # 扩展清单
│ ├── popup.html # 主界面
│ ├── settings.html # 设置页面
│ ├── src/
│ │ ├── popup.js # 主界面逻辑
│ │ ├── popup.css # 主界面样式
│ │ ├── settings.js # 设置页面逻辑
│ │ ├── settings.css # 设置页面样式
│ │ └── background.js # Service Worker
│ ├── native-host/
│ │ └── ib_native_host.py # Native Messaging 主机
│ ├── icons/ # 扩展图标
│ ├── install.sh # 安装脚本
│ └── uninstall.sh # 卸载脚本
│
├── src/ # Python 底层库
│ ├── ib_client/ # IB API 客户端
│ ├── greeks/ # 希腊值计算 (Black-Scholes)
│ ├── monte_carlo/ # 蒙特卡洛模拟
│ ├── visualizer/ # 可视化图表
│ ├── advisor/ # 投资建议引擎
│ └── main.py # CLI 入口
│
├── config/
│ └── config.yaml # 配置文件
├── output/ # 输出目录
│ ├── charts/ # 图表文件
│ └── reports/ # HTML 报告
├── tests/ # 测试用例
└── requirements.txt # Python 依赖
Chrome 扩展基于以下 Python 模块构建,也可独立使用:
| 模块 | 功能 |
|---|---|
src.ib_client |
IB API 客户端,支持连接 TWS/Gateway |
src.greeks |
Black-Scholes 模型希腊值计算 |
src.monte_carlo |
几何布朗运动蒙特卡洛模拟 |
src.visualizer |
Plotly/Matplotlib 可视化图表 |
src.advisor |
风险评估与投资建议生成 |
# 模拟模式(无需 IB 连接)
python -m src.main
# 连接真实 IB 账户
python -m src.main --live
# 自定义参数
python -m src.main --paths 10000 --days 30 --output resultsfrom src.ib_client import IBClient
from src.greeks import GreeksCalculator
from src.monte_carlo import MonteCarloSimulator
# 获取仓位
client = IBClient(simulation_mode=True)
client.connect()
positions = client.get_positions()
# 计算希腊值
calc = GreeksCalculator()
greeks = calc.calculate_portfolio_greeks(positions)
# 运行蒙特卡洛模拟
sim = MonteCarloSimulator(num_paths=10000, num_days=30)
result = sim.simulate_portfolio(positions)编辑 config/config.yaml:
# IB 连接
ib:
host: "127.0.0.1"
port: 7497
client_id: 1
# 希腊值计算
greeks:
risk_free_rate: 0.05
default_volatility: 0.25
# 蒙特卡洛模拟
monte_carlo:
num_paths: 10000
num_days: 30
# 风险阈值
risk:
delta_neutral_threshold: 0.1
concentration_warning: 0.3
theta_decay_warning: -100# 运行所有测试
pytest
# 带覆盖率报告
pytest --cov=src --cov-report=html重要声明
本工具仅供教育和研究目的,不构成投资建议。
- 模拟结果基于统计模型,不代表未来表现
- Black-Scholes 假设可能与实际市场不符
- 请在投资决策前咨询专业金融顾问
Chrome 扩展功能完善
- 重构报告生成,添加 5 种交互式 Chart.js 图表
- 修复 Blob URL 无法加载外部资源的问题
- 报告直接在新标签页中打开
设置页面
- 支持配置 IB 连接参数
- 快速端口预设 (TWS/Gateway Paper/Live)
- 连接测试功能
Native Host
- 移除外部依赖,使用内置报告生成
- 改进错误处理和日志
- 初始版本
- IB API 连接和仓位读取
- Black-Scholes 希腊值计算
- 蒙特卡洛模拟
- 可视化图表
- 投资建议生成
MIT License
欢迎提交 Issue 和 Pull Request!