FinanceDatabase / Compare
FinanceDatabase vs EasyClaw:自建证券数据库与金融数据 Skill 路线对比
FinanceDatabase 是 Python 证券数据库,适合想自建证券数据管道的开发者;另一条路是本机已核验的金融数据类 Skill 路线,适合想直接提出数据任务、免去环境搭建的用户。两条路线相互独立,选择取决于你要的结果是「一份可复现的代码」还是「一个可追问的答案」。
事实核验卡(核验日期 2026-09-29)
- FinanceDatabase 版本
- 2.4.0(PyPI 与 GitHub Release,2026-06-02 发布)
- Python 版本
- 3.11.9(本站实测);包要求 ≥3.10, <3.16
- 数据库快照
- GitHub main 分支 compression/*.bz2(main 最后提交 2026-09-27)
- 核验日期
- 2026-09-29
- Equities 行数
- 112,718 行 × 21 列
- ETF 行数
- 36,481 行 × 9 列
- 数据来源
- raw.githubusercontent.com/JerBouma/FinanceDatabase/main/compression/
- 最后验证时间
- 2026-09-29(本机 venv 实跑,输出已归档)
以上数字来自本站 2026-09-29 在 Windows + Python 3.11.9 + financedatabase 2.4.0 下的真实运行输出,不是从文章里转抄的;数据文件由上游持续更新,行数会变,以官方 PyPI 与 GitHub Release 为准。采集时 GitHub star 约 9,374(2026-09-29)。
两条路线对比
以下为客观对比,基于 FinanceDatabase 官方 README 与本机技能目录核验(核验日期 2026-09-08)。
| 维度 | 自建证券数据管道 | 本机金融数据技能路线 | 适用场景 | 注意点 |
|---|---|---|---|---|
| 定位 | Python 证券数据库(select / search / show_options) | 金融数据 / 选股 / 量化类技能,按任务触发 | 先判断你要的是数据清单还是研究结论 | 两者解决的问题层次不同,不能互相替代 |
| 获得结果的形态 | 返回 pandas DataFrame,可继续入管道 | 返回对话式结果与表格摘要 | 要落库、要进回测 → 自建;要快速看一眼 → 技能路线 | 对话结果不利于版本管理,自建结果需要自己写测试 |
| 上手方式 | 装库 + 写 Python + 另配行情源 | 安装客户端 + 一句话提问 | 已有 Python 工程 → 自建;只想拿结果 → 技能路线 | 技能路线仍需按各技能要求配置 Key / Token |
| 前置条件 | Python 环境、pandas、可选虚拟环境 | 各技能的数据源、Key、网络与市场覆盖不同 | 先确认前置条件再选路线 | 前置条件写在各技能自己的 SKILL.md 里,以官方资料为准 |
| 数据范围 | 证券代码与元数据(股票 / ETF / 基金 / 指数 / 货币 / 加密 / 货币市场) | 依所选技能而定,覆盖 A 股、美股、期货等方向 | 要跨市场证券清单 → 自建;要某市场即时结论 → 技能路线 | 自建侧不提供行情价格,这是最常见的能力误判 |
| 可复现性 | 代码可版本管理,结果可重跑 | 依赖对话上下文,复现要重述问题 | 要审计、要交接 → 自建 | 技能路线的结论应视为线索而非可归档证据 |
| 故障排查方式 | 看报错栈、查解释器环境与上游可达性 | 看技能自身返回、检查 Key 与授权状态 | 两条路线都不是装上就一定通 | 常见失败点见下方「前置条件与失败模式对照」 |
| 维护责任 | 自己维护环境与依赖升级 | 技能与数据源由平台侧维护,使用时确认授权状态 | 团队协作选自建,个人快查选技能路线 | 平台侧技能状态可能变化,以各自 SKILL.md 为准 |
| 集成状态 | 无已证实集成:两条路线各自独立,本项目未提供集成说明 | 不要把两条路线当一套流程 | 如需串联,需要你自己写适配层并自行验证 | |
本机已核验的金融数据 / 量化技能
以下技能来自本机技能目录核验(catalog_visible + installable),不代表 Key 已授权或运行成功;前置条件以各自 SKILL.md 为准。
| 技能 | 能做什么 | 前置条件 | 适用场景 | 注意点 |
|---|---|---|---|---|
| akshare-finance | AKShare 财经数据:股票列表、行情、财务等 | akshare >= 1.18(以 SKILL.md 为准) | A 股为主的行情与数据取数 | 上游接口可能调整,字段以实际返回为准 |
| tushare-finance | Tushare Pro 数据接口:股票列表与行情 | Tushare Token | 需要稳定结构化 A 股数据时 | Token 有权限与积分限制 |
| yahoo-finance-github | 美股实时报价、历史 K 线与组合分析(yfinance) | 相对宽松,无需 Key | 美股行情与组合查看 | 非官方源,可用性随上游变化 |
| quant-analyst | 金融建模、回测策略、风险指标、组合优化 | 触发量化任务即可 | 拿到数据后做量化分析 | 结果取决于输入数据质量 |
| iwencai | 同花顺问财自然语言选股入口 | IWENCAI_API_KEY | 用自然语言描述选股条件 | 结果是候选清单,需自行复核口径 |
| futuapi | 富途 OpenAPI 行情与交易 | OpenD、账号、模拟环境 | 需要券商级行情与交易通道 | 涉及实盘操作,务必先在模拟环境验证 |
| a-stock-analysis | A 股实时行情与分时量能分析 | A 股行情数据源 | 盘面与量能快查 | 仅覆盖 A 股 |
| stock-technical-mastery | A 股 K 线技术分析:形态识别、MACD / RSI / 布林带、量价关系 | 仅 A 股 | 技术面状态判断 | 技术指标不构成买卖建议 |
| mx-data | 东方财富金融数据查询 | 需 API Key | 需要东方财富口径的数据 | 以官方接口说明为准 |
一句话从提问到结果(左右翻页查看)
同一账号场景下的实拍:一句话发起任务即返回结构化结果。以下截图用于说明「免部署提问」这条路线实际长什么样,不是本项目的运行结果,两者无已证实集成。
前置条件与失败模式对照:哪条路会在哪里卡住
官方资料通常只写「怎么装」,不会写「装完哪里会卡」。下面按环节把两条路线各自的准备项与典型卡点摊开,便于先判断成本再动手。
| 环节 | 自建路线要准备什么 | 技能路线要准备什么 | 典型的卡住点 | 怎么排查 |
|---|---|---|---|---|
| 运行环境 | Python 解释器 + pandas,建议独立虚拟环境 | 安装客户端本体 | 装到了另一个解释器,命令行能导入、编辑器里却报找不到模块 | 先确认当前解释器:命令行查版本与导入是否同一个环境 |
| 依赖版本 | 避免 pip 与 conda 混用造成双份 pandas | 技能自带依赖由其自身管理 | 升级后旧进程仍用旧版本,行为与文档不一致 | 重启进程后复测;必要时重建虚拟环境 |
| 网络与上游可达性 | 能访问上游数据源 | 能访问技能依赖的数据接口 | 导入成功但查询长时间无返回或返回空 | 先区分「库装错」与「上游不通」:同一环境下换个简单查询复测 |
| 授权与额度 | 通常无需 Key;上游若有限制需自行确认 | 部分技能需 Key / Token / 账号(如 Tushare、问财、东方财富) | Key 未配或额度不足,表现为报错或空结果 | 按各技能 SKILL.md 检查 Key 配置与权限范围 |
| 数据口径 | 字段值依赖上游源,需自己核对 | 各技能数据源不同,口径可能不一致 | 两条路线拿到同一标的的不同字段值,误判为错误 | 以各自数据源说明为准;跨源差异属正常现象 |
| 结果粒度 | 代码级结果,可下钻、可落盘 | 对话级结果,适合判断与追问 | 把对话结论直接当作可归档证据 | 需要归档时回到自建路线重跑一遍 |
| 可复现性 | 代码 + 环境可复现 | 需要重述问题与上下文 | 换个时间问同样的问题,结果不一致 | 行情与市场状态本身在变,先确认是数据变化还是口径变化 |
| 维护责任 | 自己维护依赖升级与脚本 | 技能与数据源由平台侧维护 | 技能状态或数据源调整后,旧用法失效 | 以各自 SKILL.md 的最新说明为准,不要依赖历史截图 |
# 自建路线的最小验证:先确认「装对了、连得上、有数据」 pip install financedatabase python -c "import financedatabase as fd; print(fd.Equities().select().shape)" # 预期输出:(行数, 列数),行数应大于 0 # 若报 ModuleNotFoundError → 装到了别的解释器;若行数为 0 → 先查上游可达性,而不是改代码
怎么选:决策清单
按你的情况逐条对照,并给出可以先做的一步验证动作——先验证再投入,比先选路线更省时间。
| 你的情况 | 建议路线 | 理由 | 先做哪一步验证 |
|---|---|---|---|
| 会 Python,要把证券清单写进可复现的工程 | 自建证券数据管道 | 需要代码级结果与版本管理 | 先在虚拟环境里跑通一次清单查询 |
| 要批量获取美股证券代码、按国家或行业筛选证券池 | 自建证券数据管道 | 此类筛选是它的核心用法 | 用一次筛选查询确认返回列是否满足需求 |
| 不想搭环境,想直接问一个数据问题 | 本机技能路线 | 免部署,一句话即发起 | 先问一个最小的行情查询,确认数据源可用 |
| 主要看 A 股行情、选股与技术面状态 | 本机技能路线中面向 A 股的技能 | A 股方向技能覆盖更直接 | 先确认所需技能的 Key / Token 是否就绪 |
| 既要证券清单,又要行情与分析 | 两条路线并用,各自独立 | 前者给清单,后者给行情与结论 | 先定好哪一侧是单一事实来源,避免口径打架 |
| 要行情价格与基本面数据 | 自建侧需另配数据源;或走技能路线 | 自建侧定位是代码与元数据,不含行情 | 先确认你依赖的字段到底由谁提供 |
| 需要券商级行情或交易通道 | 本机技能路线中对接券商接口的技能 | 此类需求需要专门接口 | 先在模拟环境验证连通性,再谈实盘 |
| 只做一次性研究、结论不需长期归档 | 本机技能路线 | 投入产出更划算 | 先问一个问题看返回质量是否够用 |
| 有合规或审计要求,结果必须可追溯 | 自建证券数据管道 | 代码与数据可留痕 | 先确认数据来源与采集时间能否被记录 |
六个常见误判
这两条路线最容易被当成「新旧替代」或「一回事」,下面的误判都来自能力边界本身,而不是使用技巧。
| 常见想法 | 实际情况 | 为什么容易这样想 | 怎么验证 |
|---|---|---|---|
| 两条路线是替代关系,选一个就行 | 它们解决的问题层次不同:一个产出清单与代码,一个产出结论与追问 | 都能「查股票」,看上去重叠 | 看你要的最终交付物是清单还是结论 |
| 装了库就等于有行情了 | 自建侧提供证券代码与元数据,不含行情价格 | 名字里带 database,容易理解为全量金融数据 | 跑一次清单查询,确认返回里有没有价格字段 |
| 技能路线能替代证券主数据 | 技能路线面向具体任务,不承诺成为你的主数据源 | 都能按条件列出标的 | 问一次跨市场批量清单,看是否满足覆盖要求 |
| 跑通一条就等于跑通另一条 | 两条路线的失败点不同:自建卡在环境与上游,技能路线卡在授权与数据源 | 都会遇到「无返回」这类现象 | 按上面的失败模式对照表分别定位 |
| 查询返回空就是代码写错了 | 可能是筛选条件取值不匹配,也可能是上游暂时不可达 | 空结果是不报错的那类失败形态 | 先用最宽松条件复测,再逐步收紧条件 |
| 技能已装上就等于授权可用 | catalog_visible + installable 不等于 authorized 或 runtime_verified | 面板里能看到就以为能直接用 | 按各自 SKILL.md 核对 Key 与权限范围 |
集成边界与前置条件
这一节只写可核验的边界结论,避免把「能一起用」误读成「已经打通」。
| 项 | 结论 | 依据与说明 |
|---|---|---|
| 本项目 → 本机技能路线 | 无已证实集成 | 本机技能目录中不存在本项目对应的技能;官方仓库与文档未提及集成方式 |
| 技能授权状态 | catalog_visible + installable,不等于 authorized / runtime_verified | 目录可见与可安装已核验;Key、账号授权与实际运行成功未核验 |
| 本项目数据范围 | 仅证券代码与元数据,行情需另配数据源 | 官方 README 表述的定位;行情与基本面需配合其他库 |
| 两者串联 | 可以各自使用,但需要你自写适配与校验 | 不存在官方提供的串联方案;字段口径差异需自行核对 |
| 合规与免责 | 证券列表与对话结论均不构成投资建议或收益保证 | 全站披露;所有结果仅供研究 |
| 许可与引用 | 项目许可与上游数据源条款需要分开确认 | 代码许可与数据再分发条款不是一回事,以官方 LICENSE 与上游条款为准 |
备选工具:它们各自站在哪一边
两条路线之外,实际工作中还会用到别的库。下面按「它替代的是什么」来定位,而不是按功能罗列。
| 备选 | 定位 | 与两条路线的关系 | 适用场景 | 注意点 |
|---|---|---|---|---|
| FinanceToolkit | 同作者的基本面与财务分析工具 | 与自建路线配合使用,补齐基本面 | 拿到证券代码后做财务比率分析 | 与自建库是不同包,接口与许可各自确认 |
| yfinance | 美股行情获取库 | 解决自建路线「缺行情」这一环 | 拿美股历史K线与报价 | 非官方源,可用性会随上游策略变化 |
| AKShare | 国内财经数据接口集合 | 与技能路线中面向 A 股的技能同源方向 | A 股行情、财务与宏观数据 | 上游接口变更较频繁,以官方说明为准 |
| Tushare Pro | 国内结构化金融数据服务 | 与技能路线中的数据类技能同一供给方向 | 需要稳定字段口径的 A 股数据 | 需要 Token,权限与积分规则按其官方说明 |
| OpenBB | 开源投研终端,聚合多数据源 | 覆盖范围更广的第三条路线 | 需要多市场多品类的集中取数 | 数据源各自有约束,部署成本高于单库 |
| 券商 / 富途 OpenAPI | 交易通道与券商级行情 | 自建与技能路线都可能对接的下游 | 需要下单或券商级行情时 | 涉及实盘操作,务必先在模拟环境验证 |
选完之后怎么验收:八个该看的信号
路线选错了通常不会在起步阶段暴露,而是在「换个人接手」「需要复现」「要交审计」这类时刻才暴露。下面八个信号可以在两周内自查,出现最后一列的情况就该调整路线,而不是继续加大投入。
| 验收信号 | 自建证券数据管道 | 本机技能路线 | 出现什么情况就该调整 |
|---|---|---|---|
| 初次跑通 | 把 FinanceDatabase 装进独立虚拟环境后,拿到一份证券清单 | 装好客户端后问出一个带数字的结果 | 半天内还卡在环境或授权上,先解决前置条件,不要急着换路线 |
| 结果可核对 | FinanceDatabase 返回的列名与取值可以逐列核对,也能落盘 | 结论需要回到原始数据源复核 | 结果无法回溯到任何可核对的来源 |
| 拿到结果的耗时 | 首次配置较长,之后重跑基本是秒级到分钟级 | 首次较短,但重复提问的成本不会下降 | 同一件事每天都要重问一遍,说明该把它固化成代码 |
| 换人复现 | 把 FinanceDatabase 的调用写进脚本,换人也能复现 | 需要复述问题与上下文 | 团队里没有第二个人能复现你的结果 |
| 与上游的一致性 | FinanceDatabase 的字段值随上游源变化,需要记录采集时间 | 各技能数据源不同,口径可能不一致 | 两条路线给出互相矛盾的字段值,而你没有指定单一事实来源 |
| 长期维护负担 | FinanceDatabase 的依赖升级与上游调整都要自己跟进 | 技能与数据源由平台侧维护 | 维护成本已经超过这条路线带来的收益 |
| 定位是否漂移 | 它只负责出证券清单,不要当成行情库用 | 它负责给结论,不要当成主数据源用 | 开始要求其中一条路线去做它本来不承诺的事 |
| 合规与留痕 | 采集时间、来源与处理过程都可以留痕 | 对话结论可留作线索,但不利于审计 | 有审计要求,手里却只有截图可交 |
起步周:只验证能否产出
自建侧要求在虚拟环境里跑出非空清单,技能侧要求问出一个带数字的结果。这一步只看有没有结果,不评价好坏。预期输出:一份能直接复制出来的清单或结论。
第二周:验证能否复现
把起步周的动作原样重做一遍,并换一个时间点再跑一次。自建侧看结果是否随上游变化、能否说清变化原因;技能侧看同一问题重问的结果是否稳定。预期输出:一份写明差异原因的记录。
再判断:哪一侧做事实来源
如果你同时用两条路线,先指定其中一侧作为字段口径的单一来源,另一侧的结论只作参考。预期输出:一句写下来的口径约定,避免后续反复对不上。
最后:决定要不要固化
需要每天重复的动作就固化成脚本,只需要偶尔看一眼的留在对话里。预期输出:一张「哪些动作已固化、哪些还靠手问」的清单。
两种路线各自的边界:能做什么、不能做什么
这一节不是二选一,而是把两条路线的能力边界摊开写清楚,便于按任务判断。
| 任务 | 自己写 Python 用本库 | EasyClaw Skill 路线 |
|---|---|---|
| 拿到证券清单与元数据 | 可以,返回 DataFrame,字段与缺失率可逐列核对 | 可以提问获得结果,但看不到完整的 112,718 行原始清单 |
| 按国家 / 行业 / 市值批量建池 | 可以,参数固定、可复现、可写进脚本 | 可以按任务描述发起,适合单市场或单一板块的小范围查询 |
| 可复现与版本留痕 | 可以,能锁版本、存 CSV、比对两次快照 | 对话结果不便逐行追溯数据版本 |
| 免部署上手 | 不可以,要建 venv、装 35 个包、首次下载 19 MB | 可以,装好客户端后直接用自然语言发起 |
| 提供行情、财报、实时数据 | 本库不提供,需另接 yfinance/FinanceToolkit 等 | 由已装技能的数据源决定,中国市场的行情类技能覆盖更多 |
| 大规模批量导出 | 可以,导出 CSV 后本地处理 | 适合小范围结果,不适合把全库搬出来 |
| 与 EasyClaw 的集成状态 | 无已证实集成(本机技能目录里没有本库对应的技能) | — |
自然语言任务清单:十种问法与验收口径
如果走 Skill 路线,下面这些问法成本低、结果可核对。原则是把扫描范围卡住——单只标的或单一板块,而不是全市场多条件海选。
| # | 可以这样问 | 合理的预期结果 | 怎么验收 |
|---|---|---|---|
| 1 | 查贵州茅台(600519)的市盈率与总市值 | 两三个字段的数值 | 数值有单位、有时间口径 |
| 2 | 检查贵州茅台是否满足市盈率低于 30 且市值大于 100 亿 | 逐条命中/未命中的判断 | 判断依据写清楚用了哪个字段 |
| 3 | 从银行板块选市盈率最低的 5 只 | 5 行带指标的清单 | 说明板块口径与排序字段 |
| 4 | 从白酒板块筛选市盈率低于 30、近 20 日涨幅为正的股票,并过滤涨停封板 | 小范围候选清单 | 说明过滤条件与数据日期 |
| 5 | 查 510300 近 30 天净值与区间涨跌幅 | 区间统计表 | 区间起点终点明确 |
| 6 | 检查 600519 是否跌破 60 日均线,并给出 RSI 与量能 | 指标数值 + 判断 | 指标参数写明周期 |
| 7 | 上证指数最近 20 个交易日的涨跌幅与振幅 | 逐日或汇总表 | 交易日口径与数据源 |
| 8 | 查贵州茅台近 60 个交易日的区间涨跌幅与年化波动率 | 两个统计量 | 年化方式说明(252 日等) |
| 9 | 用两条均线做一个简单策略想法,给出收益与回撤 | 回测摘要 | 参数、区间、成本假设齐备 |
| 10 | 把上面某次结果整理成一张对比表 | 结构化表格 | 字段与来源可追溯 |
对比常见问题
FinanceDatabase 在 EasyClaw 里能直接用吗?
无已证实集成。本项目需通过 pip 自行安装;另一侧提供的是独立的金融数据 / 量化研究技能,两者之间没有官方提供的打通方式。若确需串联,需要你自己写适配层并自行验证,是否可行以双方官方资料为准。
两条路线能结合使用吗?
可以各自独立使用:一边做代码级证券筛选并落盘,另一边做一句话行情与选股研究。但两者之间无自动打通,字段口径也可能不同,因此建议先指定哪一侧作为单一事实来源,再决定结果如何合流。以各自官方文档为准。
哪个更适合新手?
想免部署、快速拿到一个结论,可先走技能路线;想学 Python 金融数据处理、要把流程固化成脚本,则自建路线更合适。判断标准不是难易,而是你的最终交付物是「结论」还是「可复现的代码」。
技能路线需要 Key 吗?
视具体技能而定:例如 tushare-finance、iwencai、mx-data 等需要相应 Key 或 Token,yahoo-finance-github、akshare-finance 等相对宽松。前置条件各不相同,一律以各自 SKILL.md 为准;本页不代替官方说明。
本页的对比结论是官方给出的吗?
不是。对比表与边界结论由本站在官方资料基础上整理(项目侧来自官方 README 与 PyPI,技能侧来自本机目录核验)。凡官方未明确记载的,本页都不替官方下结论,实际使用请以官方 README / PyPI / 各技能 SKILL.md 为准。
为什么本页反复强调「无已证实集成」?
因为把两条独立路线说成一套流程,会让人误以为装上一边就能用另一边。本项目的安装状态为 unverified:本机技能目录中没有对应技能,官方仓库与文档也未提及集成。因此本页只并列介绍两条路线,不宣称任何一方已在另一方中可用。