用途
这是一个以回撤为核心的个人股票/ETF投资组合追踪与分析工具,附带一个只读的MCP插件,可让AI助手(如Claude Desktop)以只读工具形式查询你的投资组合。它不执行交易,也不存储你的持仓——持仓完全由你提供的追加式交易日志推导而来,相同输入始终产生相同输出。
主要能力
- 回撤优先简报:基于真实持仓,展示距峰值的回撤幅度、水下持续时间、恢复情况;每个采样风险统计量都带bootstrap置信区间(收益作为会计恒等式不带区间),数据不足时显示n/a或inconclusive,不编造数字。
- 确定性建议:面向你选择的目标配置,给出买/卖建议,每条建议都标注触发它的命名规则,让你理解规则而非盲信。
- 数字围栏:Python确定性核心计算所有数字;可选的AI叙述只能放置{{token}}占位符,由渲染器从已验证核心替换数值;如果模型自行输入任何Unicode数字类别中的数字(如½或3.2),整个叙述会被拒绝。
- 只读Claude插件:通过MCP将投资组合以只读工具暴露给AI助手,返回的数值均来自同一确定性核心;但助手自身文字不受围栏约束,不可追溯到工具结果的数字应视为未验证。
- 目标与再平衡:支持预设风险姿态(conservative/moderate/aggressive)、等权、逆波动率等再平衡模式;支持5/25带再平衡、仅现金流入再平衡(税务友好);提议、模拟、执行分步强制,策略不会静默变为交易。
- 回测与基准比较:针对目标与基准(60-40/all-weather/permanent)在共同历史上模拟,给出留出近期窗口的判定:shallower/deeper/inconclusive/insufficient,从不说“跑赢”;判定基于Ulcer指数,需CDaR不矛盾且配对的bootstrap置信区间确认,最大回撤仅作上下文。
- 发现与筛选:可建议适合你低配角色的筛选ETF,评估候选标的(成本、流动性、年龄、重叠度、是否真正分散了最差回撤)。
- 输出形式:纯文本始终输出,可选保存markdown、发送HTML邮件;某个输出失败不会导致运行崩溃,但若请求的输出失败则进程非零退出以便调度器感知。若所有持仓都无法定价,简报仍从账本打印但非零退出并提示修复。
使用方式
- 快速体验:
uvx --from git+https://github.com/disin7c9/asset-management asset-management --demo,使用捆绑的假投资组合,无需设置。也可克隆后uv sync && uv run python -m app --demo(需Python 3.12和uv)。 - 使用自己的资金:四步(资料未提供具体四步内容)。
- 输入格式:交易日志CSV采用Ghostfolio的CSV导入模式——列:Date, Code, DataSource, Currency, Price, Quantity, Action, Fee, Note。Action为buy/sell/dividend/fee/interest/deposit/withdraw之一。现金流(deposit/withdraw)使用CASH代码并将金额放入Price列。仅支持USD,非USD行会报错并指出行号。数字空单元格视为零,非ISO日期报错,容忍UTF-8 BOM。捆绑示例
data/sample_data/transactions.csv展示所有行类型。 - Ghostfolio用户:可直接指向Ghostfolio JSON导出(Portfolio → Activities → ⋯ → Export),加载器自动检测并读取;非USD、加密货币和非证券(ITEM/LIABILITY)行会跳过并警告。
- 配置:在仓库根目录的
.env中设置ASSET_BOOK=path/to/your.csv(可选ASSET_TARGET),之后裸python -m app即为简报。显式标志优先。无内置默认账本。 - 离线优先:价格来自磁盘缓存,在线运行时刷新。首次克隆后需填充一次缓存。之后
--offline和Claude Desktop插件完全从缓存运行。可选添加Tiingo API key作为第二价格源,以应对Yahoo限流。 - 目标获取:已有组合用
--dump-target写出当前配置再编辑;用--onboard或--allocate选择风险姿态预设;用--discover和--screen探索并自建。 - 验证目标:
--backtest模拟目标与参考在共同历史上的表现,给出留出窗口判定。 - 调度:可用cron每周一运行简报;Windows无WSL时用任务计划程序运行wsl.exe,或直接运行安装的uv。
适用场景
个人投资者希望以回撤为核心审视自己的股票/ETF组合,需要可审计的确定性建议而非黑盒预测;希望用AI助手自然语言查询组合但要求数字来自确定性核心;需要税务友好的再平衡(仅现金投入);希望比较目标配置与基准的回撤差异,且结论保守不夸大。
限制
- 仅支持USD、仅做多股票/ETF;非USD行被拒绝。
- 无内置默认账本,必须显式提供。
- AI叙述的措辞不受围栏约束,可能产生建议或预测式句子。
- 回测判定词汇无“跑赢”,证据不足时显示inconclusive/insufficient。
- 拆股自动调整,但拆股数据不可用时报错阈值2:1;数据来源依赖Yahoo(主)和Tiingo(次,需免费API key),可能因限流导致部分ticker缺失。
- 未提供收费、价格、平台等具体信息。