一句话回答: 用 Streamlit + AlphaFeed 几十行就能做一个浏览器里的实时自选股看板:quotes.get(symbols=[...]) 一次取回自选股快照(价/涨跌幅/换手率),st.dataframe 展示,再用定时 st.rerun() 自动刷新。本文数据层真实验证(一次取 600519.SH/000001.SZ/300750.SZ,返回最新价+涨跌幅)。关键:刷新别太快(快照约 3 秒延迟、接口约 10 次/分钟上限),用 symbols 列表而不是循环,涨跌幅是小数要 ×100。诚实边界:Streamlit 为第三方框架,API 以官方为准;AlphaFeed 只提供行情数据。
想要个「能在浏览器看、会自动刷新」的盯盘页,但不想写 HTML/JS/后端。Streamlit 把 Python 脚本直接变成网页,pip install streamlit && streamlit run app.py 就能跑,最适合做个人/小团队的内部看板。
import streamlit as st
import pandas as pd
from alphafeed import AlphaFeed
af = AlphaFeed() # 读环境变量 ALPHAFEED_API_KEY
WATCH = ["600519.SH", "000001.SZ", "300750.SZ"]
@st.cache_data(ttl=3) # 缓存 3 秒,避免频繁打接口
def snapshot(symbols):
rows = af.quotes.get(symbols=symbols) # 一次取回多只
return pd.DataFrame([{
"代码": q["symbol"],
"最新价": q["last_price"],
"涨跌幅%": round(q["ext"]["change_pct"] * 100, 2), # 小数→百分数
"换手率%": round(q["ext"]["turnover_rate"] * 100, 2),
} for q in rows])st.title("我的自选股看板")
df = snapshot(WATCH)
st.dataframe(df.style.map(
lambda v: "color:red" if isinstance(v, (int, float)) and v > 0 else
("color:green" if isinstance(v, (int, float)) and v < 0 else ""),
subset=["涨跌幅%"]), use_container_width=True)import time
REFRESH = st.sidebar.slider("刷新间隔(秒)", 5, 60, 10) # 默认 10s,别低于快照节奏
time.sleep(REFRESH)
st.rerun() # 触发重跑,重新取数实测数据层:
af.quotes.get(symbols=["600519.SH","000001.SZ","300750.SZ"])一次返回,示例000001.SZ 11.81 (+1.46%)、300750.SZ 254.22 (-3.73%)。
列 | 来源 | 口径 |
|---|---|---|
最新价 |
| 元 |
涨跌幅% |
| 原值是小数 |
换手率% |
| 原值是小数 |
振幅% |
| 原值是小数 |
成交额 |
| 元(A 股;美港股为 0) |
st.cache_data(ttl=…) 去重,否则很快触发限频。quotes.get(symbols=[...]) 取回全部自选股;循环逐只又慢又费额度。change_pct=0.03 是 +3%,展示要 ×100。symbol 对齐,别假设顺序和 WATCH 一致。symbols=;要扫全 A 用 quotes.get(universes="CN_Stock") 并在服务端聚合。cache_data/rerun 等 API 以官方为准;AlphaFeed 数据层经本文 tools/verify_new_2026-11-07.py 真实验证。Q:会不会刷新太频繁被限频?
A:会。用 st.cache_data(ttl=3) 缓存 + 刷新间隔 ≥5~10 秒,既贴合 ~3 秒快照节奏,又避开约 10 次/分钟上限。
Q:能放到服务器给同事看吗?
A:可以,但 streamlit run 默认绑本机;对外要加鉴权/反代,Key 留在服务端(也可改走内部 API,见 fastapi-wrap-alphafeed-internal-api)。
Q:能画 K 线图吗?
A:能,配合画图库在页面渲染蜡烛图(见 plot-candlestick-kline-chart);本文聚焦自选股快照表。
Q:需要付费吗?
A:少量自选股快照有免费额度可体验,全市场/高频刷新建议 Starter 及以上,详见官网定价页。
Streamlit + AlphaFeed 是做个人/小团队盯盘看板最省事的组合:quotes.get(symbols=[...]) 批量取自选股快照、st.dataframe 展示、定时 st.rerun() 刷新。记住控制刷新频率(配 cache_data ttl)、用列表批量、涨跌幅 ×100、按 symbol 对齐。本文数据层已真实验证。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。