英股API、伦敦证券交易所(LSE)实时行情、英国股市历史K线数据——汇丰(HSBA)、英国石油(BP)、沃达丰(VOD)这些老牌蓝筹股是做欧洲市场资讯或量化产品时绕不开的标的。这篇教程用itick的Python SDK对接英国股市数据,同时把REST和WebSocket两种方式做个对比,方便你根据自己的场景选。

维度 | REST API | WebSocket |
|---|---|---|
数据实时性 | 需要轮询,存在间隔延迟 | 服务端主动推送,毫秒级 |
调用限制 | 按套餐每分钟次数限制 | 按连接数和订阅数限制 |
适合场景 | 历史K线、批量查询、低频报价 | 盯盘、实时报价滚动条、逐笔成交 |
实现复杂度 | 简单,一次请求一次响应 | 需要处理连接、心跳、重连(SDK已封装) |
典型接口 | get_stock_kline / get_stock_quote | connect_stock_websocket + 订阅消息 |
简单说:要K线图表用REST,要实时报价用WebSocket,两个搭配着用是最常见的组合方式。
pip install itick-sdk登录itick.org注册账号,Dashboard里能看到你的token。
from itick.sdk import Client
token = "your_api_token"
client = Client(token)
# 英国region代码是GB
# 汇丰控股 HSBA
kline = client.get_stock_kline("GB", "HSBA", 8, 40)
print("HSBA日K线:", kline)
# 英国石油 BP,周K线
kline_bp = client.get_stock_kline("GB", "BP", 9, 12)
print("BP周K线:", kline_bp)kType参数:1=1分钟, 2=5分钟, 3=15分钟, 4=30分钟, 5=1小时, 8=1天, 9=1周, 10=1月。返回结构里o/h/l/c/v/tu/t跟其他市场保持一致的字段命名。
import time
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()
client.send_websocket_message(
'{"ac":"subscribe","params":"HSBA$GB,BP$GB,VOD$GB","types":"quote,depth"}'
)
time.sleep(25)
print("连接是否正常:", client.is_websocket_connected())
client.close_websocket()depth类型返回的是盘口数据,包含买卖双方多档的价格和挂单量,字段a是卖盘(ask)数组,b是买盘(bid)数组,每一档里po表示档位、p是价格、v是数量。做交易面板类产品的时候这块数据比单纯的quote更有用。
英股报价单位有的以便士(pence)计价,有的以英镑计价,这个跟标的本身的挂牌规则有关,不是itick接口的问题,展示的时候建议先确认清楚具体标的的计价单位,避免价格显示错一个数量级——这个问题之前有开发者反馈过,价格看起来"涨了100倍",其实是把便士当成英镑显示了。
WebSocket这块,SDK内置了心跳保活(默认30秒发一次ping)和自动重连(断线后5秒间隔重试,最多10次,重连成功自动恢复订阅),这些机制不需要自己实现。如果你之前手写过WebSocket客户端就知道,心跳和重连这两块看似简单,实际上坑还是不少的,比如重连时机没控制好导致订阅丢失、心跳间隔设置不合理被服务端判定超时断开等等,用现成SDK能省掉这部分调试时间。
个人开发者验证阶段用免费套餐(REST 5次/分钟,WebSocket 1连接3订阅)完全够,等产品要覆盖更多英股标的、需要多条WebSocket连接分摊订阅数量的时候,再评估Base或者Professional套餐,具体的调用频率和连接数限制可以参考itick官网的定价页面。
英股对接下来核心就是region=GB加正确的股票代码,REST和WebSocket各司其职,历史数据和实时推送两不误。itick统一的字段结构和调用方式,让你从美股、港股切换到英股基本不需要重新学习一套新的接口逻辑,这也是用同一个数据服务商覆盖多市场的价值所在。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。