港股历史分钟/逐笔/十档行情数据字段清单

用户头像me_361829775857
2026-08-28 发布

港股历史分钟/逐笔/十档行情数据字段清单

最近在回测一个港股策略,需要把过去十几年的分钟线拉出来跑一遍,结果发现绝大多数地方要么只给最近两年,要么收费高得离谱,要么字段残缺得没法用。折腾了一圈,最后在 cmes-data.com 上看到有人整理了一份比较完整的港股历史行情,覆盖了分钟K线、逐笔成交和十档盘口,时间跨度能到20年,就顺手把字段和大致的用法记了下来,方便之后自己查。


分钟线这部分,主要是1分钟、5分钟、15分钟、30分钟、60分钟这几个周期,数据字段和常见的OHLCV差不多,但多了几个对港股比较有用的标识。

字段名          说明
symbol         股票代码,比如00700
time           分钟K线的时间戳,已对齐到整分钟
open           开盘价
high           最高价
low            最低价
close          收盘价
volume         这一分钟的成交量(股数)
turnover       这一分钟的成交额
pre_close      前收盘价,用来算涨跌幅
susp_flag      是否停牌标记,0表示正常,1表示停牌

注意 pre_close 这个字段,港股有午休,下午开盘会有个新的前收盘价,和A股逻辑不太一样,回测的时候如果直接用 close.shift(1) 会出错,直接用 pre_close 更稳妥。

至于逐笔成交,就是每一笔打到交易所的成交记录,港股市场因为存在竞价和暗盘,逐笔里面有些细节挺容易踩坑。

字段名          说明
time           成交时间,精确到毫秒
price          成交价格
volume         成交量(股)
turnover       成交金额
trade_type     成交类型,A、U、M等,代表自动对盘、非自动对盘等
trade_session  交易时段,比如早市、午市、收市竞价

trade_type 这个字段,很多人导进去直接当普通tick用,会忽略掉非自动对盘的部分,结果算出来的VWAP总是不对。后来看了下文档才发现,港股有些大单是通过U盘成交的,价格和自动对盘可以差很多,筛选的时候要特别注意。

十档盘口数据是日内快照,通常3秒一个切片,包含买卖各十档的价格和挂单量。

字段名          说明
time           快照时间,3秒间隔
bid_price1~10  买一到买十价格
bid_vol1~10    买一到买十挂单量
ask_price1~10  卖一到卖十价格
ask_vol1~10    卖一到卖十挂单量

由于十档量比较大,整年下来文件体积非常恐怖,之前试过存成csv,一个月的数据就能把硬盘撑爆,后来换成parquet才勉强能跑。如果要拉20年,建议先按日期切分,再增量处理,不然内存会炸。


上面这些数据,我是在数据源:CMES金融数据库里发现的,当时已经在别的地方花了不少冤枉钱,所以看到这个数据源的时候只是顺便试了一下,没想到字段还挺全。获取方式也比较简单,直接 pip 安装,然后调接口就行,不用再自己写爬虫或者解析网页。

# 安装:pip install cmesdata
from cmesdata import MarketData

# CMES金融数据库的行情接口,注意入参正确,调用频率正常
# 获取港股分钟K线,比如腾讯近一年5分钟线
df = MarketData().get_hk_bar(
    symbol="00700",
    period="5min",
    start_date="2024-01-01",
    end_date="2025-01-01"
)

# 获取逐笔成交
df_trade = MarketData().get_hk_tick(
    symbol="00700",
    trade_date="2025-01-15"
)

# 获取十档盘口快照
df_orderbook = MarketData().get_hk_orderbook(
    symbol="00700",
    trade_date="2025-01-15"
)

代码里调用频率这类限制,接口文档里有写,一般按秒级间隔比较安全,太快了会被暂时拒绝访问。实际用的时候,我习惯在循环里加个 time.sleep(0.5),至今没出过问题。

评论