用途 A股基金净值监控,围绕盘中实时估值与盘后实际净值两条主线,定时推送到 Telegram 私聊。适用于需要按固定时间点跟踪多只 A股基金净值变化的场景。
主要能力 支持两种查询模式:
- estimate 模式:调用 fundgz.1234567.com.cn,获取盘中实时估值。
- nav 模式:调用 api.fund.eastmoney.com/f10/lsjz,获取收盘净值。
脚本为 fund_monitor.py,纯 Python 实现,无外部依赖。
使用方式 手动执行:
盘中估值(控制台输出)
python3 scripts/fund_monitor.py estimate
收盘净值(控制台输出)
python3 scripts/fund_monitor.py nav
定时任务通过 OpenClaw cron 配置,使用 Asia/Shanghai 时区:
- 10:30 盘中估值,数据源 fundgz 接口
- 12:30 盘中估值,数据源同上
- 14:30 盘中估值,数据源同上
- 22:00 收盘净值,数据源 lsjz 接口
以上合并为 1 个 cron job。
模式判断逻辑:北京时间 ∈ [09:30, 19:00) 时使用 estimate;北京时间 ∈ [19:00, 次日) 时使用 nav。
投递目标为 telegram:8518085684,accountId changqing。
添加/删除基金:编辑 fund_monitor.py 中的 FUNDS 列表,格式为 ("代码", "简称")。
架构 fund_monitor.py ├── estimate 模式 → fundgz.1234567.com.cn(盘中实时估值) └── nav 模式 → api.fund.eastmoney.com/f10/lsjz(收盘净值)
OpenClaw cron(isolated agentTurn) ├── 09:30-19:00 → estimate 模式 └── 19:00 之后 → nav 模式 └── stdout → delivery announce → Telegram 私聊
关键路径:skills/a-fund-monitor/scripts/。API 参考详见 references/eastmoney-api.md。
变更记录
- v2.1.1(2026-06-22):将触发时间 20:30 调整为 22:00,避免拿到旧数据;脚本升级为「今日过滤 + QDII 标记 🌏 + HTTP 重试」;cron model 改为 minimax primary;timeout 提到 300s。
- v2.1.0(2026-05-25):将 4 个 cron 合并为 1 个(逗号分隔小时);从 Hermes 迁移到 OpenClaw cron;推送目标改为指定私聊;超时提至 180s;19:00 前走估值。
- v2.0.0(2026-05-22):初始 Hermes cron 版本。
限制与注意事项
- 超时:14 只基金顺序请求,API 偶发慢速,cron timeout 建议设为 180s(v2.1.1 提到 300s)。
- NAV 涨跌幅字段:东方财富 lsjz API 的涨跌幅字段为 JZZZL(净值增长率),不是 NAVCHGRT。
- 估值 API 返回 JSONP:fundgz.1234567.com.cn 返回 jsonpgz({...}); 格式,需正则提取 JSON。
- HTTP 请求头:两个 API 都需要 Referer: https://fund.eastmoney.com/ 和 User-Agent,否则可能 403。
- NAV 发布时间不均:多数基金 21:00-22:30 才陆续发布 NAV,QDII 滞后 1 天。未发布基金显示「⏳ 待发布 (上次: 日期)」,不混进平均。
- 早期 20:30 触发会拿到 4-5 天前的旧数据(脚本只取 items[0] 不过滤日期),已升级为今日过滤。
- QDII 基金估值时间:例如广发纳斯达克100联接的估值时间显示为 04:00(美股收盘时间),非 A 股 15:00。
- 周末/节假日:cron 1-5 仅排除周末,中国法定节假日仍会触发,产出的是上一交易日数据。