docs(market-data): 补充同步架构上下文

This commit is contained in:
yuxuanhui
2026-08-06 22:57:48 +08:00
parent 039a81fe57
commit 11e87289e7
3 changed files with 86 additions and 0 deletions
@@ -0,0 +1,25 @@
---
status: accepted
---
# 市场数据以 PostgreSQL 为主存储
为支持历史可复现分析、按交易日查询、增量同步和跨标的策略分析,标准化的股票池、日线行情与估值数据统一落入 PostgreSQL。CSV 不作为运行时事实源,仅作为 Tushare 落地快照、导出和故障恢复介质;策略层通过仓储接口读取 DataFrame,以隔离分析逻辑与存储技术。
第一阶段同步范围包含股票主数据、日线行情和每日估值/交易指标;只迁移 K 线会无法重建当前股票池内的历史走势及市值/流动性条件。股票范围保持当前上市的沪深非 ST A 股,不包含北交所,也不维护退市股票的长期历史成员资格。价格数据只保留 Tushare `qfq` 前复权口径,不将未复权或 `hfq` 作为运行时事实。历史分析按交易日复现当前股票池内的行情与估值状态,但使用数据库中最新修订的 qfq,不承诺恢复某次同步时的 qfq 版本。
第一阶段只同步日线收盘数据,不覆盖分钟级或实时行情。
## Considered Options
- **按股票拆分 CSV 作为主存储**:保留旧项目的低门槛结构,但难以保证跨标的一致性、时点查询和增量修订。
- **SQLite 作为主存储**:适合单机原型,但与后续服务化、多进程同步和并发分析的目标不匹配。
## Consequences
- 需要设计 PostgreSQL schema、索引、迁移和备份策略。
- 同步任务必须具备批次记录、幂等 upsert 和失败重试能力。
- CSV 导出格式属于交付/快照契约,不再承担在线查询职责。
- 若未来需要未复权或 `hfq` 分析,必须重新回补数据,不能从当前主表无损推导。
- “历史可复现”不等同于恢复历史抓取版本;qfq 的供应商修订会改变历史价格,但不改变股票池和估值的交易日时点约束。
- 当前方案不覆盖长期回测所需的退市股票、历史上市状态和无幸存者偏差股票池;若需求改变,应另立数据范围决策。