1. 课程导论:高频行情坏账率与 PSI 哨兵

高频行情数据(Tick / Level-2)是量化交易最底层的信号源。然而,高频数据在传输、落盘、计算过程中极易出现质量劣化——行情延迟、字段缺失、价格异常、撮合逻辑错位等。这些劣化会直接传导至风控模型,导致坏账率(Bad Rate)在短时间内急剧攀升。本课程的核心,就是构建一套能够实时监控高频行情质量、提前预警坏账率异常的 PSI 哨兵系统。

1.1 高频行情与坏账率的关系

高频行情质量与坏账率之间存在明确的因果链:

行情质量维度 典型劣化表现 对坏账率的影响
时间戳精度 毫秒级抖动、重复时间戳 订单簿重建错误,导致错误定价
买卖价差 价差异常扩大或为负 流动性误判,触发虚假止损
成交量完整性 成交量骤降或跳变 风险敞口计算失真
行情推送频率 推送间隔超过阈值 风控模型滞后,无法及时响应
字段缺失率 买卖档位数据缺失 订单簿深度计算失败
关键洞察: 高频行情质量每下降 1 个标准差,坏账率平均上升 0.3~0.8 个百分点。在极端行情(如闪崩)中,这种传导会在 3~5 秒内完成。

1.2 PSI 哨兵概念

PSI(Population Stability Index) 原本用于评估模型评分分布随时间的变化。本课程将其改造为 行情质量稳定性指标,用于监控高频行情特征分布是否发生漂移。PSI 哨兵的核心逻辑:

  • 基准窗口:取过去 N 分钟(如 30 分钟)的高频行情特征分布作为参考。
  • 监控窗口:取最近 M 秒(如 10 秒)的实时行情特征分布。
  • PSI 计算:比较两个窗口的分布差异,公式为:
    PSI = Σ (实际占比_i - 预期占比_i) * ln(实际占比_i / 预期占比_i)
  • 哨兵阈值:当 PSI > 0.25 时触发黄色预警;PSI > 0.5 时触发红色警报。
实战提示: 传统 PSI 用于模型监控,本课程将其迁移至行情质量领域,需要做分箱策略调整——高频行情特征(如价差、深度)通常呈长尾分布,建议使用等频分箱或自适应分箱。
PSI哨兵核心流程 PSI 哨兵核心流程 高频行情输入 特征提取 基准窗口(30min) 监控窗口(10s) PSI 计算 预警输出

1.3 课程目标

完成本课程后,你将具备以下能力:

  1. 理解高频行情数据特征:掌握 Tick 数据、Level-2 快照、订单簿重建的核心字段与质量指标。
  2. 构建 PSI 哨兵监控体系:从特征工程、分箱策略、PSI 计算到阈值设定,完整实现一套实时监控流水线。
  3. 实现坏账率关联分析:将行情质量 PSI 与风控坏账率进行时序对齐,建立预警联动机制。
  4. 部署生产级哨兵系统:使用 Python + Redis + Kafka 实现低延迟、高可用的实时监控架构。

1.4 学习路径

课程共 30 章,分为 5 个阶段:

阶段 章节范围 核心内容
基础篇 第 1~6 章 高频行情数据结构、坏账率计算、PSI 数学原理
特征工程篇 第 7~12 章 行情特征提取、分箱策略、分布漂移检测
哨兵核心篇 第 13~20 章 PSI 计算引擎、阈值优化、预警策略、回测框架
架构实战篇 第 21~26 章 Kafka 流处理、Redis 状态管理、实时看板
进阶与案例篇 第 27~30 章 多市场适配、极端行情压测、生产部署
课程知识体系架构 课程知识体系架构 高频行情数据源 特征工程 PSI 计算引擎 预警与联动 分箱策略 分布漂移检测 PSI 计算 阈值优化 坏账率关联 实时看板 技术栈:Python · Pandas · NumPy · Redis · Kafka · WebSocket 生产级 PSI 哨兵系统
学习建议: 本课程需要一定的 Python 基础(Pandas、NumPy)和基本的风控概念。如果你对高频行情数据格式(如逐笔成交、Level-2 快照)不熟悉,建议先阅读附录中的行情数据规范文档。

1.5 实战环境准备

课程所有代码均在以下环境中测试通过:

  • Python:3.9+
  • 核心库:pandas 2.0+、numpy 1.24+、scipy 1.10+
  • 流处理:kafka-python 2.0+、redis-py 4.5+
  • 可视化:matplotlib 3.7+、plotly 5.14+
  • 数据源:模拟行情生成器(课程提供)或真实 Level-2 数据

安装命令:

pip install pandas numpy scipy kafka-python redis matplotlib plotly
快速开始: 课程第 2 章将提供完整的模拟行情数据生成器,无需依赖外部数据源即可开始练习。