配套文档:[[资产配置V2_0_战术执行手册]] 入口:
index.html· 通过本地 HTTP 服务打开
- 只让 AI 理解项目怎么用:给 GitHub 仓库地址通常就够了,让它先读 README.md 和 AGENTS.md
- 让 AI 真正帮你改数据/跑脚本/起本地预览/做校验:必须给它一个本地项目副本(直接打开本地文件夹、
git clone、或下载 zip 解压都可以;zip 只是兜底方案)
asset_dashboard/
├── index.html
├── app.js # 视图渲染(无依赖)
├── data/
│ ├── target.json # 理想化目标 ← 改这里 = 改战略
│ └── history.json # 历史快照(append-only) ← 改这里 = 报新数值
├── scripts/
│ └── fetch_rates.py # 抓实时汇率
└── README.md
不再合并。例如腾讯持仓在 3 个账户里:
| key | 名称 | 账户 | 币种 |
|---|---|---|---|
tencent_futu |
腾讯(富途·HK) | 富途牛牛 | HKD |
tencent_zhongyin |
腾讯(中银证券·港股通) | 中银证券 | RMB |
tencent_zhaoshang |
腾讯(招商证券·港股通) | 招商证券 | RMB |
看板顶部 KPI 会把 key 以 tencent_ 开头的所有子项合并算"单一公司红线"。
每次报数前都抓一次实时汇率,写进 snapshot 的 rates 字段,永不复用旧汇率:
cd /path/to/ai-finance-dashboard
python3 scripts/fetch_rates.py # 看一眼
python3 scripts/fetch_rates.py --json # 输出 snapshot 模板每次报数 = append 一条新 snapshot,旧的原封不动。
缺失的 holdings key 按 0 计算。一次只填变化的资产即可,但建议每次都填全(防止遗忘)。
直接向维护者或本地助理提供报数:
报数:今天微众活期 X 万、富途货基 Y 美元、腾讯(富途)Z 港币……
维护流程会:
python3 scripts/fetch_rates.py抓实时汇率- 在
history.json末尾 append 一条新 snapshot - 不动
target.json(除非你说要改战略)
| 大类 | 目标 | 阈值 | 子项 |
|---|---|---|---|
| 一·防御与流动性 | 12% | ±3% | 人民币生存现金 / 南向通闭环资产 / 美元机会现金 / 中长期美债;按风险角色分别统计 |
| 二·收入与实物资产 | 47% | ±5% | 前海房产 / 515450 / 563020;不把房产或红利资产等同现金安全垫 |
| 三·美国为主的增长 | 23% | ±5% | CSPX/VUAA / VOO / QQQM;名称不再暗示已充分全球分散 |
| 四·黄金避险 | 13% | ±3% | IAU / 实物黄金 / 518880 |
| 五·集中股 | 5% | ±1% | 腾讯跨账户、币种与通道合并敞口 |
target.json.assetPlaybooks 用于承载“同一资产在不同条件下做不同事”的决策。面板会根据 observations 自动显示当前阶段、允许仓位、当前动作、下一阶段及未满足条件。南向通默认常态目标 5%,只有通道、产品、净收益差、赎回时效和境内流动性同时达标,才允许进入最高 8% 的机会仓;额度获批本身不构成买入信号。
V3.3 新增国债与实物金剧本:双工资存续时国债目标为 0,离职后现金帐篷不足才启用;实物金必须通过保管、正规回购渠道、价格回撤和实物溢价条件。调整优先级队列 自动按红线 → 通道解锁 → 重大资产事件 → 条件化标的 → 普通目标缺口排序,目标差距本身不再等于交易指令。
V3.4 将计价币种与资金池归属拆分:港股通腾讯虽然以 HKD 计价,但属于人民币来源闭环池;富途 HKD 才属于自由海外池。终局池目标为 RMB 来源池 65% / 自由海外池 35%。
V3.5 把塔勒布式“先保证不出局,再保留上行”的思想改造成家庭可执行约束:生存现金只认指定人民币资产,美元货基是机会资金,中长债是久期资产;腾讯从黄金模块拆出并按期限滑降;Sell Put 在现金帐篷、集中度和税务复核完成前暂停。价格阶梯只能加速减仓,不能替代期限。
注意: 面板展示的“当前目标占比”可以根据家庭不同阶段灵活调整,例如资产变现或追加投资后,只需在
target.json中调整targetPct即可。
current是真实快照;transition表示重大资产处置尚未完成;steady_state是资金完成部署后的终局目标。- 过渡期内受资金事件约束的缺口只显示为规划,不构成立即交易信号。
- 单一公司按最终发行人跨账户合并:5% 是终局目标;警戒、受控减仓和硬性处置是不同阈值,腾讯另有最迟完成日。
- Sell Put 是负凸性工具,当前治理暂停。即使未来重启,也必须同时通过 VIX、回撤、全额现金覆盖、行权后仓位、单次限额和重叠义务检查;系统不自动下单。
- 美国注册资产按组合聚合美元市值检查;达到
governance.usSitus.reviewThresholdUSD后暂停新增并提示专业复核。该线不是税务结论。 - 税务与 CRS 页面只提供带前提的事实和情景。地址、签证、租约或银行账单不单独决定税务居民身份。
- 2027 年工资归零是提前退休提款阶段,不是“今天停止储蓄、等到法定退休再提款”的经典 Coast FIRE。
capitalPolicy是支出与现金帐篷的唯一规则源:生存支出、基准支出、现金目标月数及可计入资产 key 都在这里定义。expectedReturn一律为名义收益;实际收益统一按inflation.annual换算。页面不再使用独立的 5%/6%/7% 实际收益假设。- 长期情景会扣除“基准支出-已确认房租/副业”的净提款;家庭代管资金不计可支配收入,投资总回报也不会被假设成自动派息。
- 大类:
module.thresholdPct(图片里的 ±3%/±5%/±2%) - 子项:
sub.subThresholdPct(独立计算,不影响大类)
红色 over / 黄色 under / 静音 ok。看板会同时标红/标黄。
sub.rmb = sub.raw × rates[sub.ccy]
module.total = sum(subs.rmb)
total = sum(modules.total)
module.actual = module.total / total
sub.actual = sub.rmb / total
| 区块 | 输出 |
|---|---|
| 顶部 KPI | 总盘 / 模块+子项告警数 / 腾讯合并敞口 / RMB 占比 + 环比 |
| 模块画像 | 每个大类一张卡:进度条 + 目标线 + 阈值带 + 子项明细(含账户) |
| 偏离告警表 | 双层状态(大类 + 子项)一览 |
| 币种分布 | RMB/USD/HKD + 红线判定 |
| 趋势图 | 总盘 / RMB 占比 / 腾讯敞口 / 告警数(红线虚线) |
| 时间线 | 历次快照可点击切换;显示备注 + 环比 |
cd /path/to/ai-finance-dashboard
python3 -m http.server 8765 --bind 127.0.0.1
# 浏览器打开 http://localhost:8765file://(fetch JSON 会被浏览器拦)。
“隐藏金额”用于防旁观和演示误触,不会加密 data/ 中的原始财务文件,也不能阻止拥有本机文件权限的人直接读取 JSON。
点击“隐藏金额”后选择“设置解锁密码”,即可直接在页面完成。密码本身不会保存;当前浏览器的 Local Storage 仅保存随机盐和 PBKDF2-SHA256 校验值。隐藏金额无需认证,再次显示金额必须输入密码。
这不是安全存储,也不是加密:清除浏览器站点数据或在开发者工具删除 Local Storage 中的 afd_privacy_lock_v1 即可重置密码,财务数据不会受影响。换浏览器、无痕窗口或换设备时需要重新设置。
| 红线 | 阈值 | 触发动作 |
|---|---|---|
| 单一公司持仓(合并所有账户) | 5% 终局目标;另设警戒/处置线 | 按期限滑降;价格只加速,不延后 |
| 单一币种 | > 70% | 触发换汇/再平衡 |
| 大类偏离 | > ±2~5% | 季度末再平衡 |
| 人民币生存现金 | 低于目标月数 | 优先补足现金帐篷,暂停风险扩张 |
| 美国 situs 聚合暴露 | 达专业复核线 | 暂停新增美国注册资产并复核持有结构 |
| 杠杆 | 任何 Margin | 立刻关闭 |
{ "snapshots": [ { "date": "2026-05-16", "rates": {...}, "holdings": {...} }, { "date": "2026-08-31", "rates": { "USD": 7.10, "HKD": 0.91 }, "ratesSource": "open.er-api.com (...)", "comment": "Q3 复盘 / 卖了腾讯 80 万", "holdings": { "tencent_futu": { "raw": 1800000 }, "tencent_zhongyin": { "raw": 800000 } } } ] }