## Type - [x] Enhancement (improvement to existing feature) ## Goal 消费端一个 JOIN 即可算换手率(issue #1 的内置方案);上市日期入库支持次新股过滤。 ## Context - 本地 `base.dbf`(盘后自动更新)已有 ZGB 总股本 / LTAG 流通A股(万股,已用平安 194.06 亿股、茅台 12.5 亿股核准单位)、GXRQ 股本更新日、SSDATE 上市日期 - 单位换算后换手率公式:`换手率(%) = daily_data.volume / stock_info.ltag`(手 与 万股 的单位差恰好抵消) - DBF 解析器已有(#39 的 blocks 链),扩展取列即可 ## Constraints - 股本为当前快照:历史换手率在股本变动点之前失真,文档必须注明(精确历史需 gbbq,Out of Scope) - base.dbf 缺失/不可读时字段置 NULL 降级,不阻塞 stock-list - 不新增依赖 ## Done Criteria - [ ] stock_info 新增 zgb / ltag(万股,Float)、capital_date / list_date(Date) - [ ] stock-list 从 base.dbf 补全四列;缺文件/不可读降级 NULL + WARNING - [ ] stock_info 写入改为快照替换(单事务 DELETE+INSERT,与 block 表同模式)——否则股本刷新重跑会撞唯一约束 - [ ] blocks 四链文件读取补 OSError 降级(#44 同款场景) - [ ] 迁移脚本(老表 ALTER ADD COLUMN ×4) - [ ] 换手率实测:任一股票 JOIN 计算与行情软件对比同数量级 - [ ] README FAQ 增加换手率条目;AGENTS/skill 补 SQL 与失真 caveat - [ ] 测试:DBF fixture 扩列断言 / 降级 / 快照替换 ## Out of Scope - daily_data 加换手率列(时变股本,快照口径对历史失真) - gbbq 股本变迁解析(精确历史换手率的正道,另议) Closes #1(发布后回帖告知)
Type
Goal
消费端一个 JOIN 即可算换手率(issue #1 的内置方案);上市日期入库支持次新股过滤。
Context
base.dbf(盘后自动更新)已有 ZGB 总股本 / LTAG 流通A股(万股,已用平安 194.06 亿股、茅台 12.5 亿股核准单位)、GXRQ 股本更新日、SSDATE 上市日期换手率(%) = daily_data.volume / stock_info.ltag(手 与 万股 的单位差恰好抵消)Constraints
Done Criteria
Out of Scope
Closes #1(发布后回帖告知)