第一个数据项目:全A后复权面板
我的掌握程度:
先掌握这个答案
完整流程:①下载全A(q-328战役)→②清洗(复权q-330/停牌q-317/去重)→③双口径存储(原始价+因子→Parquet)→④README(快照日期/口径/已知问题)→⑤校验(q-339六项)→通过。产出规格:面板(date,code双索引)×OHLCV+复权因子,后复权价=raw×factor。后续消费:阶段5因子计算全部基于这张面板;阶段6回测从中取数据;阶段8的ML特征也来自这里——一次建设终身受益。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
收益口径和撮合价格分开
保留原始价、企业行动和复权因子,用一致口径计算收益;模拟成交、涨跌停与订单价格应使用当时真实报价。前后复权在相同调整方法下只差归一化常数时,区间收益一致;并非所有数据商都保证该条件。
本阶段实战方法 · 一条能复现的数据流水线
把接口返回的数据变成可用于因子研究的面板时,先处理时点、主键与单位。
- 建立数据字典:字段、单位、时区、交易日历、数据源、抓取时间、原始价与复权因子。
- 用(date, code)查重,区分停牌、未上市、窗口不足和真实缺失;不要用向后填充把未来值带回过去。
- 保存原始快照与清洗日志,固定随机种子和环境版本;接口字段变化时先核对官方文档。
使用边界
- 报告期不等于公告可用日,盘后公告通常不能用于当天收盘前决策。
- API输出名为“动态市盈率”时不能直接改名TTM;浏览器练习不支持任意原生库或行情抓取接口。
背景 · 从一个困惑说起
阶段4走到头了——把学到的全部组装成一件兵器:全A后复权日线面板(date×code×OHLCV)。它不是一个练习——它是你接下来所有因子研究、回测、ML项目的数据基础设施。
由此产生的问题
完整的项目流程(下载→清洗→存Parquet→README→校验)?产出物的规格标准?这个项目在后续阶段怎么被消费?
核心概念
完整流程:①下载全A(q-328战役)→②清洗(复权q-330/停牌q-317/去重)→③双口径存储(原始价+因子→Parquet)→④README(快照日期/口径/已知问题)→⑤校验(q-339六项)→通过。产出规格:面板(date,code双索引)×OHLCV+复权因子,后复权价=raw×factor。后续消费:阶段5因子计算全部基于这张面板;阶段6回测从中取数据;阶段8的ML特征也来自这里——一次建设终身受益。
为什么需要它
①基础设施思维:因子研究是「上层建筑」——数据面板是「地基」——地基牢不牢决定上层能盖多高;②完整闭环的第一次:下载→清洗→存储→校验的全链路——这是量化数据工程师的日常缩影;③简历的硬通货:面试问"你的数据管道"——直接展示这个项目(含GitHub)。
实际应用场景
项目目录:data/raw/单票缓存→data/clean/panel.parquet→scripts/01_download.py + 02_clean.py + 03_check.py→README.md(含快照/口径/复现步骤)。
与之前知识的联系
q-328-339的全部知识点组装件;阶段5的全部因子研究以此为原料——这是阶段4的毕业设计。
⚠ 常见误解
- 等学完阶段5再搭数据:数据是因子研究的入场券——先搭好再做因子;阶段5的每个操作都假设你已有这张面板
- 只需要前复权就行:前复权的历史值随分红变化→增量错位(q-330的坑)→原始价+因子是最稳健方案
- 搭好就不用维护了:每季度增量+全量校准(q-338)——面板是活资产不是一次性交付物
- 数据质量只要买贵的就好:免费数据+严格校验的质量>付费数据+无校验——校验环节不可省略
🛠 本题实践任务
完整搭建你的全A日线面板(或至少300只成分股),走完五步流程,产出带README的Parquet文件。这是阶段4的毕业设计——值得花一天做好。
💡 提示(先自己想5分钟再看)
分步做:01下载→02清洗→03体检→04拼面板→05写README——每步独立脚本可单独重跑。GitHub上传时加.gitignore排.parquet大文件。
✅ 验收标准
一个完整的数据面板项目(scripts+parquet+README+体检通过)——阶段4毕业,阶段5的所有研究从这里出发。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(全量下载、Parquet存储、数据校验),再用案例、公式和代码帮助理解。此功能需要先启用服务。