一、行情接入概述:实时行情的定义、应用场景与数据源分类

各位同学,咱们今天聊聊实时行情接入。说实话,这是整个量化系统最基础也最容易踩坑的环节。我做了这么多年数据工程,见过太多系统上线第一天就崩在行情接入上——不是延迟太高,就是数据丢了,甚至还有把测试行情当实盘用的惨案。

嗯,咱们一步步来。先搞清楚实时行情到底是什么,再说它用在哪儿,最后看看数据源都有哪些。

1.1 实时行情的定义

实时行情,说白了就是市场在每一刻产生的交易数据。它不像历史数据那样躺在数据库里等你查,而是像流水一样不断涌过来。

我个人习惯把实时行情分成三个层次:

  • 快照行情:每隔几毫秒或几秒推送一次的全量数据。比如买一卖一的价格、成交量、涨跌幅。这是最基础的。
  • 逐笔成交:每一笔真实成交的明细。谁在什么时间、什么价格、买了多少股。这个数据量很大,但信息量也最大。
  • 订单簿:所有挂单的深度数据。能看到买一到买十、卖一到卖十的挂单量和价格。做高频交易的人最爱这个。

我在项目中遇到过一件事:有个同事只接了快照行情,没接逐笔成交。结果做回测时发现策略表现很好,实盘却一直亏。为什么?因为快照行情有延迟,策略看到的买一价和实际成交价差了0.1秒。你想想看,0.1秒在量化交易里能差出多少利润?

核心要点:实时行情不是「有数据就行」,而是「数据要够快、够全、够准」。缺一个维度,策略就可能跑偏。

1.2 应用场景

实时行情用在哪?我总结下来,主要就两个方向:

量化交易

这是最直接的应用。策略需要实时行情来做决策:

  • 趋势跟踪:价格突破某个阈值就买入。行情慢了,突破点就错过了。
  • 套利策略:同时监控两个市场的价差。价差出现到消失可能只有几毫秒,行情延迟高了根本抓不住。
  • 做市商:需要实时更新自己的挂单价格。行情一更新,挂单就得跟着调。

我曾经帮一个私募优化过行情接入。他们原来的系统延迟在50毫秒左右,策略勉强能跑。后来换成了直连交易所的行情,延迟降到2毫秒。你猜怎么着?策略的年化收益直接翻了一倍。嗯,这就是实时行情的价值。

风控系统

很多人以为风控就是事后算账,其实不是。真正的风控是实时的:

  • 价格异常检测:如果某只股票在1秒内涨了10%,系统要立刻报警或暂停交易。这需要实时行情支持。
  • 持仓监控:实时计算当前持仓的市值、风险敞口。行情一波动,风控指标就得跟着更新。
  • 交易限额:比如单日亏损超过5%就停止交易。这个判断必须基于实时行情,不能等收盘再算。

我的建议:做风控系统时,行情接入的延迟要求比交易系统还高。因为风控是最后一道防线,慢了就失去意义了。我一般要求风控系统的行情延迟不超过10毫秒。

1.3 数据源分类

行情从哪来?我把它分成三类。每种都有优缺点,选哪个取决于你的场景和预算。

数据源类型 延迟 成本 适用场景
交易所直连 <1ms 极高(硬件+席位费) 高频交易、做市商
第三方数据商 1-10ms 中等(年费几万到几十万) 中低频策略、风控系统
WebSocket/HTTP API 10-100ms 低(甚至免费) 个人研究、回测验证

交易所直连

这是最快的方案。直接在交易所机房放一台服务器,通过专线接收行情数据。延迟可以做到微秒级。

但代价也大:硬件成本、席位费、运维成本,一年下来几百万很正常。我见过一些小型私募,花了几百万搞直连,结果策略收益连成本都覆盖不了。嗯,这里要提醒一句:不是所有策略都需要直连。

第三方数据商

这是最主流的选择。像Wind、聚宽、Tushare这些,都提供实时行情API。延迟一般在1-10毫秒,对于大多数中低频策略来说完全够用。

我个人习惯用第三方数据商做开发测试,等策略稳定了再考虑要不要升级到直连。毕竟成本差太多了。

WebSocket/HTTP API

这是入门级方案。很多交易所都提供免费的WebSocket行情接口,比如Binance、Coinbase。延迟在几十到几百毫秒,做做个人研究或者回测验证没问题。

但要注意:免费接口通常有频率限制,而且稳定性没保障。我曾经用某个交易所的免费API做回测,结果行情断了一整天,回测数据全废了。从那以后,我只要做正式项目,一定用付费数据源。

避坑指南:我曾经在项目里同时接了三个数据源做冗余,结果发现不同数据源的时间戳不一致。同一个tick,A数据源说是10:00:00.000,B数据源说是10:00:00.005。你想想看,这5毫秒的偏差在回测里能造成多大误差?所以,多数据源一定要做时间对齐。

知识体系总览

下面这张图是我自己画的,把实时行情接入的核心逻辑串起来了。你可以把它当作本章的思维导图:

实时行情接入 定义 • 快照行情 • 逐笔成交 • 订单簿 应用场景 • 量化交易 - 趋势跟踪 - 套利策略 - 做市商 • 风控系统 数据源分类 • 交易所直连 (延迟<1ms, 成本极高) • 第三方数据商 (延迟1-10ms, 成本中等) • WebSocket/HTTP API (延迟10-100ms, 成本低) 核心原则:快、全、准,三者缺一不可

这张图把咱们今天讲的内容串起来了。你看,从定义到场景再到数据源,其实是一条线:先搞清楚行情是什么,再想清楚用在哪儿,最后根据场景选数据源。顺序不能乱。

好了,关于实时行情接入的概述就聊到这儿。下一节咱们会深入讲具体怎么接入WebSocket行情,包括握手、心跳、重连这些实战细节。到时候我会拿我踩过的坑当案例,保证让你少走弯路。


公众号:蓝海资料掘金营,微信deep3321