Quant Data Pipeline · 合成沙盘

量化数据流水线沙盘

从原始行情落地到参数标定的十个阶段,全部在浏览器里真实计算:注入已知缺陷 → 清洗检出 → 复权对齐 → 缺失处理 → 因子构建 → 相关矩阵去噪 → 净化 K 折标定 → 上线门禁。因为缺陷是模拟注入的,页面知道真值,所以能直接给出每种清洗规则的查全率与误杀率,而不是只画一条好看的曲线。全部为合成数据。

—
全集

品种全集:9 个资产类别

每个类别有自己的交易日历、货币、最小变动价位、涨跌停规则与典型点差。缺陷注入率也按类别区分:加密全天候且脏数据多,国债成交稀疏因而停滞报价多。

资产类别品种数交易时段货币最小变动涨跌停 典型点差 bp年化波动脏数据率

各类别品种数与脏数据率

柱=品种数,点=缺陷率
01

采集:多源落地与到达延迟

各阶段记录数漏斗

前五档为记录条数,末档为补齐后的面板格点

逐日落地吞吐

按资产类别堆叠
02

校验:契约、时点与未来函数

每条记录带 event_ts 与 available_ts。可用时间晚于事件时间的差额就是信息延迟;任何在 available_ts 之前就被特征用到的字段,都是未来函数。这一阶段只做拦截与计数,不修改数据。

信息延迟分布

available_ts − event_ts

校验拦截明细

按规则
03

清洗:检出率与误杀率

六类缺陷按已知比率注入,清洗器再去找它们。因为真值已知,右侧混淆矩阵是真实统计出来的,不是假设值。调节控制台里的阈值,可以直接看到查全率与误杀率此消彼长 —— 涨跌停锁死与停滞报价的形态几乎相同,是误杀的主要来源。

注入 vs 检出 vs 误杀

按缺陷类型

清洗规则表现

查全率 / 精确率 / F1
缺陷类型检测规则注入检出误杀 查全率精确率F1
注入正确检出误杀漏检

清洗前后:单一品种收盘价

—

异常判别平面

收益 z 值 × 成交量 z 值
04

复权与对齐:公司行为、日历、货币

拆股与分红造成的价格跳空必须复权而不是删除 —— 删掉就丢了一天真实收益。判别依据是跳空幅度接近简单比例且成交量正常,与坏点的成交量异常形态相反。随后把各类别的交易日历对齐到统一日频轴,并把非本币品种折算为记账货币。

复权前后价格序列

检出的公司行为以竖线标出

日历对齐后的交易日覆盖

各类别实际交易日 / 统一轴
05

缺失处理:补齐策略与覆盖率

面板覆盖矩阵

行=品种,列=交易日,深色=缺失
有效前值补齐仍缺失

补齐前后覆盖率

按资产类别
06

因子构建:去极值、标准化、中性化

六个基础因子在横截面上先按 k 倍绝对中位差去极值,再标准化,最后对行业与规模做中性化回归取残差。中性化会削掉一部分表面 IC —— 削掉的正是行业与规模暴露带来的、组合层面无法兑现的那部分。

去极值前后分布

动量因子横截面

中性化前后因子 IC

六个基础因子

IC 时间序列

逐日横截面秩相关
07

相关矩阵去噪:随机矩阵理论

品种数与样本长度可比时,样本相关矩阵的绝大部分特征值只是噪声。Marchenko-Pastur 分布给出纯噪声情形下特征值应有的上界,超出上界的才是真实共同模式。把体部特征值压平后重建相关矩阵,平均相关与有效独立数才是可信的。

q = N / T λ± = σ²(1 ± √q)² 超出 λ₊ 的特征值 = 真实因子;λ± 之间的体部 = 噪声,压平为体部均值 ρ̄ = 去噪后相关矩阵非对角元均值 N_eff = N / (1 + (N−1) ρ̄)

特征值谱 vs MP 边界

—

滚动窗口:去噪前后 ρ̄ 与 N_eff

对数右轴为 N_eff
08

参数表:八组共 — 个

每个参数都带取值范围、默认值、所属阶段与标定方式。控制台里可调的是其中影响最直接的一批,其余在标定阶段由搜索器决定或按契约固定。

参数阶段含义当前值下界上界标定方式
09

标定:净化 K 折与禁运期

金融面板不能随机切分:同一段行情既进训练又进验证,结果必然虚高。这里用净化 K 折 —— 验证段两侧各挖掉与预测跨度等长的净化区,再加一段禁运期,阻断信息从训练段渗到验证段。样本内外的落差就是过拟合的量度。

净化 K 折时间轴

训练 / 净化 / 禁运 / 验证

搜索收敛

各折最优目标值随试验数

参数敏感度

单参数偏离最优时的目标跌幅

样本内外表现

按折
10

门禁:能不能进下一环

门禁记分卡

实测值 / 阈值

逐项判定

—
门禁项实测阈值判定依据