
awayingsandClaude Code
fb35677802
feat: 自选列表新增「近3日/近1周/近2周」涨跌幅三列(issue #7)
交易日偏移口径:T = 上证指数日线(交易日历)中 <= 今天的最后一天,
D_n = T 往前 n 个交易日,锚点 = 个股日线(/bars 同款 QFQ)中
date <= D_n 的最后一根 bar。后端只回锚点收盘价,涨跌幅由前端用
SSE 实时价现算,盘中三列随报价免费跳动、无需轮询本接口。
- 新增 GET /watchlist/returns + 纯计算模块 web/returns.py(零 IO,单测覆盖
停牌回退/次新 null/除权日 QFQ/非交易日回退等口径)
- 个股日线与交易日历均进程内缓存(当日不变、次日失效),重复刷新零行情请求;
日历缺今天(serve 盘前启动)时按 60s 间隔重取,避免 T 整体前移
- 取数并发 ≤ 4(TDX 防封红线);单只失败只落 error,不影响整表
- 前端 +3 列(着色复用 dirClass/fmtPctSigned),e2e 同步断言
与 issue 定稿的两处偏差(/simplify 收敛,"减少不必要的改动"):
- 删除 windows 查询参数:列名与窗口一一对应(issue 亦将"用户自定义窗口"
列为 out of scope),固定 3/5/10
- 个股缓存由磁盘 JSON 改为进程内 dict:可观测行为不变(当日不重复请求),
但 serve 重启后当天首次请求会重取一次
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-11 11:39:10 +08:00
..
2026-04-11 19:55:19 +08:00
2026-09-04 12:42:44 +08:00
2026-09-06 22:16:48 +08:00
2026-09-10 11:25:28 +08:00
2026-06-12 21:10:50 +08:00
2026-09-06 22:16:48 +08:00
2026-06-10 15:03:41 +08:00
2026-09-03 03:07:57 +08:00
2026-07-04 00:08:38 +08:00
2026-06-12 20:59:59 +08:00
2026-09-01 22:16:44 +08:00
2026-09-06 22:16:48 +08:00
2026-07-04 00:08:38 +08:00
2026-09-06 02:42:34 +08:00
2026-07-10 15:17:00 +08:00
2026-09-06 22:16:48 +08:00
2026-06-12 20:47:03 +08:00
2026-07-09 20:16:12 +08:00
2026-06-09 16:43:44 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-02 20:19:17 +08:00
2026-09-02 17:12:00 +08:00
2026-05-22 04:19:07 +08:00
2026-06-11 22:56:23 +08:00
2026-08-26 15:21:35 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-05 03:30:52 +08:00
2026-09-06 22:16:48 +08:00
2026-06-10 15:03:41 +08:00
2026-06-11 02:25:42 +08:00
2026-06-17 18:17:32 +08:00
2026-09-06 22:16:48 +08:00
2026-07-02 03:37:37 +08:00
2026-06-14 23:58:24 +08:00
2026-07-02 03:37:37 +08:00
2026-06-30 15:02:27 +08:00
2026-05-21 23:21:21 +08:00
2026-05-21 23:21:21 +08:00
2026-05-21 23:21:21 +08:00
2026-09-01 17:45:07 +08:00
2026-07-07 20:36:44 +08:00
2026-07-07 20:13:39 +08:00
2026-09-01 22:56:38 +08:00
2026-09-03 00:46:28 +08:00
2026-09-05 11:42:04 +08:00
2026-09-01 17:58:12 +08:00
2026-06-13 21:21:33 +08:00
2026-06-13 21:21:33 +08:00
2026-06-13 21:21:33 +08:00
2026-06-13 21:21:33 +08:00
2026-06-13 21:21:33 +08:00
2026-08-05 15:58:00 +08:00
2026-06-10 15:03:41 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-02 11:53:53 +08:00
2026-09-06 22:16:48 +08:00
2026-07-13 15:59:28 +08:00
2026-06-10 15:03:41 +08:00
2026-07-04 02:11:27 +08:00
2026-06-10 15:03:41 +08:00
2026-06-30 15:02:27 +08:00
2026-09-06 22:16:48 +08:00
2026-09-03 02:02:19 +08:00
2026-07-03 22:42:04 +08:00
2026-07-04 00:17:06 +08:00
2026-07-03 15:42:06 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-04 12:29:09 +08:00
2026-09-04 12:17:36 +08:00
2026-09-06 22:16:48 +08:00
2026-07-09 20:16:12 +08:00
2026-07-10 15:17:00 +08:00
2026-06-13 21:21:33 +08:00
2026-09-06 22:16:48 +08:00
2026-08-26 15:00:53 +08:00
2026-09-02 10:44:09 +08:00
2026-09-06 22:16:48 +08:00
2026-09-01 17:45:07 +08:00
2026-09-06 22:16:48 +08:00
2026-09-02 20:19:17 +08:00
2026-09-01 23:21:42 +08:00
2026-06-11 02:34:00 +08:00
2026-07-02 03:37:37 +08:00
2026-09-02 20:19:17 +08:00
2026-06-25 03:46:57 +08:00
2026-09-06 22:16:48 +08:00
2026-08-21 16:57:12 +08:00
2026-06-15 00:31:13 +08:00
2026-07-04 20:50:07 +08:00
2026-06-13 21:09:55 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-11 11:39:10 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-06 22:16:48 +08:00
2026-09-11 11:39:10 +08:00
2026-09-02 20:19:17 +08:00
2026-06-07 21:13:49 +08:00
2026-08-31 20:43:35 +08:00
2026-06-07 21:13:49 +08:00