ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何用 easyquotation 新浪行情接口免费获取实时行情:200 毫秒全市场快照实战

如何用 easyquotation 新浪行情接口免费获取实时行情:200 毫秒全市场快照实战 如何用 easyquotation 新浪行情接口免费获取实时行情200 毫秒全市场快照实战【免费下载链接】easyquotation实时获取免费股票行情支持新浪 / 腾讯(港股) / 集思录项目地址: https://gitcode.com/gh_mirrors/ea/easyquotationeasyquotation 新浪行情接口是一个面向 Python 开发者的免费实时行情数据方案不需要申请 token、不需要付费订阅几行代码就能拿到沪深京全市场的行情快照。它适合两类人——想自建盯盘或行情监控工具的普通开发者以及需要稳定免费数据源来支撑策略的量化爱好者。本文将带你从零跑通第一个请求再逐步解锁批量获取、指数混查、代码库自动更新等进阶能力。一、为什么自己抓行情总踩坑先看一个真实场景你有没有这样的经历收盘后想复盘某只股票的关键价位才发现当时忘了记录只能翻行情软件的历史界面。于是你想写个小程序自动盯盘让电脑替你记录和提醒。真动手时问题就来了商业行情接口要注册、要审核、要按年付费个人用不划算免费的公开接口文档零散返回的文本格式要靠正则硬啃自选股一多逐只请求又慢又不稳定。手动盯盘太累付费数据源太贵裸调接口太麻烦——这就是 easyquotation 要解决的中间地带。它把新浪财经的免费行情接口封装成了几个直观的方法你只需要关心要哪只股票至于市场前缀、请求拼接、响应解析统统交给库来处理。二、三步完成安装跑通第一个新浪行情请求安装非常简单依赖只有requests一个包对 Python 3.6 都友好pip install easyquotation想从源码运行也可以git clone https://gitcode.com/gh_mirrors/ea/easyquotation后在项目目录执行pip install -e .两种方式效果一致。装好后运行下面这段最短的代码import easyquotation quotation easyquotation.use(sina) # 选择新浪行情接口 data quotation.real(000001) # 查询平安银行 print(data)这段代码在做三件事加载新浪接口、建立会话、请求指定股票并解析成字典。你会得到一个字段相当齐全的行情对象包含名称、现价、今开、昨收、最高、最低以及买一到买五、卖一到卖五的完整五档盘口{name: 平安银行, now: 11.28, open: 11.20, high: 11.35, low: 11.15, close: 11.18, # close 是昨日收盘价涨跌幅靠它算 buy: 11.27, sell: 11.28, bid1: 11.27, bid1_volume: 123400, ask1: 11.28, ask1_volume: 56700, turnover: 4852300, volume: 54821000.0, # 股数 / 金额 date: 2026-08-18, time: 14:30:00}到这里你的第一个实时行情就拿到了。整个过程 10 秒以内值得留意的是real()的参数必须是字符串写成数字000001会直接报错因为库内部依赖字符串前缀来做市场判断。三、从单只到批量获取股票行情的正确姿势real()的入参既支持单个字符串也支持列表所以批量查询和单只查询的写法几乎一样data quotation.real(162411) # 单只基金 data quotation.real([000001, 162411, 600519]) # 多只混查返回结果是一个以股票代码为键的字典键的顺序和传入顺序无关建议用代码去索引而不是依赖顺序。批量场景下有两个数字值得记住单次请求最多 800 只股票超过的部分会自动分批分批后请求通过线程池并发发出而不是逐只串行等待。也就是说你传 50 只和传 500 只耗时不会线性增长。这正是它适合做全市场快照的原因——见后文第五节。四、指数与个股混查prefix 前缀参数的用法这里有一个新手最容易踩的坑。上证指数代码是000001平安银行的代码也是000001六个数字完全一样怎么区分答案是市场前缀sh000001是上证指数sz000001是平安银行。easyquotation 支持直接传入带前缀的代码data quotation.real([sh000001, sz000001], prefixTrue) print(data.keys()) # dict_keys([sh000001, sz000001])注意prefixTrue这个参数它决定返回字典的键是否带市场前缀。如果你同时查指数和同名个股却忘了传prefixTrue两个000001就会互相覆盖安静地丢掉一半数据。反过来如果只查个股prefix保持默认的False即可返回的键就是纯六位代码处理起来更清爽。规则一句话总结混查指数和个股时务必prefixTrue只查个股时随意。五、全市场行情快照200 毫秒背后的设计思路很多场景需要的不是一两只股票而是整个市场。此时用market_snapshot()all_data quotation.market_snapshot(prefixTrue) print(len(all_data)) # 数千只股票这一下会返回 A 股全市场的实时行情。网络正常时整个流程只需要200 多毫秒——这个数字不是夸大它的来源是库内的几个设计决策初始化即加载代码表use(sina)时会读取内置的stock_codes.conf一次性生成好带前缀的代码清单后续请求零准备时间代码拼接代替逐只请求800 只以内的一次 HTTP 请求里塞进全部代码把请求次数压到最少线程池并发超过 800 只时自动切分多个分片并行拉取再把结果合并会话复用底层使用requests.Session连接被反复利用省掉重复握手的开销。理解了这套设计你就知道为什么同样是免费接口easyquotation 用起来明显更跟手。需要提醒的是免费接口没有 SLA请把轮询频率控制在 3 秒以上避免对上游造成压力遇到休市时段返回的数据可能为空或缺失代码里记得做空值判断。六、股票代码库自动更新跟上新股上市的节奏新股不断上市、老股偶尔更名内置的代码表stock_codes.conf会随时间慢慢过时。如果你发现全市场快照里少了新上市的股票只需要一行代码更新import easyquotation easyquotation.update_stock_codes()它会从远端拉取最新的代码表并写回本地文件之后新建的quotation实例就会包含新代码。如果你只想在程序运行时临时拿一份最新列表而不落盘可以这样from easyquotation import get_stock_codes codes get_stock_codes(realtimeTrue) # 强制联网获取建议把更新动作做成每周一次的计划任务成本极低却能避免新股缺席这类隐蔽的数据问题。七、新浪行情接口避坑清单与常见问题把最容易出问题的地方集中列出来遇到报错时先对照一遍代码必须是字符串real(1)会断言失败要写real(000001)市场前缀是自动判断的43/83/87/92开头归北交所5/6/7/9/110/113/118/132/204开头归上交所其余默认深交所。你也可以直接传sh600000手动指定优先级更高prefix的语义别搞反它控制返回键带不带前缀不是控制请求带不带前缀旧接口已弃用all、all_market、stocks都会触发弃用警告统一改用real()和market_snapshot()裸调新浪接口可能被拒接口校验Referer请求头库已经帮你处理好了不建议绕过库自行拼接close是昨日收盘价别拿它当今天的收盘价用涨跌幅要靠(now - close) / close计算数据为空先别怀疑代码先确认是否休市、停牌或者代码是否带错了市场前缀。八、立刻能落地的三个使用场景自建盯盘提醒定时调用real()扫描自选股价格突破阈值时通过企业微信或邮件通知自己摆脱手动盯盘量化策略的数据源用market_snapshot(prefixTrue)定期抓全市场快照落库作为选股策略的输入配合get_stock_codes(realtimeTrue)保持标的池新鲜教学与数据分析在课堂演示中 200 毫秒拉一份全市场快照比截图生动得多也可以定时采集存档做成交分布、波动率之类的统计研究。动手30 秒拿到你的第一份行情现在打开编辑器把第二节那段代码原样贴进去跑一遍30 秒内你就能看到第一份带五档盘口的实时行情。跑通之后试着把real(000001)换成market_snapshot(prefixTrue)感受一下全市场快照的速度再对照第七节的避坑清单排查可能遇到的问题。数据源有了剩下的就是你自己的想象力了。【免费下载链接】easyquotation实时获取免费股票行情支持新浪 / 腾讯(港股) / 集思录项目地址: https://gitcode.com/gh_mirrors/ea/easyquotation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表