个人基金账户 OS:四件套洞察 + 健康面板
从盘中估值表到「一眼看懂账户」,中间差的不是又一张表,而是几层固定问法。这篇文章记录 venxine.vip 上真实落地的路径:数据从哪来、四个洞察页各自回答什么、Cron 健康面板如何避免假绿灯,以及日常入口最后如何收成驾驶舱。
页面入口(部分需 Demo 密码):
- 驾驶舱:https://venxine.vip/demo15/
- 热力图 / 回撤 / 归因 / 相关:
/demo9//demo12//demo13//demo14/ - 真账草稿:https://venxine.vip/demo16/
- Cron 健康:https://venxine.vip/cronstatus/
1. 先有管线,才有洞察
账户相关页不直接爬网页拼数,而是共用一条已经跑稳的链:
fund-tracker(盘中)→ daily-pl.json(收盘净值)
→ funddata DCA 引擎(份额×净值、定投、手续费)
→ /api/fund-pl、驾驶舱、热力图、归因、回撤
原则只有三条:
- 盘里已有数据,不再平行造第二套估值。
- 能每天自动更新,不靠手抄。
- 比「又一张明细表」多一层解释。
天天基金实时估值下线之后,采集侧收敛到 Sina + 持仓权重;展示侧全部吃 daily-pl 和 baseline。洞察层只做计算与可视化,不再碰源站 HTML。
2. 四件套各管一个问题
| 页 | 问题 | 数据 |
|---|---|---|
| DEMO9 热力图 | 哪天最痛、哪周最肥 | 全日 P&L 日历格 |
| DEMO12 净值+回撤 | 从高点回了多少、多久没新高 | 10 只基金市值序列 |
| DEMO13 归因 | 这周/这月谁拖后腿、谁贡献 | 分基金日收益聚合 |
| DEMO14 相关 | 是不是「看起来 7 只,实际一只票」 | 净值日涨跌皮尔逊相关 |
回撤比单日盈亏更扎人:组合可以某天只亏几百,但相对峰值已经深撤百分之三十。相关矩阵则直接打假分散,科技成长扎堆时,芯片和科芯的 ρ 可以到 0.98 以上,加仓同类等于加杠杆。
实现上把 funddata 的 DCA 路径抽成 _demo2_calc_fund_detail(),一次算出当日盈亏和市值;热力图与归因继续走 _compute_fund_pl_demo2(),避免和日视图对不上。
3. 健康面板:job 绿不等于数据在
早期 /cronstatus/ 只有「最近一次状态」分布。真实故障经常是:
- job 显示 ok,但
daily-pl里没有今日日期键; - tracker 文件时间戳在更新,内容却是空列表;
- 网关凌晨自重启,cron 任务被自己杀掉,
last_status=error,其实重启成功了。
所以健康面板叠了三层:
P0 态势
今日成功/失败次数、作业异常与过期、下次关键任务、60 秒真刷新、点行展开 last_error。
P1 执行账本
读 executions.db:今日 runs、连续失败、耗时;按调度间隔做 stale(例如每 10 分钟任务超过 2.5 个周期未跑)。
P2 产物心跳 + 业务校验
不只看 mtime:
- tracker:当日文件是否存在、是否非空;
- daily-pl:最新日期是否落后、基金数量是否齐全;
- ainews:是否今日文件、headlines 是否过少;
- 盘中红线:工作日 9–15 点 tracker/ticker 过旧直接顶栏告警。
网关每日重启脚本会 systemctl --user restart hermes-gateway,进程被清掉时 job 必报错。面板把这类匹配 Gateway shutdown / final-cleanup 的结果标成 NOISE,不再把整页健康等级打成 error。真异常和噪音分开,信噪比才回得来。
4. 驾驶舱与真账草稿
四件套齐了以后,日常痛点变成「要点四次」。DEMO15 账户驾驶舱把下面压进一屏:
- 当前市值、当前回撤、最大回撤、本周合计;
- 本周拖累/贡献;
- 平均相关与 ρ≥0.9 假分散提示;
- 近 7 个交易日柱条;
- 本周真账 Markdown 预览与一键复制。
DEMO16 则按周/月/全部生成完整草稿:账户快照、拖累贡献 TOP、最佳最差日、相关结论、一句话复盘。公域发「搞钱日记」前仍要人工过目;数字来自同一套 DCA,不靠再讲一遍故事。
5. 几个坑
-
同源优先于新轮子
页面估值、预警 cron、收盘 P&L 必须对齐。曾经预警已在用最快源,页面还在换方案,最后才统一。 -
mtime 健康是假象
文件今天碰过,不代表今日业务键在。补漏任务的成功定义应是「daily-pl 含目标日期」,不是 exit 0。 -
自重启任务会自杀
网关重启 job 被自己杀掉是机制问题,不是偶发网络错误。要么外部 watchdog,要么面板降噪,别让它永久污染错误计数。 -
洞察页要有总入口
没有驾驶舱时,四件套是四个实验;有了驾驶舱,才是账户 OS 的首页。
6. 现在怎么用
交易日盘中:fundtracker + cronstatus(盘中红线)。
收盘后:驾驶舱一眼,归因看谁拖后腿,回撤看伤口深不深。
周末:真账周记草稿 → 过目 → 搞钱日记。
运维:cronstatus 看今日 runs 与产物业务校验,system 页有迷你健康条。
代码都在 fund-web:计算在 app.py 的 demo2/cron 辅助函数,模板在 demo9–demo16 与 cronstatus.html。新洞察继续问那三句:数据在不在盘里、能不能每天自动更新、是不是比又一张表更有解释力。
若只记一句:明细表回答「今天多少钱」,四件套回答「痛在哪、回了多少、谁造成的、是不是假分散」;健康面板回答「数还敢信吗」。