2026/8/18 15:02:07

股票、基金、债券、期货数据一次拿齐:efinance 金融数据获取实战指南

股票、基金、债券、期货数据一次拿齐:efinance 金融数据获取实战指南 股票、基金、债券、期货数据一次拿齐efinance 金融数据获取实战指南【免费下载链接】efinanceefinance 是一个可以快速获取基金、股票、债券、期货数据的 Python 库回测以及量化交易的好帮手项目地址: https://gitcode.com/gh_mirrors/ef/efinanceefinance 是一个免费开源的 Python 金融数据获取库帮你在股票、基金、债券、期货四个市场之间用同一套代码习惯拿数据所有结果统一以 pandas DataFrame 返回。这篇文章会带你从一个普通投资者的视角出发从安装开始一步步把看行情、查持仓、筛可转债这些真实需求跑起来读完你就能搭出自己的数据小工具。数据不该是拦路虎为什么你需要一个轻量数据源先描述一个你可能很熟悉的场景周五晚上想复盘一周的持仓你打开股票软件看 A 股切到基金网站查净值再去期货论坛翻行情最后对着可转债表格手动算涨幅……四个网站、四套界面、四种导出格式等你把数据拼到一张表里一个小时已经过去了。这正是 efinance 想解决的问题。它把从东方财富网取数据这件事封装成几个简短函数你不需要注册任何账号、申请任何 API 密钥pip装完就能用。返回的数据统一是 DataFrame列名规范、可直接参与 pandas 计算配合画图、筛选、排序都很顺手。各模块的常用入口先记个印象即可模块常用函数典型用途ef.stockget_quote_history / get_latest_quote / get_daily_billboard历史K线、自选股快照、龙虎榜ef.fundget_quote_history / get_invest_position / get_base_info净值走势、持仓透视、基金资料ef.bondget_realtime_quotes / get_quote_history可转债全市场行情、个券K线ef.futuresget_futures_base_info / get_quote_history合约清单、主力合约历史行情 数据的价值不在于有没有而在于能不能随手拿到。efinance 把这道门槛挪开了。第一关从基金净值开始的第一份数据安装只有一条命令环境干净的话几分钟内就能完成pip install efinance以后想升级就加个参数pip install efinance --upgrade。如果你偏好容器化运行项目还提供了 Dockerfile细节可以看 docs/install.md。装好后我们拿一只最常见的指数基金练手。这段代码做的事情很简单拉取某只白酒指数基金的历史净值看看它最近的表现和均线import efinance as ef # 招商中证白酒指数(LOF)A代码 161725 net ef.fund.get_quote_history(161725) # 返回的是 DataFrame日期、单位净值、累计净值、涨跌幅 print(net.tail()) print(近一年净值涨幅, (net[单位净值].iloc[-1] / net[单位净值].iloc[-252] - 1) * 100, %)两处值得留意一是所有接口都返回 DataFrame不用自己去解析网页拿到就能直接算二是get_quote_history对股票、债券、期货同样适用只是参数略多。常用的两个参数是klt周期和fqt复权klt101是日线换成 102、103 就是周线和月线做日内分析则传 1、5、15、30、60 这类分钟数做技术指标前记得把fqt的复权方式选好避免除权跳空干扰计算。 第一份数据到手你就已经越过了新手村的门槛——剩下的事情都是往这个模板里加料。第二关把自选股清单变成实时行情快照净值是事后数据平时盯盘更想要当下的行情。假设你维护着一个自选股清单文件watchlist.txt每行一个代码下面这段代码会一次性把它们全部拉回来并按当日涨跌幅排序import efinance as ef # 读取自选股清单每行一个股票代码 with open(watchlist.txt, encodingutf-8) as f: codes [line.strip() for line in f if line.strip()] # 一次请求批量获取这些股票的最新报价 snapshot ef.stock.get_latest_quote(codes) # 按涨跌幅排序看看今天谁最活跃 hot snapshot.sort_values(涨跌幅, ascendingFalse) print(hot[[股票名称, 最新价, 涨跌幅]].head(10))get_latest_quote接收一个代码列表正好对应自选股这个天然需求返回后借助 pandas 的sort_values就能完成排序。类似的实时能力还有几个get_realtime_quotes()直接返回整个沪深市场的实时行情几千行适合做全市场扫描get_today_bill(300750)给出某只股票当日分钟级的主力资金净流入get_daily_billboard()则能拉取龙虎榜传入起止日期即可查看某个时间段的上榜记录。 从看单只到看一组只差一个列表参数的距离这就是批量的价值。第三关让可转债与期货也进入你的视野盯完股票不妨把目光投向另外两个市场。可转债是很多人的低波动打新选择但全市场几百只券靠肉眼翻太累。下面的代码用三行筛选出涨得凶又换手活跃的券import efinance as ef # 获取全市场可转债实时行情 bonds ef.bond.get_realtime_quotes() # 筛选涨幅超过 3% 且换手率超过 10% 的活跃券 active bonds[(bonds[涨跌幅] 3) (bonds[换手率] 10)] active active.sort_values(换手率, ascendingFalse) print(active[[债券名称, 最新价, 涨跌幅, 换手率]])逻辑和你手动筛选完全一致只是把翻网页换成了 pandas 的布尔索引改个阈值就能反复用。期货市场同理ef.futures.get_futures_base_info()能列出交易所全部合约与行情ID拿到 ID 后ef.futures.get_quote_history(115.ZCM)即可取得动力煤主力合约的日线如果传一个 ID 列表返回的会是一个以 ID 为键的字典方便你同时对比多个品种。基金这边还有一个很实用的视角——持仓透视。ef.fund.get_invest_position(161725)返回这只基金最新公开的前十大重仓股及占比再配合ef.fund.get_base_info([161725])拿到基金规模、经理等资料你就能回答我买的基金到底买了什么这个问题。 四个市场共用同一套取数 DataFrame 处理的心法学会一个就等于学会四个。第四关绕开常见的坑让脚本稳定运行新手阶段最容易踩的坑其实翻来覆去就那么几个提前知道能省下不少排查时间。坑一批量请求返回的不是一张表而是一个字典。股票、基金、债券的get_quote_history传单个代码返回 DataFrame传列表则返回字典需要按代码去取比如result[600519]。写代码前先确认入参是字符串还是列表返回值类型完全不同。坑二日期参数有自己的脾气。股票、债券、期货的get_quote_history支持beg和end限定区间格式是20240101这种紧凑写法带横线反而会报错。基金接口没有区间参数只有数量上限pz别混用。坑三全市场行情是一张几千行的大表。get_realtime_quotes()第一次跑出来会把你吓一跳几千行数据直接print会刷屏。正确姿势是先筛选、排序再取前几行输出内存和眼睛都轻松。坑四接口偶尔闹脾气。密集请求时可能遇到限流或连接超时这不是代码 bug是数据源在喘气。解决办法很简单循环里加个time.sleep(1)之类的小间隔必要时做一次重试要是长期大量使用README 里也提到了可选的替代数据源 TickFlow可以留意。坑五列名是中文。返回的列叫涨跌幅最新价而不是 change_pctprice用英文列名取值会报 KeyError。习惯中文列名后反而省事——拿到表就能直接读懂每一列的含义。 踩坑不可怕可怕的是同一个坑踩两次。把上面五条记进你的排雷清单脚本会稳很多。下一步从今天开始动手到这里你已经走完了从安装到实战的完整闭环。接下来最有效的做法是拿自己的真实需求练一遍执行pip install efinance跑通上面任意一段代码把watchlist.txt换成你自己的自选股体验批量快照打开四个市场的示例 Notebookexamples/stock.ipynb、examples/fund.ipynb、examples/bond.ipynb、examples/futures.ipynb照着改参数理解每个函数能干什么需要查全部函数签名时翻 docs/api.md想知道版本更新了什么看 changelog.md想读源码、做二次开发可以git clone https://gitcode.com/gh_mirrors/ef/efinance把仓库拉下来研究。最后提醒一句工具本身是为了帮你节省时间、看清数据不代表任何投资建议。所有数据仅用于学习研究实盘决策请务必独立判断并做好风险控制。 今天装一个库、跑通一段代码明天你就有能力把自己零散的投资想法变成看得见的数据表格——这就是最好的开始。【免费下载链接】efinanceefinance 是一个可以快速获取基金、股票、债券、期货数据的 Python 库回测以及量化交易的好帮手项目地址: https://gitcode.com/gh_mirrors/ef/efinance创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考