一、外汇市场微观数据概述

做量化交易这些年,我接触过各种各样的数据。从日线到分钟线,从Tick到Level2,每种数据都有自己的脾气。今天咱们就来聊聊外汇市场的微观数据——说白了,就是那些比K线更细、更原始的数据。

你可能会问:K线还不够用吗?嗯,这个问题我当年也问过。直到有一次,我用1分钟K线做高频策略,回测曲线漂亮得不行,实盘却亏得底朝天。后来才发现,K线把太多细节给抹平了。微观数据,就是帮你看到那些被「平均」掉的东西。

1.1 什么是Tick数据

Tick数据,也叫逐笔成交数据。它记录的是每一笔真实的成交信息。每一笔交易,都会生成一条Tick记录。

举个例子,你在MT4上看到欧元/美元报价1.1050/1.1052,有人以1.1052买入,系统就会记录一条Tick:

时间戳: 2024-01-15 14:30:22.123
品种: EUR/USD
成交价: 1.1052
成交量: 100万
买卖方向: Buy

我个人习惯把Tick数据比作「交易的高速摄影」。K线是每隔一段时间拍一张照片,而Tick是每一帧都不放过。在外汇市场,Tick数据通常包含:

  • 精确到毫秒甚至微秒的时间戳——这是高频交易的生命线
  • 成交价格——真实发生的价格,不是报价
  • 成交量——这笔交易有多少手
  • 买卖方向——是主动买还是主动卖
我的经验:做Tick数据清洗时,最坑的是时间戳对齐问题。不同数据商的时间戳精度不一样,有的精确到秒,有的精确到毫秒。我曾经因为没注意这个细节,导致策略信号延迟了整整3秒——嗯,那笔亏损我现在还记得。

1.2 什么是Level2数据

Level2数据,也叫市场深度数据。它告诉你的是:在某个时刻,市场上各个价位的挂单情况。

你想想看,Tick数据告诉你「有人成交了」,但Level2数据告诉你「还有多少人等着成交」。这就像看球赛,Tick是进球瞬间,Level2是双方球员的站位和跑动路线。

典型的Level2数据长这样:

时间戳: 2024-01-15 14:30:22.456
品种: EUR/USD

卖五: 1.1056  200万
卖四: 1.1055  150万
卖三: 1.1054  300万
卖二: 1.1053  250万
卖一: 1.1052  100万
-------------------
买一: 1.1051  80万
买二: 1.1050  120万
买三: 1.1049  200万
买四: 1.1048  180万
买五: 1.1047  90万

这里有个关键点:Level2数据是快照,不是流。它每隔几毫秒或几十毫秒更新一次,记录当前时刻的挂单状态。我在项目中遇到过,有些数据商提供的Level2是增量更新——只告诉你哪些挂单变了,而不是全量推送。这两种格式的处理方式完全不同。

避坑指南:我曾经用某家数据商的Level2数据做订单簿重建,结果发现他们的增量更新有丢包现象。如果你不做校验,重建出来的订单簿会越来越不准。建议每次收到增量更新后,定期做一次全量快照对比。

1.3 什么是报价深度数据

报价深度数据,其实是Level2数据的「升级版」或「聚合版」。它不展示每个价位的具体挂单,而是告诉你:

  • 买卖价差(Spread)——买一和卖一之间的差距
  • 前N档的累计挂单量——比如前5档的总买量和总卖量
  • 订单簿的不平衡度——买盘和卖盘的相对强弱

说白了,报价深度数据是对Level2数据做了一层「特征工程」。我习惯用它来做市场情绪判断。举个例子:

时间戳: 2024-01-15 14:30:22.789
品种: EUR/USD
Spread: 0.0001 (1 pip)
前5档总买量: 680万
前5档总卖量: 1000万
买卖不平衡比: 0.68 (买盘弱于卖盘)

当买卖不平衡比低于0.5时,说明卖压很重。我在做日内策略时,经常把这个指标作为过滤条件——不平衡比太低时,不开多单。

1.4 它们与K线数据的区别

这个问题很关键。很多人觉得K线就够了,但微观数据和K线完全是两码事。我画了一张图,帮你理清它们的关系:

外汇市场数据层级关系图 Tick数据(逐笔成交) 每一笔真实成交的记录 | 最高精度 | 数据量最大 Level2数据(市场深度) 各价位挂单情况 | 订单簿快照 | 揭示市场流动性 报价深度数据(特征聚合) Spread、买卖不平衡比、累计挂单量 | 用于策略信号 K线数据(时间聚合) OHLCV | 固定时间窗口 | 丢失微观细节 数据粒度:细 → 粗 数据量:大 → 小

这张图很直观地展示了数据从微观到宏观的演变过程。K线数据其实是Tick数据的「压缩版」——它把一段时间内的所有成交,压缩成四个价格(开盘、最高、最低、收盘)和一个成交量。

它们的核心区别,我整理成了表格:

维度 Tick数据 Level2数据 报价深度数据 K线数据
记录内容 每笔成交 挂单状态 聚合特征 价格区间
时间精度 毫秒/微秒 毫秒级快照 毫秒级计算 分钟/小时/日
数据量 极大(每秒数百条) 大(每秒数十次快照) 中等
主要用途 高频策略、回测 订单簿分析、流动性评估 信号生成、市场情绪 趋势分析、中低频策略
信息损失 无(全量快照) 有(聚合损失细节) 严重(丢失日内波动)

核心观点:K线数据适合做「方向判断」,微观数据适合做「时机选择」。如果你做的是日内高频交易,没有Tick或Level2数据,就像蒙着眼睛开车。但如果你做的是长线趋势跟踪,K线完全够用——别为了炫技去折腾微观数据,那会把你累死。

最后说一句:这四种数据不是互斥的,而是互补的。我自己的策略框架里,K线用来定方向,Tick用来定入场点,Level2用来做风控。各司其职,才能发挥最大价值。

一个小建议:刚开始接触微观数据时,别贪多。先搞懂Tick数据怎么存、怎么读、怎么清洗。把这一步走稳了,Level2和报价深度数据自然就通了。我见过太多人一上来就搞Level2,结果连时间戳对齐都没搞明白——嗯,那学费交得有点冤。