核心内容摘要
灵活的区域定义
每次我打开港股行情总觉得网页刷新像是一种慢动作的折磨。
对量化策略而言几秒钟的延迟就可能错过关键信号。
于是我决定直接把港股的实时行情搬到自己的 Python 脚本里用 港股实时行情api接口让每一笔成交、每一次涨跌都在眼前闪现。
环境准备在开始之前先确认环境。
Python
9 以上websocket-client 库当然还有 json。
这些都是小伙伴们手到擒来的基本配置。
pip install websocket-client虽然依赖不多但在数据量大时一个稳定的连接才是关键。
你可以先在本地测试等熟悉流程再考虑大规模并发。
建立 WebSocket 连接港股行情实时更新本质上就是一个消息推送系统。
WebSocket 是天然的选择。
下面示例展示如何使用 港股实时行情api接口 订阅恒生指数和一只股票比如
HKimport websocketimport jsonurl wss://api.alltick.co/realtime/hkdef on_message(ws, message):data json.loads(message)# 打印最新成交价和涨跌情况print(f{data[symbol]} 最新价格: {data[last_price]} 涨跌: {data[change]})def on_open(ws):# 订阅恒生指数及指定股票行情ws.send(json.dumps({action: subscribe,symbols: [HSI,
HK]}))ws websocket.WebSocketApp(url, on_messageon_message, on_openon_open)ws.run_forever()这段代码的美妙之处在于——它几乎不需要改动就能接入港股行情有些平台总让你看得眼花缭乱而这里你只需要专注于数据本身。
这里使用的是 AllTick API提供的港股实时行情接口官方文档很清晰如果你愿意深入也可以直接参考进行更多自定义订阅。
数据处理与实用小技巧拿到行情数据后怎么处理呢对我来说最直接的办法是把 tick 数据按时间戳排序形成连续的价格序列。
再用 pandas 或者你喜欢的任何工具做进一步分析比如计算短期涨跌幅、成交量波动等。
import pandas as pd# 假设我们有一个行情列表ticks [{time: 09:30:01, price: 500, volume: 100},{time: 09:30:02, price: 502, volume: 50},{time: 09:30:03, price: 501, volume: 80},]df pd.DataFrame(ticks)df[time] pd.to_datetime(df[time])print(df)让我想起第一次处理港股 tick 数据时觉得像是在听交响乐——每一笔成交都像乐器敲击出的小节你能清楚地感受到市场的节奏。
对策略而言这些微小的波动往往比大趋势更有意思。