港股数据接口开发教程|Python 实现实时报价、逐笔、盘口深度推送

做港股量化、写小行情工具也有大半年了,期间换过好几个行情数据源,踩过不少坑:要么实时推送延迟高、要么历史K线残缺、免费额度抠门到没法测试,直到最近上手iTick,才算把港股数据对接流程理顺,分享一套实测能用的实操方案,给同样做港股数据需求的朋友避坑。

一、先说下港股数据采集的难点

和A股、美股不一样,港交所原生行情授权门槛很高,个人开发者很难拿到一手直连权限,市面上很多第三方工具存在几个通病:

  1. 实时行情推送卡顿,盘口逐笔数据断断续续,做短线回测完全不准;
  2. 历史分钟线、分时线接口收费贵,免费额度只给少量日线,回测根本不够用;
  3. SDK封装差,大多只提供原生http请求,WebSocket实时订阅要自己手写心跳、重连,调试成本极高;
  4. 标的代码规则混乱,有的要加0前缀、有的要后缀,多股票批量查询容易报错。

对比下来iTick对个人开发者友好度会高很多,一套SDK同时覆盖REST静态历史数据+WebSocket实时推送,港股、美股、A股切换只改地区参数,不用重复写多套对接逻辑,小项目、个人量化工具完全够用。

二、零门槛上手,新手也能快速搭环境

1. 安装依赖

直接pip一键安装官方封装好的SDK,不用自己处理http请求、websocket连接底层逻辑:

bash 复制代码
pip install itick-sdk

2. 获取权限

官网注册账号就能领取免费token,不用企业资质,个人开发者直接可用:

免费套餐权益(日常测试足够):

  • REST历史接口每分钟5次调用
  • WebSocket单条连接可订阅3只个股
    像腾讯700、阿里9988、美团3690这类热门标的,拿来做短期测试、小策略回测完全没问题,后期多标的批量监控再升级付费套餐就行。

三、两个高频场景实操代码(直接复制运行)

场景1:拉取港股历史K线,做策略回测

支持1分钟、5分钟、小时线、日线、周线、月线全周期,返回开高低收、成交量、成交额、时间戳完整字段,不用自己二次清洗时间。

python 复制代码
from itick.sdk import Client
# 替换成你自己的token
token = "你的API_TOKEN"
client = Client(token)

# 1. 腾讯控股700,获取最近30根日线
stock_day = client.get_stock_kline("HK", "700", 8, 30)
print("腾讯日线数据:", stock_day)

# 2. 阿里巴巴9988,获取20根60分钟K线
stock_60m = client.get_stock_kline("HK", "9988", 5, 20)
print("阿里小时线数据:", stock_60m)

周期编码对照表,按需替换第三个参数:

1=1分钟|2=5分钟|3=15分钟|4=30分钟|5=1小时|8=日线|9=周线|10=月线

返回字段简单说明:o开盘、h最高、l最低、c收盘、v成交量、tu成交额、t毫秒时间戳,标准化格式,pandas直接导入做回测。

场景2:WebSocket实时订阅盘口、逐笔、实时报价

做盯盘工具、实时信号预警必备,内置心跳、断线自动重连,不用自己写定时心跳、断线重试逻辑,省心很多。

python 复制代码
import time
from itick.sdk import Client

token = "你的API_TOKEN"
client = Client(token)

# 接收推送回调
def on_message(msg):
    print("实时行情推送:", msg)

# 异常捕获回调
def on_error(err):
    print("连接异常:", err)

# 绑定回调函数
client.set_message_handler(on_message)
client.set_error_handler(on_error)

# 建立长连接
client.connect_stock_websocket()
# 批量订阅多只港股:实时报价+逐笔成交+五档盘口深度
sub_msg = '{"ac":"subscribe","params":"700$HK,9988$HK,3690$HK","types":"quote,tick,depth"}'
client.send_websocket_message(sub_msg)

# 持续接收20秒数据测试
time.sleep(20)
# 关闭连接
client.close_websocket()

订阅成功会返回提示subscribe Successfully,如果代码/地区填错会提示解析失败,检查股票代码和HK地区标识即可。

额外实用细节:港股逐笔tick数据自带成交方向d字段(1卖出、2买入),做资金流向、逐笔成交分析非常方便,目前支持A股/港股/美股三个市场。

四、内置省心功能,省掉大量开发工作量

  1. 自动心跳+断线重连
    官方SDK已经封装30秒自动心跳,断线后5秒间隔重试,最多10次重连,重连后自动恢复订阅,不用自己维护定时任务,跑隔夜策略不用怕断流丢数据。
  2. 批量行情接口,高效多标的监控
    自带get_stock_quotes批量报价接口,一次性查询多只股票实时价格,不用循环单条请求,大幅减少接口调用次数,节省额度。
  3. 多市场统一调用逻辑
    港股region填HK,切换A股、美股只修改地区参数,接口名称、传参逻辑完全一致,同时做多市场策略不用维护多套对接代码。

五、实测踩坑总结,提前避坑

  1. 港股代码纯数字即可,比如腾讯直接传700,0700也能识别,但官方示例统一不带前导0,建议统一格式避免后期出兼容问题;
  2. 免费套餐WebSocket仅支持3个标的订阅,批量盯盘多只个股建议升级付费版;
  3. 1分钟K线实时推送(WebSocket kline)仅高级套餐开放,普通用户拉分钟历史数据走REST接口更稳定;
  4. 接口调用有频率限制,批量循环拉取数据记得加延时,避免超限被限制访问。

六、适合哪些人用?

  1. 个人量化交易者:写策略回测、实时信号提醒工具;
  2. 小型资讯/盯盘小工具开发者:需要稳定港股实时+历史数据;
  3. 多市场交易者:同时覆盖A股、港股、美股,想要统一SDK降低开发成本。

整体用下来对比之前试的几款数据源,itick最大优势是对个人开发者友好,文档清晰、SDK封装完整,不用耗费大量时间处理底层连接、数据格式化,入门门槛低,免费额度足够前期测试,有港股数据需求的朋友可以自行注册试一下。

温馨提示:本文仅供代码参考,不构成任何投资建议。市场有风险,投资需谨慎

参考文档:https://docs.itick.org/rest-api/stocks/stock-kline

GitHub:https://github.com/itick-org/

相关推荐
ctlover1 小时前
Python文件操作
开发语言·python
luj_17681 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
AndrewHZ2 小时前
图像处理入门(第005期):颜色空间入门——RGB/HSV/CMYK/Lab
图像处理·python·opencv·hsv·rgb·色彩空间
风流 少年2 小时前
Spring AI 2.0:Tool
java·python·spring
wuyk5552 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表
郝学胜-神的一滴2 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
WangY_ZQ2 小时前
【无标题】
windows·python
桐桐桐2 小时前
PDF 翻译工具横评与自建批量方案:从在线工具到 Python 自动化
python·pdf·自动化
weixin_383196472 小时前
java基础面试题@Autowired和@Resource区别
java·开发语言
evans在进步3 小时前
LeetCode 33:搜索旋转排序数组——Java 两阶段二分查找详解
java·python·leetcode