在量化交易里,不仅需要冷冰冰的本地脚本,有时候我们更需要一个直观的可视化看盘界面:能一眼盯住自己最关心的几个 A股、港股和美股标的,看看它们的实时行情、涨跌幅、甚至是五档盘口变化[6][12]。
自己写一套 React 或 Vue 网页的前端,对后端开发或策略研究员来说门槛太高、耗时太长。今天我们用 Python 领域著名的轻量级 Web 框架 Streamlit,配合 QuantDash 的多市场行情接口,在50 行代码以内搭建出一个美观、可交互的多市场自选股实时监控看板。
1. 准备工作
确保你的环境中安装了以下两个库:
pip install streamlit quantdash2. 看板完整代码
新建一个 app.py,写入以下极其精简的代码:
import streamlit as st import pandas as pd from quantdash import QuantDash import time # 页面基本配置 st.set_page_config(page_title="多市场实时看盘终端", layout="wide") st.title("📊 多市场自选股实时看盘终端") # 1. 实例化 QuantDash (在 Streamlit 中通过 cache 防止重复初始化) @st.cache_resource def get_qd_client(): # 填入你的 QuantDash API Key return QuantDash(api_key="your_quantdash_api_key") qd = get_qd_client() # 2. 侧边栏:配置自选股 st.sidebar.header("⚙️ 监控配置") symbols_input = st.sidebar.text_input( "自选股代码(逗号分隔)", value="600519.SH,AAPL.US,00700.HK,510300.SH" # 默认支持沪深、美股、港股及ETF ) refresh_interval = st.sidebar.slider("刷新频率 (秒)", min_value=2, max_value=30, value=5) # 解析自选股列表 symbols = [s.strip() for s in symbols_input.split(",") if s.strip()] # 3. 主页面布局 # 使用 placeholder 实现页面局部静默刷新,避免整页白屏重载 placeholder = st.empty() while True: with placeholder.container(): st.subheader("⏱️ 实时快照 (自动每 {} 秒更新)".format(refresh_interval)) try: # 批量获取多市场最新实时行情数据 # QuantDash 会自动识别后缀并分发给不同交易所接口获取最新价 quotes_data = qd.stock.get_quotes(symbols=symbols) # 将返回数据组装为表格 df_rows = [] for item in quotes_data: ext = item.get("ext", {}) df_rows.append({ "标的代码": item.get("symbol"), "股票名称": ext.get("name", "N/A"), "最新价": item.get("last_price"), "昨收价": item.get("prev_close"), "最高价": item.get("high"), "最低价": item.get("low"), "涨跌幅(%)": ext.get("change_pct", 0.0), "成交量": item.get("volume"), }) df = pd.DataFrame(df_rows) # 实时卡片展示 (Metrics) cols = st.columns(len(df_rows)) for i, row in enumerate(df_rows): with cols[i]: st.metric( label=f"{row['股票名称']} ({row['标的代码']})", value=row["最新价"], delta=f"{row['涨跌幅(%)']:.2f}%" ) # 详细数据表格展示 st.dataframe(df.style.format({"最新价": "{:.2f}", "涨跌幅(%)": "{:+.2f}%"}), use_container_width=True) except Exception as e: st.error(f"行情获取失败,请检查 API Key 或标的代码格式。错误信息: {e}") # 控制循环刷新间隔 time.sleep(refresh_interval)3. 启动你的看板
在终端中执行以下命令,Streamlit 会自动在你的浏览器中弹出一个极具科技感的实时看板:
streamlit run app.py4. 本方案亮点说明
支持混合跨市场:传统接口很难做到在一个表格里把 A 股、美股、港股、ETF 的价格放在一起刷新。依靠 QuantDash 强大的多市场多端支持,只需传入标准化的代码后缀(如 .SH / .US / .HK),底层的转换与路由逻辑全部被封装在云端,大大节省了前端开发工作量[3][12]。
低延迟与性能友好:得益于 quantdash-python-sdk 极低的网络请求开销和简洁的 JSON 结构,即使每 2 秒高频刷新一次,监控面板依然能保持丝滑稳定,不会出现卡顿。
相关链接:
QuantDash 官方:QuantDash
Python SDK 快速开始:快速开始 - QuantDash