系统手册
2. 数据预处理 DWD
将原始 K 线加工为因子可直接使用的标准面板(returns / vwap / cap),并完成异常值与缺失值治理。
作用:把原始 K 线加工成因子可直接消费的干净面板(returns / vwap / cap),并做异常值与缺失值治理,写入 processed_kline_data。
源码地图
| 文件 | 关键方法 | 作用 |
|---|---|---|
src/processing/preprocessor.py | calculate_returns / calculate_vwap / calculate_cap | 衍生字段计算 |
handle_outliers | 按 n×标准差截断(Winsorization) | |
normalize_data | 标准化 | |
process / save_to_db | 串流程 + 落库 |
已知问题与修复
增量窗口边界错误污染下游(#29)
增量窗口边界计算错误会导致 returns / VWAP 失真,进而污染整张因子截面。详见 事故档案 · 增量窗口污染。
长尾异常值扰乱截面排名(#13)
未做去极值处理时,少数长尾异常点即可严重扰乱截面排名 → 引入 Winsorization。
量化要点
- 缺失值用
ffill().bfill()做横截面对齐,而不是直接删行——删行 = 人为制造生存者偏差。 - One Codebase 原则:这套清洗逻辑回测与实盘共用,保证「所见即所得」。
当前状态
已上线:returns / vwap / cap + ffill/bfill + 去极值。
缺口 / TODO
- 市值 / 行业中性化尚未在本层落地(与 因子正交化 相关),目前因子直接吃原始截面。
上一层:1. 数据接入 ODS · 下一层:3. 因子与信号 DWS