美股和港股的量化笔记-从下载逐笔tick到合成分钟

做量化回测,选对数据源和数据类型真的太重要了,搞不好就是白忙活一场。今天就来聊聊我平时会用到的几种高频数据,主要是美股和港股的,看看它们里面到底有什么,应该怎么用。

先从最"重"的Tick数据说起

这玩意儿是硬盘杀手,真不是开玩笑的。Tick数据,也叫逐笔成交,就是交易所每发生一笔成交就记录一次。它记录的是最原始的交易行为。

我一般会关注这几个核心字段:

字段 说明(我自己的理解)
symbol 股票代码,这个不用多说。
time 成交时间,通常精确到毫秒甚至微秒。市场微观结构研究就靠这个了。
price 成交价格。
volume 成交数量。注意,这里是一笔的成交量,不是累计的。
turnover 成交金额,就是 price * volume。
bs_flag 买卖方向标识。这个很重要,能看出是主动性买盘还是卖盘推动的成交,分析资金流向的核心。

新手千万别一上来就怼着几年的Tick数据跑回测,光是数据清洗和存储就能劝退。我之前为了研究订单薄动态,尝试用免费的原始数据,结果光是处理停牌、除权除息这些脏活就花了一周。后来图省事,直接用了CMES金融数据库里已经清洗和复权好的版本,虽然要花点积分,但省下的时间成本更值。

十档行情(Level 2)

如果说Tick是"成交"的明细,那十档行情就是"挂单"的快照。它定时(比如每秒多次)拍下市场上最好的十个买价和卖价,以及每个价位上挂了多少手单子。

它最有价值的地方是能让你看到盘口深度,而不仅仅是买一卖一。比如,有时候股价在关键位置横盘,你看买一挂单量很大,以为是强支撑,但一看十档,发现卖二到卖五的累积压单更重,这可能就是个假象。

主要字段包括快照时间、十个买卖价位和对应的挂单量。很多短线策略,比如捕捉流动性瞬间消失,或者估算大单冲击成本,都离不开这个。

分钟线数据:回测的好朋友

对于大多数策略回测来说,分钟线是性价比最高的选择。它把Tick数据按分钟做了聚合,信息量大幅压缩,但保留了日内走势的关键细节。

一分钟K线通常包含:时间(哪一分钟)、开盘价、最高价、最低价、收盘价,以及这一分钟内的总成交量和成交额。

如果你想做日内趋势或者均值回复策略,用分钟线数据就足够了。比如,我之前想验证一个基于开盘后30分钟波动率的突破策略,就是调取了过去几年的港股分钟线,跑起来效率很高。

美股和港股有啥不同?

数据字段大同小异,但规则细节要注意。比如,美股没有涨跌停板,波动更连续,Tick数据会更密集。港股交易时段和规则也和A股不同,数据的时间戳处理要留意。

这里给个用Python接口获取数据的简单例子,接口文档在他们官网都能找到。用之前记得先pip install一下。

python 复制代码
# 示例:获取港股腾讯控股的分钟线数据
# 注意:需要先在CMES金融数据库官网获取API Key和Secret
import cmes_data

# 初始化客户端,注意替换成你自己的密钥
client = cmes_data.Client(api_key='你的API_KEY', api_secret='你的API_SECRET')

# 请求数据,注意参数别写错,频率别调太高,小心被限流
data = client.get_bar_data(
    symbol='00700.HK',  # 股票代码
    frequency='1m',     # 频率:1分钟
    start_time='2024-05-20 09:30:00',
    end_time='2024-05-20 16:00:00',
    adjust='qfq'        # 前复权
)

print(data.head())
# 通常返回DataFrame,包含时间、开高低收、成交量等字段

最后碎碎念几句

  1. 数据量:Tick > 十档 > 分钟线。选数据前先评估自己的硬件和需求。
  2. 数据质量:时间戳是否连续?是否有异常值(比如价格为零)?是否做了复权处理?这些直接影响回测结果。自己清洗很痛苦,所以我现在倾向于用现成的清洗好的数据源。
  3. 合规性:在公开平台分享策略时,注意只展示思路和逻辑,不要透露具体的数据接口密钥、原始数据切片等敏感信息,各平台对金融数据的分享都有审核规则。

大概就这些了。数据本身只是原料,关键还是看你的策略想法。不过,用好原料确实能少走很多弯路。如果大家对处理高频数据有什么心得,或者知道怎么高效压缩存储,欢迎聊聊,我最近正为这个头疼呢。

相关推荐
TechubNews2 小时前
數碼港「區塊鏈與數字資產試點資助計劃」︰賦能創新結算 助力穩定幣基建
区块链
A_humble_scholar2 小时前
C++11 学习笔记:统一初始化、右值引用与完美转发
c++·笔记·学习
magic_now2 小时前
Modbus RTU 与 TCP 学习笔记
笔记·学习·tcp/ip
轻闲一号机2 小时前
【语音】笔记
前端·笔记·算法
2601_959480152 小时前
Moneta Markets亿汇:“比特币持仓变化牵动市场”
区块链
小陈phd3 小时前
多模态大模型学习笔记(四十六)——图像-文本生成(Image-Text Generation):跨模态创作与语义互通
笔记·学习·计算机视觉
噜噜噜阿鲁~3 小时前
python学习笔记 | 11.4、面向对象高级编程-定制类
笔记·python·学习
CanCanCanedFish3 小时前
Transformer论文阅读笔记:从注意力机制到革命性架构的启示
论文阅读·笔记·transformer
wangcheng3033 小时前
LLMOps入门:高效管理大型语言模型
笔记