1. 课程导论:高频行情数据定义、标签概念、Spark在行情处理中的优势、课程目标与前置知识
1.1 高频行情数据定义
高频行情数据是指由交易所或数据供应商以极低延迟(通常为微秒级至毫秒级)实时推送的逐笔成交与逐笔委托数据。与传统的分钟级或日线数据相比,高频行情具有以下核心特征:
| 维度 | 传统行情数据 | 高频行情数据 |
|---|---|---|
| 时间粒度 | 分钟、小时、日 | 微秒、毫秒 |
| 数据量级 | 单日GB级别 | 单日TB级别 |
| 记录类型 | K线、快照 | 逐笔成交、逐笔委托、订单簿快照 |
| 延迟要求 | 秒级或分钟级 | 微秒级实时处理 |
| 典型字段 | 开盘价、收盘价、成交量 | 委托编号、买卖方向、价格、数量、时间戳 |
关键指标: 沪深交易所逐笔行情单日数据量可达 500GB~2TB,单只股票日均产生 10万~50万笔逐笔成交记录。
1.2 标签概念与业务价值
在量化交易与风控场景中,“标签”是对原始行情数据进行特征工程后生成的、具有明确业务含义的衍生指标。标签体系将海量无结构的逐笔数据转化为可直接用于策略建模的结构化特征。
- 微观结构标签: 买卖价差、订单簿深度、成交量加权价格(VWAP)、订单到达率。
- 资金流向标签: 主力净流入、大单占比、主动买卖比率。
- 异常检测标签: 闪电拉升/跳水、对倒交易、虚假订单撤单率。
- 预测型标签: 短期价格方向、波动率突变、流动性枯竭预警。
实战视角: 本课程将重点讲解如何利用Spark对原始逐笔数据流进行实时标签计算,例如“每5秒滑动窗口内的主动买入成交量占比”标签,用于捕捉主力资金动向。
1.3 Spark在行情处理中的核心优势
传统单机Python或C++方案在处理TB级高频行情时面临内存瓶颈与开发效率问题。Apache Spark凭借以下能力成为行业标准方案:
- 分布式内存计算: 将数据分片加载到集群内存,避免磁盘I/O瓶颈。
- 微批处理与流处理统一: Structured Streaming 支持 Exactly-Once 语义,保证标签计算的准确性。
- 丰富的高阶算子: window、groupBy、mapGroupsWithState 等算子天然适配滑动窗口、状态聚合等标签计算模式。
- 与数据湖生态集成: 直接读写 Parquet/Delta Lake,支持增量标签回填与历史回测。
1.4 课程目标
完成本课程后,学员将具备以下能力:
| 能力维度 | 具体目标 |
|---|---|
| 理论理解 | 掌握高频行情数据结构、标签体系设计原则、微观市场结构理论 |
| Spark开发 | 熟练使用Structured Streaming处理逐笔数据,实现滑动窗口、状态化标签计算 |
| 工程实践 | 搭建端到端标签生产管道,处理数据倾斜、延迟数据、容错恢复等生产问题 |
| 性能调优 | 掌握Spark内存调优、分区策略、Kafka集成优化,实现秒级延迟处理TB级行情 |
1.5 前置知识要求
为获得最佳学习体验,建议学员具备以下基础:
- 编程基础: 熟悉Scala或Python语法,了解函数式编程概念。
- Spark基础: 理解RDD、DataFrame、Structured Streaming基本概念,能运行Spark作业。
- 金融基础: 了解股票交易基本规则(订单簿、买卖盘口、逐笔成交)。
- Linux基础: 能使用命令行操作文件、查看进程、配置环境变量。
注意: 本课程不从头讲解Spark基础API。如果对Spark DataFrame操作尚不熟悉,建议先学习《Spark快速入门》或官方Quick Start文档。
1.6 课程内容概览
全课程共30章,按以下模块组织:
| 模块 | 章节范围 | 核心内容 |
|---|---|---|
| 基础篇 | 第1~5章 | 行情数据解析、标签体系设计、Spark环境搭建 |
| 核心篇 | 第6~18章 | 滑动窗口标签、状态化计算、多数据流Join、延迟数据处理 |
| 进阶篇 | 第19~25章 | 性能调优、数据倾斜处理、Kafka集成、Delta Lake标签存储 |
| 实战篇 | 第26~30章 | 完整标签管道搭建、回测验证、生产部署与监控 |
课程特色: 每章均提供可运行的Spark代码示例、真实行情数据样本(脱敏)、以及性能基准测试结果。学员可直接在本地或云集群上复现标签计算管道。