实时行情数据是量化交易策略、看板系统和交易决策系统的重要输入。本文将以 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.pswp.cn/news/914796.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/914796.shtml
英文地址,请注明出处:http://en.pswp.cn/news/914796.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

施易德门店管理系统应用案例分析:零售女装品牌伊芙丽的全球化布局

在零售品牌的全球化进程中,如何应对不同市场的合规要求、实现本地化精细化运营,是企业面临的重要课题。施易德(Cegid)门店管理系统凭借40年的全球零售数字化服务经验,为多个品牌的海外拓展提供了支持。其中&#xff0c…

安全初级作业2

一、作业要求 1、xss-labs 1~8关 2、python实现自动化sql布尔育注代码优化(二分查找) 二、操作过程 (一)xss-labs 1~8关 1、前期准备 (1)打开小皮面板,并启动Apache和MySQL (2)将 xss-labs…

多模态大语言模型arxiv论文略读(157)

Automatic Evaluation for Text-to-image Generation: Task-decomposed Framework, Distilled Training, and Meta-evaluation Benchmark ➡️ 论文标题:Automatic Evaluation for Text-to-image Generation: Task-decomposed Framework, Distilled Training, and M…

面试150——数组字符串

88. 合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。倒序比较,避免覆…

深入理解设计模式:命令模式详解

在软件开发中,我们经常遇到需要将"请求"或"操作"封装成对象的情况。比如,GUI中的按钮点击、遥控器控制家电、事务系统中的操作回滚等场景。命令模式(Command Pattern)正是为解决这类问题而生的设计模式。本文…

自己写的 MyHttpServlet 和直接继承 HttpServlet 的区别

继承你自己写的 MyHttpServlet 和直接继承 HttpServlet 的区别如下:1. 继承 HttpServlet(官方推荐用法)HttpServlet 是 Java EE 官方提供的 Servlet 基类,已经实现了 Servlet 接口的大部分方法。它内部已经实现了 service() 方法&…

python库 maya 库的各种案例的使用详解(人性化的日期时间处理)

文章目录 一、Maya库概述 1.1 maya介绍 1.2 安装 maya 1.3 注意事项 二、基本使用 2.1 创建 MayaDT 对象 2.2 格式化输出 2.3 时间运算 三、高级使用 3.1 时区处理 3.2 时间间隔 3.3 网络时间获取 四、实际应用示例 4.1 日志时间处理 4.2 会议时间提醒 4.3 国际化时间显示 5. M…

企业选择大带宽服务器租用的原因有哪些?

大带宽服务器作为各个行业使用较多的服务器类型,可以为企业提供更高的数据传输速率,极大缩短文件上传与下载时间,对于大型文件,大带宽服务器能够将时间大幅缩减至数分钟或数小时,提高企业整体的工作效率。大带宽服务器…

使用canal同步分库分表数据,到 Elasticsearch

作者:小凯 沉淀、分享、成长,让自己和他人都能有所收获! 本文的宗旨在于通过简单干净实践的方式教会读者,配置出一套 Canal 工具服务,来同步分库分表的数据到 Elasticsearch 文件夹系统中。同时在 SpringBoot 工程中&a…

气候为何愈演愈“炙” — 未来五年高温趋势与 AI 气象大模型的突破性价值

早、更准 代表性模型 主要特征 应用进展 GraphCast(DeepMind) 10 天全球预报;0.25 分辨率;< 1 min 推理 90 % 指标超 ECMWF HRES,已用于极端风暴提前锁定Google DeepMind MetNet-3(Google Research) 1–4 km 分辨率;2 min 时序;24 h 区域精细预报 美东、欧洲已在 G…

LVS四种模式及部署NAT、DR模式集群

1、lvs简介LVS:Linux Virtual Server&#xff0c;负载调度器&#xff0c;内核集成&#xff0c;章文嵩&#xff0c;阿里四层SLB(ServerLoadBalance)是基于LVSkeepalived实现LVS 官网: http://www.linuxvirtualserver.org/LVS 相关术语VS: Virtual Server&#xff0c;负责调度RS:…

【Linux】Ubuntu22.04安装zabbix

官方文档&#xff1a;zabbix安装文档 环境如下 环境版本nginx1.26.3zabbix7.0.16mysql8.0.41 安装nginx和mysql 一键部署脚本 部署zabbix #!/bin/bash wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0ubuntu22.04_…

C++ - 仿 RabbitMQ 实现消息队列--sqlite与gtest快速上手

目录 SQLite 什么是 SQLite 为什么要用 SQLite SQLite3 C/C API 介绍 SQLite3 C/C API 使用 GTest GTest 是什么 GTest 使用 TEST 宏 断言 事件机制 全局事件 TestSuite 事件 SQLite 什么是 SQLite SQLite 是一个进程内的轻量级数据库&#xff0c;它实现了自给自足…

Web3.0 学习方案

Web3.0 学习方案 一、学习方案 &#xff08;一&#xff09;入门阶段 1. 了解 Web3.0 基础概念 学习内容&#xff1a; Web3.0 的起源、愿景、与 Web2.0 的区别区块链的基本概念&#xff1a;分布式账本、哈希、公钥/私钥、共识机制&#xff08;PoW、PoS、DPoS、PBFT 等&#xff0…

springboot3.5.3依赖学习

springboot3.5.3依赖学习 ​ Spring Boot BOM&#xff08;spring-boot-dependencies&#xff09;是 Spring 官方维护的超级依赖清单&#xff0c;覆盖了 Spring 生态中几乎所有核心库、常用工具库及第三方依赖。其作用是统一管理这些依赖的版本&#xff0c;确保它们相互兼容。以…

制作一款打飞机游戏80:道具碰撞

目前我们仍然无法拾取这些物品&#xff0c;它们只是简单地掉落在地上。因此&#xff0c;我们需要对这些功能进行增强。目标‌弹射物品‌&#xff1a;当物品生成时&#xff0c;我们希望它们能以一定的力量弹出&#xff0c;而不是无力地掉落。‌添加不同类型的物品‌&#xff1a;…

Python编程基础(六)| 用户输入和while循环

引言 很久没有写 Python 了&#xff0c;有一点生疏。这是学习《Python 编程&#xff1a;从入门到实践&#xff08;第3版&#xff09;》的课后练习记录&#xff0c;主要目的是快速回顾基础知识。 练习1&#xff1a;汽车租赁 编写一个程序&#xff0c;询问用户要租什么样的汽车&a…

【华为机试】HJ52 计算字符串的编辑距离

文章目录HJ52 计算字符串的编辑距离描述输入描述输出描述示例1HJ52 计算字符串的编辑距离描述输入描述输出描述示例1解题思路算法分析动态规划状态转移状态转移方程算法流程图DP表格示例三种操作详解代码实现思路时间复杂度分析关键优化技巧实际应用场景算法扩展面试考点完整题…

15.手动实现BatchNorm(BN)

15.1 BatchNorm操作手动实现 import torch from torch import nndef batch_norm(X,gamma,beta,moving_mean,moving_var,eps,momentum):if not torch.is_grad_enabled():#这个是推理模式X_hat(X-moving_mean)/torch.sqrt(moving_vareps)else:assert len(X.shape) in (2,4)if le…

【项目实践】SMBMS(Javaweb版)汇总版

文章目录前期准备工作数据库、数据表创建web项目创建项目文件目录配置Tomcat&#xff0c;导入依赖建立实体类编写基础公共方法类导入基础资源登录功能登录页面持久层dao层的用户登录及接口实现dao层接口实现所需的方法业务层sevice层的接口的实现接口实现相关的业务逻辑编写ser…