lzf_0626
131effcfae
feat(tools): 新增 fetch_live_quotes 拉真实行情并核对库里快照
项目本来就对接了东方财富真实行情(app/infrastructure/fund_market_adapter.py:
push2.eastmoney.com 的行情接口 + api.fund.eastmoney.com 的历史净值接口),
下单链路取 quote_price/quote_source 走的也是它。之前做知识草稿时用的是
fin_product 表里的快照,没有去核对真实数据源,这次补上。
新增 tools/fetch_live_quotes.py:
- 用项目自带的 EastmoneyFundAdapter 取数,不自己拼 HTTP、不引第三方行情库
- 产品范围与 MarketQuoteSyncService.sync 一致(南方基金 / SSE,SZSE / 上市)
- 逐只对比真实净值与 fin_product.current_nav,只报告差异、**不写库**
(刷新快照是 ProductHistorySyncService / MarketQuoteSyncService 的职责)
实测结果(2026-09-13,20 只全部取到真实数据):
- 18 只完全一致(库里 6 位小数、数据源 4 位,是同一笔数)
- 2 只不一致:
· 510300 沪深300ETF:库里 4.500000,真实 4.5794。库里快照时间是今天 08:19:37,
其余 19 只都停在 09-11 15:00:00 —— 说明这是被人为改过的演示值(4.5 凑"1 手 450 元")。
需要定:知识用真实值还是演示值;若交易按库里的 4.5 成交而知识说 4.5794,两处口径会打架。
· 511810 货币ETF南方:库里 0.266100,NAV_API 给 0.2332,而 QUOTE_API(场内实时价)
给 100.012 —— 差三个数量级,说明两个接口对这只的含义不同,需人工核实口径。
docs/42 随之更新:
- 产品清单改用真实净值,并加上当日涨跌与净值日期,注明取数来源与复现命令
- 3.1 节的沪深300ETF 条目改用真实值 4.5794,并列出两处待确认口径
- 新增 4.2 节记录本次核对结果与两只不一致项的判断依据
2026-09-13 19:27:58 +08:00
..
2026-09-12 10:37:53 +08:00
2026-09-11 22:31:51 +08:00
2026-09-13 18:31:38 +08:00
2026-09-13 16:20:52 +08:00
2026-09-12 14:40:53 +08:00
2026-09-09 21:55:37 +08:00
2026-09-10 15:55:54 +08:00
2026-09-11 17:26:18 +08:00
2026-09-09 21:55:37 +08:00
2026-09-11 18:42:46 +08:00
2026-09-12 15:50:37 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 18:56:26 +08:00
2026-09-12 11:27:28 +08:00
2026-09-11 18:56:26 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 14:46:40 +08:00
2026-09-12 12:50:14 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 14:46:40 +08:00
2026-09-11 14:46:40 +08:00
2026-09-11 14:46:40 +08:00
2026-09-10 15:55:54 +08:00
2026-09-11 14:46:40 +08:00
2026-09-11 15:40:32 +08:00
2026-09-10 15:55:54 +08:00
2026-09-12 16:30:01 +08:00
2026-09-10 18:35:52 +08:00
2026-09-10 21:36:23 +08:00
2026-09-11 14:47:08 +08:00
2026-09-11 14:47:08 +08:00
2026-09-11 15:40:32 +08:00
2026-09-11 19:15:23 +08:00
2026-09-11 20:00:56 +08:00
2026-09-11 21:49:46 +08:00
2026-09-12 14:41:13 +08:00
2026-09-12 09:37:00 +08:00
2026-09-12 14:57:56 +08:00
2026-09-12 11:27:28 +08:00
2026-09-12 11:46:47 +08:00
2026-09-12 12:10:03 +08:00
2026-09-12 12:22:32 +08:00
2026-09-12 13:14:57 +08:00
2026-09-12 13:00:30 +08:00
2026-09-12 13:23:43 +08:00
2026-09-13 19:17:56 +08:00
2026-09-12 17:04:37 +08:00
2026-09-13 19:27:58 +08:00
2026-09-11 18:42:46 +08:00
2026-09-11 16:51:52 +08:00
2026-09-11 19:52:08 +08:00
2026-09-09 21:55:37 +08:00
2026-09-11 20:06:23 +08:00
2026-09-11 16:57:47 +08:00
2026-09-11 16:57:47 +08:00
2026-09-11 16:11:30 +08:00
2026-09-11 10:46:56 +08:00
2026-09-11 17:58:46 +08:00
2026-09-11 19:24:57 +08:00
2026-09-12 11:15:24 +08:00
2026-09-11 20:00:56 +08:00
2026-09-11 19:15:50 +08:00