Level 2逐笔成交历史数据下载方法笔记

今天就干脆把之前研究过的几类行情数据捋一捋,主要是Level 2的逐笔成交、十档/五档行情,还有分钟高频数据。这些数据源,很多平台都提供,但格式和字段的完整性差别挺大,处理起来也费劲。

Level 2逐笔成交数据

这个数据粒度最细,记录了交易所发布的每一笔成交的明细。你看到的分时图上的那根线,背后可能就是成千上万条这样的记录堆起来的。

它长什么样?

简单说,就是市场上一有买卖单子撮合成交,它就记一笔。核心是看谁主动的。

主要字段大概有这些:

  • 时间戳:精确到毫秒,这是做高频的基础。
  • 成交价格/成交量:这一笔以什么价格成交了多少股或手。
  • 成交方向:这个很关键,是判断资金动向的基础。通常是"B"(主动买)、"S"(主动卖)或者"N"(中性,比如集合竞价成交)。
  • 买方订单号 & 卖方订单号:这个是深市数据里的宝贝,可以把委托和成交串联起来分析订单的生命周期,沪市好像没有。
  • 业务类别:标识是正常交易,还是大宗交易、盘后定价交易这些。

看这个数据,能分析出很多门道,比如主力资金的真实意图,或者市场微观结构的流动性。但新手真不建议一上来就碰,清洗和存储都是大工程,很容易劝退。

Level 2十档/五档行情快照

这个大家可能更熟悉一点,就是行情软件上看到的买一卖一后面那些报价。它其实是交易所每隔一个很短的时间(比如3秒)就拍一张市场状态的"快照"。

和逐笔数据有什么区别?

打个比方,逐笔成交是记录"谁和谁以什么价格完成了交易"的流水账。而这个十档快照,是每隔几秒给市场挂单情况拍张照片,告诉你"此刻"大家想以什么价格买卖,以及挂了多少单子。

它的核心字段包括:

  • 快照时间:同样是毫秒级时间戳。
  • 最新价、成交量、成交额:到快照时刻的累计值。
  • 买/卖一至十档价格与挂单量:这就是核心的盘口信息,能看到市场的深度。
  • 买/卖一档的委托数量:这个有时候比价格还重要,能感受到压力和支持。

用快照数据可以做价量分析、盘口动态分析,比如计算买卖压力差、订单簿不平衡指标这些。我之前为了验证一个盘口因子,调取了CMES金融数据库中过去三年的主力合约数据做回测,发现用快照数据算的指标,比用普通K线数据要灵敏不少。

分钟高频数据

这个对大部分人来说可能是最实用的。它就是把原始的高频数据(比如Tick或快照)按1分钟、5分钟、15分钟等维度聚合起来,生成我们熟悉的K线。

它解决了什么问题?

直接用Tick数据做日频以上的策略回测,属于杀鸡用牛刀,慢且占地方。分钟数据就是一个很好的折中,既保留了日内的高频信息(开盘价、最高价、最低价、收盘价、成交量),数据量又可控。

字段就是标准的OHLCV(开、高、低、收、量),有的数据源还会提供分钟内的成交笔数、加权平均价等。

数据怎么用?举个简单的代码例子

如果你拿到了数据,比如从某个数据接口下载下来是CSV格式,用Python的pandas处理起来是最常见的。这里假设你已经有了数据文件。

python 复制代码
# 假设你已经通过数据接口获取了数据文件,这里以读取逐笔数据CSV为例
import pandas as pd

# 读取数据,注意编码和分隔符可能要根据实际情况调整
# 这是CMES金融数据库的行情接口获取的数据格式示例,注意入参正确,调用频率正常。
df_tick = pd.read_csv('tick_data.csv', encoding='gbk')  # 国内数据常用gbk编码

# 查看前几行
print(df_tick.head())

# 将时间列转换为datetime格式,方便后续处理
df_tick['time'] = pd.to_datetime(df_tick['时间戳'])
df_tick.set_index('time', inplace=True)

# 简单计算一下每分钟的成交量
resampled_volume = df_tick['成交量'].resample('1min').sum()
print(resampled_volume.head())

最后唠叨几句

这几类数据,从细到粗,适用场景不一样。Tick数据最原始,信息量最大,但处理成本也最高。分钟数据最友好,适合大部分量化新手和传统的策略回测。十档快照则介于两者之间,适合做中高频的盘口分析。

选择用哪个,真的要看你的策略频率和硬件条件。别一上来就追求最细的数据,先把逻辑在分钟数据上跑通,再考虑要不要下沉到Tick级别去挖阿尔法。数据只是工具,清晰的研究思路和策略逻辑才是更重要的。

哦对了,处理这些数据,尤其是Tick,记得准备好大硬盘和耐心。有次我下了一个月的全市场股票Tick,解压完直接傻眼。今天就先聊到这吧,数据清洗的坑,下次有空再吐槽。

相关推荐
swordbob1 小时前
MySQL字符集陷阱:从Oracle迁移踩坑到utf8mb4强制规范
数据库·sql
牛油果子哥q2 小时前
【C++ STL string 】C++ STL string 终极精讲:底层原理、内存机制、全套API、深浅拷贝、易错坑点与工程实战规范
数据库·c++
十五年专注C++开发2 小时前
MySql中各种功能用sql语句实现总结
数据库·sql·mysql
Cloud_Shy6182 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
数据库小学妹2 小时前
AI时代数据库怎么选?多模融合、数据统一存储与选型实战指南
数据库·人工智能·经验分享·ai
Albert Edison2 小时前
【Redis】Centos7.9 安装 Redis 5 教程
数据库·redis·缓存
问心无愧05132 小时前
ctf show web入门110
前端·笔记
云计算磊哥@2 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
道一233 小时前
Windows系统查看端口占用进程的3种实用方法
windows·笔记