做港股量化,以前是需要一定的量化技术手段,比如需要会脚本编程,会数据分析,会数据爬取等等,还需要一些好的历史数据更新。现在不需要了,现在都是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金融数据库里过去一年腾讯的十档数据,跑起来比用逐笔快多了

最后简单提一下数据格式和更新。这些数据通常以csvparquet格式提供,按日期和股票代码分文件存储。历史数据可以打包下载,近期的数据可能需要通过API定时拉取。新手建议先从一两只股票、几天的数据开始玩起,别一上来就下全市场一年的,硬盘和内存真的会报警。

对了,在各个平台发这类内容,记得别在正文里直接贴外部链接,可以用“在XX网站搜索‘CMES数据’就能找到”这种说法替代,不然容易被判广告。数据字段介绍这种干货一般没问题,但别涉及具体交易建议或夸大收益。

就先聊这么多吧,我得去清理服务器内存了。如果有人知道怎么高效压缩存储这些Tick数据,求分享经验

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐