数据工程 (Data Engineering)
模块编号:第⑦模块
前置知识:机器学习基础、特征工程
难度等级:⭐⭐⭐⭐
预计学习时间:4-6 小时
模块简介
数据工程是量化系统的基石——没有好数据,再好的模型也白搭。
核心理念:量化研究的差距,往往不在模型,而在数据质量、数据处理能力和数据基础设施的完善程度。
本模块涵盖两大主题:
- 数据基础设施——从存储选型到数据管道,构建可靠的数据底座
- 算法执行系统——从研究信号到实际订单,掌握交易执行的核心技术
学习目标
完成本模块后,你将能够:
- 设计数据基础设施:选择合适的存储方案(时序数据库 vs Lakehouse),设计因子库和数据管道
- 处理量化数据:前复权/后复权、停牌过滤、缺失值填充、异常值检测与处理
- 建立数据质量体系:完整性、一致性、时效性三维度校验,自动化框架
- 理解特征存储:离线/在线特征统一管理的 Feature Store 概念
- 掌握列式存储格式:Parquet/Arrow 的设计原理、分区策略与读写优化
- 评估分布式方案:Dask vs Ray vs Spark 的适用场景
- 实现算法执行系统:TWAP、VWAP、Almgren-Chriss 最优执行、SOR 智能路由
- 进行交易成本分析(TCA):滑点归因、执行质量评估
数据工程在量化流程中的位置
┌─────────────────────────────────────────────────────────────────────┐
│ 量化投资完整流程 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 数据获取 │ → │ 数据工程 │ → │ 研究 │ → │ 回测/实盘 │ │
│ │ 外部数据 │ │ 清洗/存储 │ │ 建模训练 │ │ 执行交易 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ ↑ │ │
│ │ ↓ │
│ ┌────────┴────────┐ ┌──────────┐ │
│ │ 本模块聚焦 │ │ 算法执行 │ │
│ │ 数据基础设施 │ │ 系统 │ │
│ └─────────────────┘ └──────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
文件导航
| 文件 | 内容 | 预计时间 | 难度 |
|---|---|---|---|
| 01-数据基础设施与算法执行 | 数据存储选型、因子库设计、数据管道、数据清洗与复权、质量校验、Feature Store、Parquet/Arrow、分布式计算、TWAP/VWAP/Almgren-Chriss/SOR/POV、TCA 交易成本分析 | 4-6小时 | ⭐⭐⭐⭐ |
总计:约 4-6 小时
核心知识点预览
Part 1:数据基础设施
┌────────────────────────────────────────────────────────────────┐
│ 数据工程核心组件 │
├────────────────────────────────────────────────────────────────┤
│ │
│ 1. 数据存储选型 │ 2. 因子库设计 │
│ ├─ 时序数据库 ├─ 因子注册 │
│ ├─ 列式存储格式 ├─ 版本控制 │
│ └─ Lakehouse架构 └─ 血缘追踪 │
│ │
│ 3. 数据管道设计 │ 4. 数据清洗 │
│ ├─ 获取→清洗→计算→存储 ├─ 前复权/后复权 │
│ └─ 任务编排 ├─ 停牌/缺失值处理 │
│ └─ 异常值检测 │
│ │
│ 5. 数据质量校验 │ 6. Feature Store │
│ ├─ 完整性/一致性/时效性 ├─ 离线/在线特征统一 │
│ └─ 自动化框架 └─ 统一服务接口 │
│ │
│ 7. Parquet/Arrow │ 8. 分布式计算 │
│ ├─ 列式存储原理 ├─ Dask vs Ray vs Spark │
│ └─ 分区策略 └─ 量化场景选型 │
│ │
└────────────────────────────────────────────────────────────────┘
Part 2:算法执行系统
┌────────────────────────────────────────────────────────────────┐
│ 算法执行系统架构 │
├────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 信号层 │ → │ 执行层 │ → │ 风控层 │ │
│ │ (Alpha信号) │ │ (算法执行) │ │ (风险控制) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ 执行算法: │
│ ├─ TWAP(时间加权平均价格) │
│ ├─ VWAP(成交量加权平均价格) │
│ ├─ Almgren-Chriss(最优执行框架) │
│ ├─ POV(参与率控制) │
│ └─ SOR(智能订单路由) │
│ │
│ TCA 交易成本分析: │
│ ├─ 滑点归因(时机/市场冲击/买卖价差) │
│ └─ 执行质量评估 │
│ │
└────────────────────────────────────────────────────────────────┘
为什么数据工程如此重要?
| 问题 | 不重视数据工程 | 重视数据工程 |
|---|---|---|
| 数据质量 | 脏数据导致策略失效 | 自动化校验保证质量 |
| 因子管理 | 散落各处,难以复用 | 统一管理,版本控制 |
| 计算效率 | 单机计算瓶颈 | 分布式并行加速 |
| 研究复现 | 结果无法重现 | 完整记录,可追溯 |
| 执行质量 | 随意下单,滑点巨大 | 算法执行,成本可控 |
| 上线延迟 | 研究到上线数月 | 自动化流程,快速上线 |
推荐学习路径
起点
│
├→ Part 1:数据基础设施(可按需跳读)
│ ├─ 数据存储选型(了解各种方案的权衡)
│ ├─ 因子库设计(学习如何组织因子)
│ ├─ 数据管道(理解数据流转)
│ ├─ 数据清洗与复权(掌握复权、异常值处理)
│ ├─ 数据质量校验(建立数据质量意识)
│ ├─ Feature Store(了解离线/在线特征统一管理)
│ ├─ Parquet/Arrow(掌握高效的列式存储)
│ └─ 分布式计算(了解何时需要分布式)
│
├→ Part 2:算法执行系统(建议完整学习)
│ ├─ 执行算法概述(理解为什么需要执行算法)
│ ├─ TWAP / VWAP(掌握标准执行算法)
│ ├─ Almgren-Chriss(理解最优执行理论)
│ ├─ POV / SOR(了解高级执行技术)
│ └─ TCA 交易成本分析(执行质量评估)
│
└→ 终点:具备构建量化数据基础设施和执行系统的能力
学习建议:
- Part 1 可以跳读:根据实际需求选择重点章节
- Part 2 建议完整学习:执行算法对实盘交易至关重要
- 动手实践:每个代码示例都建议运行并修改参数
- 结合实际:思考如何将学到的内容应用到自己的项目中
代码环境准备
# 安装必要的包
pip install numpy pandas pyarrow fastparquet dask
# 可选:分布式计算
pip install ray[default] # Ray
# pip install pyspark # Spark(较重)
# 可选:数据管道编排
# pip install apache-airflow # Airflow
# pip install dagster # Dagster本模块使用的包:
| 包名 | 用途 |
|---|---|
| numpy | 数值计算 |
| pandas | 数据处理 |
| pyarrow | Parquet 文件读写 |
开始学习
数据工程是量化研究的”基建工程”。把地基打牢,上层建筑才能稳固。
补充资源
推荐阅读:
- 《数据密集型应用系统设计》- Martin Kleppmann
- 《Algorithmic Trading》- Ernest P. Chan
- 《Algorithmic Trading and DMA》- Barry Johnson(执行算法经典)
在线资源:
- kdb+ 官方文档(时序数据库标杆)
- Arctic 文档(Python 原生因子库)
- Dagster 文档(现代数据编排工具)
版本信息
- 创建日期:2026-03-28
- 最后更新:2026-03-28
- 作者:mlqt 团队
- 许可:CC BY-NC-SA 4.0