用途:读取指定目录(不含子目录)中的 IBKR 交易 CSV 文件,合并交易数据并生成 Markdown 与 CSV 两种汇总报告。
主要能力:按 UnderlyingSymbol、Symbol、TradeDate、Strike、Put/Call、Buy/Sell、Open/CloseIndicator 分组;汇总 Quantity、Proceeds、NetCash、IBCommission、FifoPnlRealized;新增 Position 列,取值为 SHORT(卖出开仓)、LONG(买入开仓)、CLOSE_SHORT(买入平仓)、CLOSE_LONG(卖出平仓)。
使用方式:运行 uv run python scripts/consolidate.py <directory> [--port PORT] [--output-dir OUTPUT_DIR]。directory 为含 IBKR 交易 CSV 的目录;--port 用于获取未实现盈亏,7497 为模拟盘、7496 为实盘,未指定时先探测 7496 再探测 7497,也可由 IB_PORT 环境变量提供默认值,--port 优先级更高;--output-dir 默认 sandbox/。输出文件为 consolidated_trades_YYYY-MM-DD_HHMM.md 和同名 .csv。
限制:仅处理给定目录下的 CSV,不递归子目录;未实现盈亏依赖 IB 端口连接。所有时间戳与基于时间的计算须使用 America/New_York 时区,JSON 输出须包含 generated_at(纽约时间字符串)与 data_delay 字段。