当前位置: 首页 > news >正文

教程:如何快速查询 A 股实时 K线和5档盘口

实时行情数据是量化交易策略、看板系统和交易决策系统的重要输入。本文将以 Infoway API 提供的 WebSocket API 为例,教你如何使用 Python 快速接入并获取 A 股的实时 K线数据盘口数据

一、准备工作

安装 WebSocket 库:

pip install websockets

二、查询 1 分钟 K 线数据

以下是订阅 A 股平安银行1 分钟 K 线的完整代码:

import asyncio
import json
import websocketsWS_URL = "wss://data.infoway.io/ws?business=stock&apikey=yourApiKey"# API KEY申请: www.infoway.ioasync def connect_and_receive():async with websockets.connect(WS_URL) as websocket:init_message = {"code": 10004,  # K线订阅请求号"trace": "trace-id-001",  # 自定义追踪ID"data": {"arr": [{"type": 1,            # 1 表示 1 分钟K线"codes": "000001.SZ"  # A股代码}]}}await websocket.send(json.dumps(init_message))async def send_ping():while True:await asyncio.sleep(30)ping = {"code": 10010, "trace": "trace-id-001"}await websocket.send(json.dumps(ping))ping_task = asyncio.create_task(send_ping())try:while True:message = await websocket.recv()print("K线数据:", message)finally:ping_task.cancel()asyncio.run(connect_and_receive())

返回数据说明:

{"c": "11.25",       // 收盘价"h": "11.28",       // 最高价"l": "11.22",       // 最低价"o": "11.23",       // 开盘价"v": "258400",      // 成交量(单位:股)"vw": "11.2458",    // 加权平均价"pca": "0.02",      // 价格变化"pfr": "0.18%",     // 涨跌幅"t": 1747550648097, // 时间戳"s": "000001.SZ",   // 股票代码"ty": 1             // K线类型(1分钟)
}

三、查询盘口数据(Level 2)

以下是订阅平安银行盘口数据的完整代码:

import asyncio
import json
import websocketsWS_URL = "wss://data.infoway.io/ws?business=stock&apikey=yourApiKey"# 申请API KEY: www.infoway.ioasync def connect_and_receive():async with websockets.connect(WS_URL) as websocket:init_message = {"code": 10002,  # 盘口订阅请求号"trace": "trace-id-002","data": {"codes": "000001.SZ"}}await websocket.send(json.dumps(init_message))async def send_ping():while True:await asyncio.sleep(30)ping = {"code": 10010, "trace": "trace-id-002"}await websocket.send(json.dumps(ping))ping_task = asyncio.create_task(send_ping())try:while True:message = await websocket.recv()print("盘口数据:", message)finally:ping_task.cancel()asyncio.run(connect_and_receive())

返回数据说明:

{"a": [                // 卖盘数据["11.25", "11.26", "11.27", "11.28", "11.29"],  // 卖五档价格["23000", "18000", "9500", "6000", "7200"]      // 对应数量],"b": [                // 买盘数据["11.24", "11.23", "11.22", "11.21", "11.20"],  // 买五档价格["26000", "20000", "10000", "7500", "8500"]     // 对应数量],"s": "000001.SZ",     // 股票代码"t": 1747553102161    // 时间戳
}

四、注意事项

  • Ping 心跳机制:WebSocket 连接必须维持心跳,否则服务端会自动断开连接。每隔 30 秒发送一次 code=10010 的心跳消息。

  • 股票代码格式:A 股股票代码格式为 000001.SZ600000.SH,需要带交易所后缀。

  • 数据使用限制:免费账号有速率限制或订阅数量限制

五、扩展应用建议

  • 看板系统:将返回的实时 K 线和盘口数据接入到图表看板中(如 Grafana + WebSocket)。

  • 自动交易系统:用盘口数据驱动微观结构策略(如买卖盘力量对比)。

  • AI 策略研究:K 线与盘口联合建模,用于训练 LSTM 或 Transformer 型模型。

http://www.dtcms.com/a/283198.html

相关文章:

  • 今日行情明日机会——20250716
  • Redis深度解析:从缓存到分布式系统的核心引擎
  • 用python实现自动化布尔盲注
  • pytest--1--pytest-mock常用的方法
  • 代码随想录day36dp4
  • 震坤行获取商品SKU操作详解
  • 16路串口光纤通信FPGA项目实现指南
  • Kotlin获取集合中的元素操作
  • Java与Vue精心打造资产设备管理系统,提供源码,适配移动端与后台管理,助力企业高效掌控资产动态,提升管理效能
  • 【Java】JUC并发(synchronized进阶、ReentrantLock可重入锁)
  • 二重循环:输入行数,打印直角三角形和倒直角三角形
  • Java后端开发核心笔记:分层架构、注解与面向对象精髓
  • 基于Android的旅游计划App
  • Web基础 -MYSQL
  • 冷库耗电高的原因,冷链运营者的降本增效的方法
  • LVS四种模式及部署NAT、DR模式集群
  • CD53.【C++ Dev】模拟实现优先级队列(含仿函数)
  • 【计算机网络】数据通讯第二章 - 应用层
  • 深度学习之反向传播
  • 【迭代】PDF绘本录音播放,点读笔方案调研和初步尝试
  • leetcode 725 分割链表
  • 微算法科技研究量子视觉计算,利用量子力学原理提升传统计算机视觉任务的性能
  • Kafka入门
  • 语音增强论文汇总
  • Go基本数据类型
  • 81、面向服务开发方法
  • Redisson实现分布式锁
  • Redisson实现限流器详解:从原理到实践
  • HTML 入门教程:从零开始学习网页开发基础
  • 前端知识:浏览器工作原理与开发者工具知识笔记