数据工程 (Data Engineering)

模块编号:第⑦模块

前置知识:机器学习基础、特征工程

难度等级:⭐⭐⭐⭐

预计学习时间:4-6 小时


模块简介

数据工程是量化系统的基石——没有好数据,再好的模型也白搭

核心理念:量化研究的差距,往往不在模型,而在数据质量、数据处理能力和数据基础设施的完善程度。

本模块涵盖两大主题:

  1. 数据基础设施——从存储选型到数据管道,构建可靠的数据底座
  2. 算法执行系统——从研究信号到实际订单,掌握交易执行的核心技术

学习目标

完成本模块后,你将能够:

  1. 设计数据基础设施:选择合适的存储方案(时序数据库 vs Lakehouse),设计因子库和数据管道
  2. 处理量化数据:前复权/后复权、停牌过滤、缺失值填充、异常值检测与处理
  3. 建立数据质量体系:完整性、一致性、时效性三维度校验,自动化框架
  4. 理解特征存储:离线/在线特征统一管理的 Feature Store 概念
  5. 掌握列式存储格式:Parquet/Arrow 的设计原理、分区策略与读写优化
  6. 评估分布式方案:Dask vs Ray vs Spark 的适用场景
  7. 实现算法执行系统:TWAP、VWAP、Almgren-Chriss 最优执行、SOR 智能路由
  8. 进行交易成本分析(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 交易成本分析(执行质量评估)
  │
  └→ 终点:具备构建量化数据基础设施和执行系统的能力

学习建议

  1. Part 1 可以跳读:根据实际需求选择重点章节
  2. Part 2 建议完整学习:执行算法对实盘交易至关重要
  3. 动手实践:每个代码示例都建议运行并修改参数
  4. 结合实际:思考如何将学到的内容应用到自己的项目中

代码环境准备

# 安装必要的包
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数据处理
pyarrowParquet 文件读写

开始学习

数据工程是量化研究的”基建工程”。把地基打牢,上层建筑才能稳固。

开始学习:01-数据基础设施与算法执行


补充资源

推荐阅读

  • 《数据密集型应用系统设计》- 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

此文件夹下有1条笔记。