在国际股指期货量化开发中,日经 225是高频交易品种。本文基于脉动数据行情平台接口,用Python实现日经 225 实时行情的两种接入方式:WebSocket 实时推送、HTTP 轮询拉取,并提供可直接运行的代码。
一、支持品种与日经 225 实时数据
平台支持日经 225、台指期、恒指、富时 A50、德指、小标普、小道指等国际股指期货实时数据。
实时行情示例(2026-04-17)
表格
| 产品名称 | 代码 | 最新价 | 涨幅 | 涨跌 | 卖价 | 买价 | 交易量 | 更新时间 |
|---|---|---|---|---|---|---|---|---|
| 日经 225 | ZY_NKD | 59065 | -0.46 | -275 | 59075 | 59060 | 2035 | 2026-04-17 10:16:25 |
| 恒指 2604 | HX_HSI | 26151 | -0.76 | -200 | 26151 | 26149 | 44087 | 2026-04-17 10:16:23 |
| 富时 A50 | HX_CN | 15439 | -0.32 | -50 | 15439 | 15438 | 148272 | 2026-04-17 10:16:25 |
| 德指 | ZY_DAX | 24325 | -0.02 | -5 | 24326 | 24319 | 174 | 2026-04-17 10:16:25 |
二、接入前置条件
- 服务器 IP 需在平台授权
- 建议请求头添加
Accept-Encoding:gzip - 支持 WebSocket 推送 / HTTP 拉取两种模式
三、Python 实现 WebSocket 实时订阅(推荐)
WebSocket 低延迟、主动推送,适合量化与实时看板。
安装依赖
bash
pip install websockets asyncioPython 完整代码
python
import asyncio import websockets import json import time # 心跳:每10秒发送一次 def send_ping(): return json.dumps({"ping": int(time.time())}) # 订阅日经225 def subscribe(): return json.dumps({"Key": "ZY_NKD,TW_TXF,HX_HSI,ZY_DAX"}) async def connect_market(): uri = "ws://39.107.99.235/ws" while True: try: async with websockets.connect(uri, ping_interval=None) as websocket: print("WebSocket 连接成功") # 发送订阅 await websocket.send(subscribe()) last_ping_time = time.time() while True: # 定时发心跳 if time.time() - last_ping_time > 10: await websocket.send(send_ping()) last_ping_time = time.time() # 接收数据 data = await websocket.recv() if "pong" not in data: print("实时行情:", json.loads(data)) except Exception as e: print("断开重连中...", e) await asyncio.sleep(3) if __name__ == "__main__": asyncio.run(connect_market())核心返回关键字段
- StockCode:品种代码
- Price:最新价
- High/Low:高低价
- Open/Close:开盘/收盘价
- BP1/BV1:买一价 / 量
- SP1/SV1:卖一价 / 量
- Diff/DiffRate:涨跌额 / 涨跌幅
- Time:更新时间
四、Python 实现 HTTP API 拉取(简单稳定)
适合低频查询、定时刷新场景。
1. 获取日经 225 实时行情
python
import requests url = "http://39.107.99.235:1008/getQuote.php" params = {"code": "ZY_NKD"} headers = {"Accept-Encoding": "gzip"} resp = requests.get(url, params=params, headers=headers) print(resp.json())2. 获取日经 225 K 线数据
python
url = "http://39.107.99.235:1008/redis.php" params = { "code": "ZY_NKD", "time": "1m", # 1m/5m/15m/30m/1h/1d/1M "rows": 40 } resp = requests.get(url, params=params, headers=headers) print(resp.json())3. 查询产品分类与代码列表
python
# 分类 resp = requests.get("http://39.107.99.235:1008/getCategory.php") # 国际股指期货列表 resp = requests.get("http://39.107.99.235:1008/getSymbolList.php?category=7&page=1&pageSize=20")五、开发注意事项(Python 专属)
- WebSocket 必须做断线重连,网络波动会断开
- 部分品种盘口深度可能为空,代码中做好
try-except与判空
六、文章说明
本文为脉动数据行情平台Python 接口开发技术分享,仅用于学习与项目开发参考