毕业关卡:搭建你的第一条完整数据流水线
我的掌握程度:
先掌握这个答案
流水线六站:①下载(循环股票+缓存)→②体检(health_check,异常不放行)→③清洗(去重/剔0价/标记停牌/复权计算)→④对齐(交易日历reindex+财务公告日merge_asof)→⑤存储(clean目录parquet+快照日期)→⑥登记(记录数据版本、行数、检查结果到README)。产出:一张(日期,代码)双索引的面板表,任何因子研究的起点。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
本阶段实战方法 · 把行情数字变成可比较的收益
看股票、基金或策略业绩时,先对齐本金、起止日期、现金流与费用。
- 选一个固定区间,记录期初价值、期末价值、分红、出入金和交易费用。
- 没有中途出入金时,用(期末价值+已取出分红-期初价值-费用)÷期初价值计算收益;有出入金时先区分时间加权与资金加权。
- 用相同区间的基准作比较,同时记录最大亏损;不要单凭一次盈利评价能力。
使用边界
- 不同期限的收益不可直接排名;年化只是换算,不是未来收益承诺。
- 模拟价格不是实时行情。普通股票交易手数、T+1和费用应按具体市场规则核对。
背景 · 从一个困惑说起
数据车间的零件已全部到货:数据源(q-061)、复权(q-064)、清洗(q-065)、停牌(q-066)、日历(q-068)、存储(q-069)、校验(q-071)。现在是装配时刻——把它们串成一条自动流水线。
由此产生的问题
一条完整的数据管道从「下载数据」到「可用于研究」要经过哪些站点?每站的输入输出是什么?
核心概念
流水线六站:①下载(循环股票+缓存)→②体检(health_check,异常不放行)→③清洗(去重/剔0价/标记停牌/复权计算)→④对齐(交易日历reindex+财务公告日merge_asof)→⑤存储(clean目录parquet+快照日期)→⑥登记(记录数据版本、行数、检查结果到README)。产出:一张(日期,代码)双索引的面板表,任何因子研究的起点。
为什么需要它
①可复现性:快照+登记让三个月后的你(或面试官)能重跑出同样结果;②自动化:脚本一次写成,以后每日/每周增量更新,人工只处理告警;③这是阶段4大作业的预演:现在搭迷你版(3只股票),阶段4扩展到全市场——学习曲线平滑。
实际应用场景
个人基础设施的标准形态;简历项目第一格:「搭建A股数据管道:下载-校验-清洗-存储自动化,支撑后续因子研究」——面试官问细节时你每站都有故事讲。
与之前知识的联系
数据组十题的毕业典礼。q-091~097的毕业项目将直接踩着这条流水线前进。下一组转向「人与行业」:量化世界里的岗位、机构与职业路径。
⚠ 常见误解
- 等学完阶段4再动手:迷你版今天就能搭,工程能力在迭代中生长而不是学完再做
- 管道一次搭好永不变:数据源会变、需求会变;重要的是结构和日志,代码永远在演化
- 个人不需要这么正式:正式的程度=三个月后还能用。最低限度的正式(快照+README)成本半小时
🛠 本题实践任务
动手搭建迷你管道:3只股票,走完六站(下载/体检/清洗/对齐/存储/登记)。产出panel_日期.parquet和README.md(记录版本、行数、已知问题)。
💡 提示(先自己想5分钟再看)
分两个脚本写,每个能独立运行;README三行也行,但必须存在。
✅ 验收标准
GitHub/本地目录里可见:两个脚本+parquet文件+README。这是你量化基础设施的第一块领地,q-091起它将开足马力。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(数据源、复权、清洗),再用案例、公式和代码帮助理解。此功能需要先启用服务。