跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

使用 Python 通过 WebSocket 获取股票 Tick 级实时行情

介绍使用 Python 结合 WebSocket 接口获取股票 Tick 级实时行情的方法。通过安装 websocket-client 和 pandas 库,建立长连接接收推送数据,并利用 Pandas 进行结构化整理与分析。方案支持多标的订阅、价格统计及可视化扩展,适用于量化研究与数据监控场景。

忘忧发布于 2026/3/29更新于 2026/7/2556 浏览
使用 Python 通过 WebSocket 获取股票 Tick 级实时行情

金融量化开发中,实时精准的股票行情数据是核心基础。然而,付费接口成本高、轮询延迟大等问题常困扰开发者。

一、API 核心特性

相比其他免费股票数据渠道,该 API 主打 WebSocket 实时推送机制,解决开发者的核心困扰:

  1. 实时推送,无延迟:摒弃传统轮询模式,接口主动向客户端推送 tick 级行情数据,延迟可忽略,满足实时行情监测、高频策略回测等专业需求;
  2. 格式规范,易解析:返回标准 JSON 格式数据,标的代码、实时价格、时间戳等核心字段清晰,可直接用 Python 解析,省去大量数据清洗工作;
  3. 零成本无门槛:无需申请密钥,直接对接接口即可使用;
  4. 连接稳定,高适配:长连接稳定性强,数据传输完整,支持 A 股、美股等多市场标的,可无缝对接 Python 各类数据处理库。

二、前置准备:安装依赖库

本次实操仅需 2 个 Python 核心库,均为金融数据开发的基础必备库,在终端 / 命令行执行以下命令即可安装:

pip install websocket-client pandas
  • websocket-client:用于建立 WebSocket 长连接,接收 API 的实时行情推送数据;
  • pandas:用于快速实现非结构化数据的结构化整理,以及基础的统计分析。

三、核心代码:Python 对接 WebSocket 接口,抓取实时行情

以下是完整的实操代码,已做详细注释,可直接在本地 Python 环境或线上开发平台运行。仅需根据自身需求,修改代码中 symbols 列表的股票标的,即可实现自定义行情订阅。

完整代码实现
import websocket
import json
import pandas as pd

# 初始化列表,用于存储 tick 级实时行情数据
tick_data = []

def on_message(ws, message):
    """接收行情推送消息,解析并提取核心字段"""
    # 解析 API 推送的 JSON 格式数据
    msg = json.loads(message)
    # 提取核心行情信息:标的代码、实时价格、时间戳
    tick_info = {
        "symbol": msg.get("s"), # 股票标的代码
        "price": msg.get("p"), # 实时成交价格
        "time": msg.get("t") # 交易时间戳
    }
    tick_data.append(tick_info)
    # 实时打印行情,便于开发调试与行情监测
    print(f"{tick_info['symbol']} ->  @ ")

 ():
    
    (, error)

 ():
    
    ()

 ():
    
    
    subscribe_msg = {
        : ,
        : [, , ]
    }
    
    ws.send(json.dumps(subscribe_msg))

 __name__ == :
    
    ws_url = 
    
    ws = websocket.WebSocketApp(
        ws_url,
        on_open=on_open,
        on_message=on_message,
        on_error=on_error,
        on_close=on_close
    )
    
    ws.run_forever()
{tick_info['price']}
{tick_info['time']}
def
on_error
ws, error
"""捕获并打印连接错误,便于问题排查"""
print
"接口连接出错:"
def
on_close
ws, close_status_code, close_msg
"""打印连接关闭提示,感知接口连接状态"""
print
"WebSocket 连接已关闭"
def
on_open
ws
"""建立连接后,发送标的订阅请求"""
# 定义需要订阅的股票标的,可自由增删(支持 A 股、美股)
"type"
"subscribe"
"symbols"
"AAPL"
"TSLA"
"GOOG"
# 向 API 发送 JSON 格式的订阅请求
if
"__main__"
# AllTick 实时行情 WebSocket 接口地址
"wss://realtime.alltick.co/ws"
# 创建 WebSocket 应用,配置回调函数
# 保持长连接,持续接收实时行情数据
代码运行说明

运行上述代码后,控制台会实时打印订阅标的的行情信息,所有 tick 级数据会自动存入 tick_data 列表,全程无需手动干预。若需要更换监测标的,直接修改 subscribe_msg 中的 symbols 列表即可,例如添加 A 股标的代码。

四、数据整理与分析:Pandas 快速处理实时行情

抓取到的原始数据存储在列表中,无法直接进行深度分析。利用 Pandas 仅需 2 行核心代码,即可将非结构化列表数据转化为结构化 DataFrame 表格,同时可快速实现标的分组、价格统计等基础分析,为后续策略开发、指标计算、数据可视化打下基础。

数据处理代码
# 将 tick 级实时数据转换为 Pandas DataFrame 结构化表格
df = pd.DataFrame(tick_data)
# 查看最新 10 条行情数据,快速监测标的行情变化
print(df.tail(10))
# 按股票标的分组,计算各标的实时价格平均值
avg_price = df.groupby("symbol")["price"].mean()
print(avg_price)
数据拓展使用

整理后的 DataFrame 数据可直接对接 Python 各类工具,实现更多功能:

  • 对接 matplotlib/plotly:绘制股票实时行情 K 线图、折线图,实现数据可视化;
  • 对接 TA-Lib:计算 MA、MACD、RSI 等技术指标,为量化策略开发提供依据;
  • 写入 CSV / 数据库:将行情数据持久化存储,积累历史数据用于策略回测;
  • 结合条件判断:实现股价涨跌幅异动预警,适配实盘监测场景。

五、功能扩展:基于基础代码实现个性化需求

这套基础代码的扩展性极强,仅需简单修改和新增代码,即可适配更复杂的开发场景,推荐几个实用的扩展方向:

1. 多标的批量监控

在 symbols 列表中添加数十甚至上百只股票标的,实现多股票、多板块的实时行情批量抓取,适配行业轮动、指数成分股监测等需求。

2. 行情异动自动预警

添加价格涨跌幅判断逻辑,当标的价格波动达到设定阈值(如涨 5%、跌 3%)时,触发控制台提醒、邮件 / 短信预警,适配实盘交易监控。

3. 行情数据持久化存储

新增文件 / 数据库写入代码,将 DataFrame 格式的行情数据保存为 CSV、Excel 文件,或写入 MySQL、SQLite 数据库,实现历史行情数据的长期积累。

4. 实时行情可视化看板

结合 Plotly Dash 或 Streamlit,将实时行情数据封装为可视化网页看板,实现行情数据的可视化展示与实时刷新,更直观地监测市场变化。

六、实操常见问题与解决办法

  1. 连接失败:检查网络状态,确认接口地址无误,无需代理即可访问;
  2. 无数据推送:确认订阅的标的代码格式正确,API 支持多数主流 A 股、美股标的;
  3. 数据解析报错:因网络波动导致数据推送不完整,可在 on_message 函数中添加异常捕获逻辑,跳过错误数据;
  4. 连接断开:可在代码中添加重连机制,当连接关闭时自动重新建立 WebSocket 连接,保证数据接收的连续性。

七、总结

本方案是一套低成本、高实用的股票实时数据获取解决方案,核心亮点如下:

  1. 零成本:无需付费,直接对接接口即可获取 tick 级专业行情数据,大幅降低开发成本;
  2. 低门槛:代码逻辑清晰,注释详细,新手开发者也能快速复刻运行,无需深厚的金融开发基础;
  3. 高适配:完美对接 Python 各类数据处理、可视化、量化库,可用于量化开发、数据分析、行情监测等各类场景;
  4. 强扩展:基础代码可灵活修改,轻松实现多标的监控、异动预警、数据持久化等个性化需求。

对于从事金融量化开发、股票数据分析的开发者来说,这套方案能有效解决数据获取的痛点,让大家把更多精力放在核心的业务开发和策略研究上。

目录

  1. 一、API 核心特性
  2. 二、前置准备:安装依赖库
  3. 三、核心代码:Python 对接 WebSocket 接口,抓取实时行情
  4. 完整代码实现
  5. 初始化列表,用于存储 tick 级实时行情数据
  6. 代码运行说明
  7. 四、数据整理与分析:Pandas 快速处理实时行情
  8. 数据处理代码
  9. 将 tick 级实时数据转换为 Pandas DataFrame 结构化表格
  10. 查看最新 10 条行情数据,快速监测标的行情变化
  11. 按股票标的分组,计算各标的实时价格平均值
  12. 数据拓展使用
  13. 五、功能扩展:基于基础代码实现个性化需求
  14. 1. 多标的批量监控
  15. 2. 行情异动自动预警
  16. 3. 行情数据持久化存储
  17. 4. 实时行情可视化看板
  18. 六、实操常见问题与解决办法
  19. 七、总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Java 面试题及答案汇总
  • SPA 单页应用无刷新更新部署方案与实战优化
  • ICEEMDAN 算法详解:信号处理中的经验模态分解改进
  • ROS1 机器人 SLAM:Gmapping 算法详解与实战
  • OpenClaw 实战:Tavily MCP、浏览器自动化与多智能体配置
  • 设计模式实战:过滤器模式(Criteria Pattern)详解
  • OpenClaw 2026.3.3 新增 AI 解析 PDF 功能实测
  • Android 实现类似朋友圈发说说功能:拍照、选图与多图上传(Retrofit2)
  • OpenClaw:AI 代理框架如何重塑产品思维与工作流程
  • C++ Boost 搜索引擎数据清洗与解析实现详解
  • Linux 线程控制详解:POSIX 线程库与多线程编程实践
  • 用 Rokid 灵珠平台做一个 AI Glasses 作业助手
  • Webnovel Writer:基于 Claude Code 的长篇网文 AI 创作系统
  • AI 驱动游戏:鸿蒙生态的机会在哪里?
  • RAG 系统知识投毒攻击研究:One Shot Dominance 论文解读
  • Python 开根号的 5 种常用方法及场景选择
  • Layui 下解决 Unity WebGL Tab 切换黑屏
  • 语言学习通用心法:享受过程、持续输入与词汇积累
  • 低成本运行 Claude Code:通过 LiteLLM 接入 GitHub Copilot Chat API
  • Diffusion Transformer (DiT) 详解:从 U-Net 到 ViT,应用于视频生成与机器人动作预测

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online