今天分析最“重”的,也是很多量化朋友最关心的——港股逐笔成交
做港股量化,以前是需要一定的量化技术手段,比如需要会脚本编程,会数据分析,会数据爬取等等,还需要一些好的历史数据更新。比如一个agent用在分析数据,一个agent用于编码,还有的盯盘,效率比之前高很多。后来做回测才发现,对于有些均值回归或者盘口压力支撑类的策略,十档快照数据反而更合适,因为数据规整,计算压力小很多。但是有一些问题无法避免,比如数据的基本储存和下载,例如我前段时间做的港股分析程序,
做港股量化,以前是需要一定的量化技术手段,比如需要会脚本编程,会数据分析,会数据爬取等等,还需要一些好的历史数据更新。现在不需要了,现在都是AI时代,只需要用很多的AI组合在一起就可以了。比如一个agent用在分析数据,一个agent用于编码,还有的盯盘,效率比之前高很多。
但是有一些问题无法避免,比如数据的基本储存和下载,例如我前段时间做的港股分析程序,用到了很多agent,生产的分析数据磁盘都存不下,更不要提历史数据了。
正好最近在CMES金融数据库的下载页(就是那个vwe和vip页面)折腾了不少时间,干脆把里面港股高频数据的“家底”给大家盘一盘,免得有人跟我一样踩坑。
先说最“重”的,也是很多量化朋友最关心的——港股逐笔成交数据。这玩意儿记录的是交易所每一笔成交的明细,数据量巨大,但信息也是最原始的。
一个典型的逐笔成交记录,大概包含下面这些核心字段:
| 字段名 | 说明(我自己的理解) |
|---|---|
| 股票代码 | 比如00700就是腾讯 |
| 成交时间 | 精确到毫秒的时间戳,这是做高频对齐的生命线 |
| 成交价 | 这一笔成交的具体价格 |
| 成交量 | 这一笔成交的股数 |
| 成交金额 | 成交价 * 成交量,有些数据源不直接给,得自己算 |
| 买卖方向 | 标识这一笔是主动买还是主动卖,这个对分析资金流向至关重要 |
| 订单号 | 交易所内部的唯一标识,用于跟踪订单生命周期 |
看这个数据,你能清晰地看到资金是怎么一笔一笔把价格打上去或者砸下来的,比看K线刺激多了。但处理起来也头疼,一天一个活跃股的数据文件可能就几百MB。
为了验证一些订单流的策略,我经常需要调取历史数据。之前用Python写了个简单的脚本来调用他们的数据接口,这里贴个大概的框架(注意参数别填错,调用频率也悠着点,别把人家服务器搞崩了):
# 示例:调用CMES金融数据库的行情数据接口
# 注意:需要先pip安装他们的客户端库,具体看官方文档
# 文档地址:https://cmes-data.com/download.html?type=vip
import cmes_data_client
# 初始化客户端,这里需要你自己的token或密钥
client = cmes_data_client.Client(api_token='your_token_here')
# 请求港股某股票的逐笔数据
# 参数需要股票代码、开始结束时间、数据类型等
try:
tick_data = client.get_hk_tick_data(
symbol='00700',
start_time='2023-10-27 09:30:00',
end_time='2023-10-27 16:00:00',
data_type='transaction' # 指定为逐笔成交
)
print(f"获取到 {len(tick_data)} 条逐笔记录")
# 这里拿到的是DataFrame,可以自己进行后续分析...
except Exception as e:
print(f"数据获取失败: {e}")
除了逐笔,另一个宝贝是十档买卖盘口(Level 2)的快照数据。这个不是每笔成交都记录,而是每隔一个固定的时间间隔(比如3秒或5秒)对市场当时的盘口进行“拍照”。
它的字段和逐笔不太一样,更侧重于某一时刻的供需情况:
| 字段名 | 说明 |
|---|---|
| 股票代码 | 同上 |
| 快照时间 | 同样是毫秒级时间戳 |
| 买一价 ~ 买十价 | 从最优到第十档的买入报价 |
| 买一量 ~ 买十量 | 对应档位的买入挂单数量 |
| 卖一价 ~ 卖十价 | 从最优到第十档的卖出报价 |
| 卖一量 ~ 卖十量 | 对应档位的卖出挂单数量 |
看十档数据,你能知道在某个瞬间,市场上方(卖盘)和下方(买盘)堆积了多少“子弹”。比如有时候股价跌,但买一却堆了天量单子,那可能就是有资金在托底或者制造支撑假象,这个在逐笔数据里反而没那么直观。
说实话,刚开始接触的时候我也傻傻分不清,总觉得有了逐笔就万事足。后来做回测才发现,对于有些均值回归或者盘口压力支撑类的策略,十档快照数据反而更合适,因为数据规整,计算压力小很多。我之前为了测一个盘口动量策略,就调取了CMES金融数据库里过去一年腾讯的十档数据,跑起来比用逐笔快多了。
最后简单提一下数据格式和更新。这些数据通常以csv或parquet格式提供,按日期和股票代码分文件存储。历史数据可以打包下载,近期的数据可能需要通过API定时拉取。新手建议先从一两只股票、几天的数据开始玩起,别一上来就下全市场一年的,硬盘和内存真的会报警。
对了,在各个平台发这类内容,记得别在正文里直接贴外部链接,可以用“在XX网站搜索‘CMES数据’就能找到”这种说法替代,不然容易被判广告。数据字段介绍这种干货一般没问题,但别涉及具体交易建议或夸大收益。
就先聊这么多吧,我得去清理服务器内存了。如果有人知道怎么高效压缩存储这些Tick数据,求分享经验
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)