4. 数据源与数据采集
市场行为监控系统的第一道工程关口不是模型,而是数据。监控结论是否可信,取决于六类数据能否在正确的时间、以正确的粒度、按正确的关联键进入系统。本节从数据源分类出发,讲清接口形态、采集策略与常见陷阱。
一、核心原理:六类数据的定位与关联键
六类数据并非并列关系,而是围绕"谁、在什么市场环境下、做了什么、结果如何、外部如何解释"构成一条证据链。账户数据回答"谁",行情数据回答"环境",委托与成交数据回答"做了什么、结果如何",资讯与公告数据回答"外部解释与披露"。
| 数据类别 | 典型来源 | 接口形态 | 关键关联键 | 时效要求 |
|---|---|---|---|---|
| 行情数据 | 交易所行情网关、Level-2 供应商 | TCP 组播/专线、WebSocket | 证券代码 + 时间戳 | 毫秒级 |
| 委托数据 | 交易所委托流水、券商柜台 | 文件 + 实时流 | 委托编号 + 账户 | 秒级 |
| 成交数据 | 交易所成交回报、清算文件 | 实时流 + 日终文件 | 成交编号 + 委托编号 | 秒级 |
| 账户数据 | 账户系统、适当性系统 | 数据库、API | 账户号 + 客户号 | 分钟级/日级 |
| 资讯数据 | 新闻供应商、舆情平台 | HTTP API、推送 | 证券代码 + 发布时间 | 分钟级 |
| 公告数据 | 交易所披露平台、巨潮等 | HTTP 抓取、RSS | 公告 ID + 证券代码 | 分钟级/小时级 |
关联键设计是采集阶段最容易被低估的工作。若委托与成交无法通过委托编号稳定关联,后续的撤单率、报撤比、对倒识别都会失真。
二、方法流程:从接入到可用的四步链路
- 接入与鉴权:行情走专线或组播,业务数据走 API 网关,统一做密钥、IP 白名单与限流。
- 解析与标准化:把不同来源的字段映射为内部统一 Schema,统一时间基准(建议全部转 UTC 毫秒)。
- 缓冲与落库:实时流先进消息队列削峰,再分冷热路径写入时序库与关系库。
- 质量校验:做空值、重复、时序倒挂、价格越界、账户缺失等规则校验,异常进死信队列。
采集策略的核心取舍是"实时性 vs 完整性"。行情与委托成交必须实时;账户、资讯、公告可准实时或批量补采。不要用同一套采集频率覆盖所有数据源。
三、可视化:六类数据采集链路
四、案例与场景:一次异常报撤比排查
某监控任务发现某账户在 10:15 至 10:20 的报撤比异常升高。排查路径如下:先从成交数据确认该账户实际成交极少,再从委托数据提取该时段全部委托与撤单记录,发现撤单集中在买一价上方 1 至 2 档;随后用行情数据还原当时盘口,确认其撤单时点与盘口快速变化高度同步;最后用账户数据确认该账户为程序化交易账户,资讯数据未发现相关公告。结论指向"频繁报撤但无成交意图"的监控特征。
# 采集配置示例(伪代码)
sources:
- name: market_l2
type: multicast
endpoint: 239.1.1.10:9000
schema: market_tick
latency_sla_ms: 50
- name: order_stream
type: kafka
topic: order.events
schema: order_event
key: order_id
- name: account_snapshot
type: jdbc
cron: "0 5 0 * * ?"
schema: account_dim
quality_rules:
- no_null: [order_id, account_id, ts]
- monotonic: ts
- range: price > 0
on_failure: dead_letter_queue
建议为每类数据保留原始报文(raw payload)至少 30 天。当监控结论被质疑时,原始报文是唯一可回溯的证据。
五、误区与复盘
- 误区一:只采实时流,不采日终文件。实时流可能丢包或乱序,日终文件是校准基准,两者必须对账。
- 误区二:时间戳不统一。行情用交易所时间、委托用柜台时间、资讯用供应商时间,若不统一到同一基准,跨源关联会出现毫秒级错位。
- 误区三:忽略账户维度更新。账户状态、适当性、关联关系会变化,若只采一次快照,后续监控会用到过期维度。
- 误区四:公告与资讯只做全文存储。应抽取证券代码、发布时间、公告类型等结构化字段,否则无法参与实时规则计算。
采集阶段最危险的错误是"静默失败":接口返回 200 但内容为空、字段映射错位、时区偏移一小时。必须在采集层加入行数、空值率、时序连续性三类基线告警,而不是等到监控结果异常才回头查数据。
复盘建议:每次监控误报或漏报,先查数据血缘,确认是采集缺失、解析错误还是规则问题。把采集质量指标纳入监控大盘,与业务指标同等对待,才能让端到端项目真正可运营。