当前位置:首页>python>量化系列(八十七): Python生成股票的实时数据

量化系列(八十七): Python生成股票的实时数据

  • 2026-10-06 18:01:10
量化系列(八十七): Python生成股票的实时数据

一. 认真学完这一章节,你可以做什么?

上一章节,我们获取了股票的分钟数据,这一章节我们来实现一下 获取股票的实时数据 并进行展示。  展示今天的详细信息,包括五档信息。

样式大概如下:

输入股票的任意一个数据,可以获取今天的实时数据, 并且支持自动刷新,包括五档数据。

本文含系统自动匹配的广告,广告收入用于支持持续创作,感谢理解

二.    数据源和响应信息

股票的实时数据,从腾讯证券平台获取,暂不采用 金亥跃江的股票平台数据。

请求样式为:

http://qt.gtimg.cn/?q=sz002812

其中,后面跟的数字是 股票的全名称。

响应数据类似是:

v_sz002812="51~恩捷股份~002812~61.76~67.72~68.00~306081~132087~173994~61.74~9~61.72~12~61.71~3~61.70~220~61.69~20~61.76~18~61.78~46~61.80~50~61.81~1~61.83~8~~20260708120115~-5.96~-8.80~68.30~61.27~61.76/306081/1954571836~306081~195457~3.72~160.95~~68.30~61.27~10.38~508.07~606.56~2.37~74.49~60.95~1.96~141~63.86~58.25~425.51~~~1.38~195457.1836~0.0000~0~ A~GP-A~9.04~-5.62~0.00~1.47~0.87~87.71~27.82~-11.06~-1.87~-6.17~822657068~982131897~36.43~37.89~822657068~~~110.50~-0.32~~CNY~0~~61.65~55~";

关于数据的解析,可以看我之前的文档。

Java量化系列(二):实现股票日K数据每日自动同步

三.   Python 实现获取股票的实时数据

为了方便大家理解和使用, 小亥将采用 streamlit  进行编写相关的脚本, 这样有页面,也方便点击 。

大家可以通过 AI 自行实现,  小亥这儿提供一个简单的版本。

脚本名称为   stock_now.py

安装依赖:

pip install streamlit requests pandas plotly -i https://pypi.tuna.tsinghua.edu.cn/simple

主要的代码是:

def fetch_stock_data(code: str) -> dict | None:    """    调用腾讯实时行情接口获取股票数据。    Args:        code: 股票代码(如 002812、sh600519、sz300750)    Returns:        dict: 解析后的股票数据,失败返回 None    """    market, raw_code = detect_market(code)    query = f"{market}{raw_code}"    try:        resp = requests.get(f"{API_BASE}?q={query}", timeout=TIMEOUT)        resp.raise_for_status()        text = resp.content.decode("gbk")        # 提取 data 部分        match = re.search(r'=\"(.+)\"', text)        if not match:            return None        fields = match.group(1).split("~")        if len(fields) < 50:            return None        # ---- 解析核心字段 ----        def safe_float(s):            try:                return float(s)            except (ValueError, TypeError):                return None        def safe_int(s):            try:                return int(float(s))            except (ValueError, TypeError):                return None        price = safe_float(fields[3])        pre_close = safe_float(fields[4])        change = safe_float(fields[31]) if price is not None else None        pct = safe_float(fields[32])        data = {            "name":       fields[1],            "code":       fields[2],            "price":      price,            "pre_close":  pre_close,            "open":       safe_float(fields[5]),            "volume":     safe_int(fields[6]),            "outer_disc": safe_int(fields[7]),    # 外盘            "inner_disc": safe_int(fields[8]),    # 内盘            # 五档买卖            "buy_prices":  [safe_float(fields[i]) for i in [9, 11, 13, 15, 17]],            "buy_volumes": [safe_int(fields[i])   for i in [10, 12, 14, 16, 18]],            "sell_prices": [safe_float(fields[i]) for i in [19, 21, 23, 25, 27]],            "sell_volumes":[safe_int(fields[i])   for i in [20, 22, 24, 26, 28]],            "datetime":    fields[30],            "change":      change,            "pct":         pct,            "high":        safe_float(fields[33]),            "low":         safe_float(fields[34]),            "turnover":    safe_float(fields[38]),            "pe_dynamic":  safe_float(fields[39]),            "pe_static":   safe_float(fields[52]),            "pb":          safe_float(fields[46]),            "cap_flow":    safe_float(fields[44]),  # 流通市值(亿)            "cap_total":   safe_float(fields[45]),  # 总市值(亿)            "amplitude":   safe_float(fields[43]),            "vol_ratio":   safe_float(fields[49]),            "up_limit":    safe_float(fields[47]),            "down_limit":  safe_float(fields[48]),            "avg_price":   safe_float(fields[51]),            "div_yield":   safe_float(fields[56]) if fields[56] else None,            "amount":      safe_float(fields[37]) if fields[37] else None,  # 成交额(万)            "raw_fields":  fields,        }        return data    except Exception as e:        st.error(f"获取数据失败: {e}")        return None

点击  本次头条, 查看评论区 获取相应的完整的代码(完全能运行的)。

Google 浏览器会自动打开

免责声明:本文仅供技术交流,不构成任何投资建议。股市有风险,投资需谨慎。

如果你觉得这篇文章说到了心坎里,请点个“在看” 和推荐 ,点个关注,并转发给身边的朋友,让更多人支持小亥!

#Python量化   #股票量化  #股票实时数据  #金亥跃江聊量化 #金亥跃江

最新文章

随机文章