Stock_Analysis_For_Quant / 环境与最小运行
Stock_Analysis_For_Quant 在 Windows 上怎么跑起来:先装什么、先跑哪个文件
官方 README 只写了一段软件版本要求(Python 3.5+、R 3.0.0+、Matlab R2016a、Excel 2016 或更新、Power BI、Tableau),然后就没有下文了——既没有 requirements.txt,也没有安装命令,更没有「先跑哪个文件」的说明。1,221 个示例文件里,每个 notebook 与 R 脚本各用各的库,所以环境这件事必须自己动手。
这一页解决三件事:① 官方要求与实际需要的东西差在哪;② 怎么按目录反推依赖(三步法,附可复制的扫描命令);③ 装完之后先跑哪个文件最不容易卡住。所有涉及本机未验证的部分都会明确标注,商业软件部分不做实测承诺。
要先说明一件事:这份清单是本站按固定提交逐个目录点出来的,官方资料里没有同等的说明。你在别处看到的「先装 Anaconda 再跑示例」这类建议,多数出自二手转述,与本仓库实际的文件构成并不对应——仓库里既没有环境文件,也没有统一入口,先看清文件再说安装顺序才省时间。
要装什么、谁装不了
官方只写了软件版本:Stock_Analysis_For_Quant 的前置要求 vs 实际需要什么
左列是官方 README 的原话,右列是照这个要求去做时真正会撞到的东西。差异不在软件版本,而在「库」。以官方仓库当前状态为准。
| 工具 | 官方只写的版本要求 | 实际还需要自备什么 | 常见卡点 |
|---|---|---|---|
| Python | Python 3.5+ | 按 notebook 的 import 自装 yfinance、pandas、talib、ta、statsmodels 等;官方 README 另提过 Anaconda、Spyder、Jupyter Notebook、PyCharm 这类工具 | 不知道要装哪些库——因为仓库不提供依赖清单 |
| R | R 3.0.0+ | install.packages() 装 quantmod,另按脚本补 magrittr、dplyr、forecast 等 | 脚本是「一个指标一个文件」,依赖分散在 335 个 .R 里 |
| Excel | Excel 2016 或更新版本 | 无额外库;但 VBA 宏工作簿需要允许宏运行 | 企业策略可能直接禁止宏,7 个 .xlsm 会打不开宏 |
| Matlab | Matlab R2016a | 无额外包;但需要 Matlab 授权 | 商业软件,本机无授权,本站未实测 |
| Power BI | Power BI | 需要 Power BI Desktop 打开 11 个 .pbix | 商业软件;打开后还要自己认数据模型与刷新设置 |
| Tableau | Tableau | 需要 Tableau 打开 7 个 .twbx | 商业软件;打包工作簿内含数据,版本兼容性需自行确认 |
| 全部 | — | 一个你自己维护的依赖清单文件 | 仓库里确实没有任何依赖清单,这是本站建议你补的第一件事 |
没有依赖清单怎么办:Stock_Analysis_For_Quant 的依赖反推三步法
既然官方不给清单,就从你要跑的那个文件本身反推。下面三步只用系统自带的搜索工具,不需要装任何东西。
先扫出这个目录里所有 import
在仓库根目录执行:
findstr /s /i /c:"import " Python_Stock\*.ipynb > imports.txt(R 侧把目标换成R_Stock\*.R,关键字换成library()。预期输出:一份包含大量重复行的文本;再人工去重,通常收敛到 8–15 个第三方库。注意import也会命中标准库,像os、math这类不用装。过滤掉标准库与仓内相对导入
把上一步的结果与 Python 内置模块表对比,剔除
os/sys/math/datetime/json/random等,剩下的就是第三方库。预期输出:一份 5–10 行的候选清单。这一步没有捷径,因为仓库没有声明,只能靠读。逐个装并当场验证导入
对每个候选库执行
python -c "import 库名"确认是否已装,再执行python -m pip install 库名。预期输出:导入命令不报错、退出码为 0。本站下方的探测区块就是把这三步里的验证环节真实跑了一遍,可以看到「有的已装、有的缺失」是常态。
| 你会在仓库里扫到的库 | 用在哪一侧 | 装法 | 注意点 |
|---|---|---|---|
yfinance | Python 侧取数(YFinance_Tutorial.ipynb) | python -m pip install yfinance | 第三方数据渠道,可能限流或调整接口,取数失败先怀疑渠道 |
talib | Python 侧技术指标 | python -m pip install TA-Lib(Windows 上多为预编译轮子) | 二进制轮子对 Python 与 numpy 版本敏感,装不上先看轮子支持范围 |
ta | Python 侧技术指标(另一套实现) | python -m pip install ta | 纯 Python 实现,与 talib 是两套库,指标名不完全对应 |
quantmod | R 侧取数与技术分析 | R 控制台执行 install.packages("quantmod") | 首次编译可能较慢;R 侧同样没有 DESCRIPTION/renv.lock |
statsmodels | Python 侧时间序列与统计 | python -m pip install statsmodels | 会连带解析 numpy/pandas 版本,注意与你已有环境是否冲突 |
matplotlib | 两侧出图 | python -m pip install matplotlib | 中文字体需自行配置,否则图上中文会变方块 |
requirements.txt(R 侧写成一段安装脚本)。原因是 Stock_Analysis_For_Quant 不会随版本更新替你维护依赖,而它现在的最后提交停在 2025-05-04;等你半年后再打开同一个 notebook,能复现环境的唯一依据就是当时记下的版本。这一步花五分钟,能省掉后面每次重装时的重新猜测。本站本机探测输出:依赖要一个个核对,有的装了有的没装
下面这段是本站核验时在 Windows 上真实跑出来的输出,原样保留(含退出码)。它不是项目官方输出,也不代表仓库有问题,只说明一件事:库得你自己核对。
$ python -V Python 3.11.9 [exit code 0] $ python -c "import yfinance" [exit code 0] $ python -c "import talib" [exit code 0] $ python -c "import ta" Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'ta' [exit code 1] $ python -c "<check imports and versions>" yfinance 0.2.58 talib 0.7.1 pandas 2.2.3 numpy 2.4.6 matplotlib 3.11.1 statsmodels 0.14.6 sklearn 1.9.0 [exit code 0]
图注:本站本机输出(Python 3.11.9,Windows,2026-09-30 实跑):可导入 yfinance 0.2.58、talib 0.7.1、pandas 2.2.3、numpy 2.4.6、matplotlib 3.11.1;ta 缺失并抛出 ModuleNotFoundError。这不是项目官方输出,也不代表仓库有问题——它说明的是:本仓库不提供依赖清单,每个 notebook 用到的库都要你自己逐个核对后再补装。
| 探测项 | 看到的输出 | 说明什么 | 你要做什么 |
|---|---|---|---|
| 解释器版本 | Python 3.11.9,退出码 0 | 运行时能起来,与官方要求的 3.5+ 不冲突 | 确认你自己的解释器版本并记录下来 |
import yfinance | 无输出,退出码 0 | 取数库在核验环境里已就绪(0.2.58) | 你自己环境里没装就先装,再验证导入 |
import talib | 无输出,退出码 0 | 指标库已就绪(0.7.1) | Windows 上装不上时优先找预编译轮子 |
import ta | ModuleNotFoundError: No module named 'ta',退出码 1 | 同一类功能的另一套库缺装——这正是「没有依赖清单」的直接后果 | 需要它就跑一次安装;不用它则跳过 |
| pandas / numpy 版本 | 2.2.3 / 2.4.6 | 版本组合会直接影响二进制库能否导入 | 记录版本,便于复现同一环境 |
| matplotlib / statsmodels | 3.11.1 / 0.14.6 | 出图与统计依赖也已就绪 | 中文字体问题需要单独处理 |
六个工具各自的最小运行路径:先跑哪个文件
环境装好之后不要随机挑文件。下面按「依赖最少、最容易看到输出」的顺序给出每个工具的入口文件,文件名都能在仓库里点到。
| 工具 | 你需要什么 | 建议第一个跑的文件 | 预期看到什么 | 本站状态 |
|---|---|---|---|---|
| Python | Python 3 + 按需装库 | Python_Stock/Stock_Basic_Statistics.ipynb | 基础统计表(均值、标准差一类),不依赖指标库,最容易一次跑通 | 未实测(本站未运行该仓库) |
| R | R 3.0.0+ 与 RStudio | R_Stock/StockSummaryStatistics.R | 摘要统计输出;只依赖 quantmod 一条链路 | 未实测(本站未运行该仓库) |
| Excel | Excel 2016 或更新 | Excel_Stock/Stock_Statistics.xlsx | 可读的统计工作表;不含宏,不会触发安全提示 | 未实测(本站未运行该仓库) |
| Excel 宏 | Excel + 允许宏 | Excel_Stock/Excel_Stock_VBA_Macros/Stock_Calculate_Daily_Returns.xlsm | 按下按钮后由宏算出的日收益列 | 未实测;宏工作簿共 7 个 |
| Matlab | Matlab R2016a + 授权 | Matlab_Stock/DailyReturn.m | 日收益序列与图;该目录仅 4 个代码文件 | 未实测(本机无授权) |
| Power BI | Power BI Desktop | PowerBI_Stock/Stock_Simple_Chart.pbix | 一个最简图表页;先看数据模型再谈改 | 未实测(本机无授权) |
| Tableau | Tableau Desktop | Tableau_Stock/StockLineChart.twbx | 线图工作簿;打包文件内含数据源 | 未实测(本机无授权) |
免费但需要自己装库
Python 与 R 两条线完全免费,代价是依赖要自己反推、自己装。仓库里 575 个 notebook 与 336 个脚本的库清单是不统一的,所以第一步永远是读 import,而不是先装一堆库再说。
免费但有宏门槛
Excel 这一侧不需要额外装库,232 个工作簿里绝大多数是普通 .xlsx;但 7 个 .xlsm 是启用宏的工作簿,企业策略可能直接拦掉,遇到时改用同名的普通工作簿或直接读 VBA 源码文本。
需要授权,且本站未实测
Matlab、Power BI、Tableau 三个目录合计 34 个文件,全部依赖商业软件授权。本站本机没有授权,因此这三部分只写「文件在哪、打开后先看什么」,不写操作步骤截图,也不保证版本兼容性。
八类常见报错与卡点:先看现象,再看该查哪一层
下表按真实会遇到的场景整理。每一行的「先查什么」都指向本页或仓库里可核对的位置,具体报错原文以你本机输出为准。
| 现象 | 最可能的原因 | 先查什么 | 注意点 |
|---|---|---|---|
| ModuleNotFoundError: No module named 'xxx' | 该 notebook 用到的库没装 | 打开文件第一格看 import,再按上方三步法核对 | 这正是仓库无依赖清单的直接后果,不是文件坏了 |
| 导入指标库时提示二进制/dtype 不兼容 | 预编译轮子与你环境的 numpy 版本不匹配 | 对比轮子支持的 Python 与 numpy 范围,再看你本机版本 | 属轮子与环境的组合问题;本站核验环境为 numpy 2.4.6,未复现该报错 |
| 取数返回空表或直接超时 | 数据渠道限流、断网或接口变更 | 先单独跑一次最小取数,确认是渠道问题还是代码问题 | 示例走的是第三方数据渠道,可用性不由本项目保证 |
打开 .xlsm 提示宏被禁用 | 宏安全策略,或文件被标记为来自网络 | 看文件属性里的「解除锁定」,再看组织策略 | 禁用宏后按钮不工作,但普通工作表数据仍可读 |
打不开 .pbix / .twbx | 没有对应软件,或版本低于文件生成版本 | 确认已装 Desktop 版并检查版本 | 商业软件部分本站未实测,版本兼容性请以厂商说明为准 |
R 侧 install.packages 失败 | 镜像源、编译工具链或网络问题 | 换镜像源后重试,再看是否需要本地编译 | 仓库不提供 renv.lock,无法锁定 R 包版本 |
| 脚本报找不到文件或路径异常 | 目录名含空格,或你在别的目录下执行 | 用引号包住含空格的目录名(仓库里确实存在带空格的目录) | 另有文件名拼写不一致(如同义文件并存),尽量用模糊匹配 |
| 图里中文显示为方块 | matplotlib 未配置中文字体 | 在绘图前指定已安装的中文字体 | 这是环境配置问题,与示例代码本身无关 |
克隆之前先想清楚:这个仓库的体量成本
它是一个示例集合,不是一个轻量库。下表把体量构成拆开,方便你决定是全量克隆还是按目录稀疏取用。
| 指标 | 数值 | 来源口径 | 对你的影响 |
|---|---|---|---|
| 仓库大小 | GitHub 仓库接口 size 字段 313,460 KB(约 306 MiB) | 仓库元数据 | 接口口径含压缩估算,实际克隆占用通常更大 |
| 按文件清单求和 | 约 326.7 MiB | 全量文件清单逐项求和 | 两个数字口径不同,以你自己克隆后看到的为准 |
| 大于 1 MiB 的文件 | 59 个,合计约 201 MiB | 全量文件清单统计 | 约六成体积集中在不到 5% 的文件里 |
| 大于 5 MiB 的文件 | 9 个 | 全量文件清单统计 | 多为内嵌输出图的 notebook |
| 单文件最大 | Python_Stock/Portfolio_Strategies/Gold_Portfolio.ipynb 约 24.3 MiB | 全量文件清单统计 | 网页端预览可能很久,建议本地打开 |
| 单个 Excel 最大 | Excel_Stock/Excel_Technical_Indicators/Technical_Analysis.xlsx 约 10.7 MiB | 全量文件清单统计 | 低配机器打开会明显卡顿 |
.ipynb 或 .R 这类文本文件阅读逻辑,把体积大的工作簿与内嵌输出图的 notebook 留到确实需要运行时再取——因为这些大文件里占空间的多数是已经保存的输出图,而不是代码本身。关于 Stock_Analysis_For_Quant 环境与运行的常见问题
以下事实按固定提交 df4bd3c58d71 与 2026-09-30 的仓库元数据核验;本机未运行该仓库,凡涉及运行结果的说明都只给方法与检查项,以官方仓库当前状态为准。
有没有官方的一键安装或依赖清单?
没有。全仓检索不到 requirements.txt、environment.yml、setup.py、pyproject.toml、Pipfile,也没有 Dockerfile、Makefile、.github 这类 CI 目录,同时没有 Release 与 Tag。官方 README 只给软件版本要求,因此依赖必须自己按文件反推。以官方仓库当前文件清单为准。
Python 版本到底要装哪个?
官方 README 写的是 Python 3.5+,这是一个很宽的底线而不是建议版本。实践上你更应该关心「你要跑的那个 notebook 用到的库,在当前 Python 上有没有可用的轮子」,因为像指标类库在 Windows 上多依赖预编译轮子。本站核验时用的是 Python 3.11.9,可正常导入 yfinance、talib、pandas 等;但这不是对你环境的保证,以你的实际安装结果为准。如果你还在选版本,建议直接选一个仍有预编译轮子支持的较新版本,而不是照字面去装 3.5。
为什么我装了库还是报 ModuleNotFoundError?
三个常见原因:一是你装了多个 Python 解释器,pip 与 python 不是同一套(用 python -m pip install 可以避免);二是该 notebook 用的是另一套同功能库(例如指标侧同时存在两套库,名字不同);三是虚拟环境路径与运行环境不一致。建议每次都先跑一次 python -c "import 库名" 验证,而不是只看安装成功提示。
Excel 的 .xlsm 打不开或按钮没反应怎么办?
那些是启用宏的工作簿,前提是允许宏运行。如果企业策略禁止宏,按钮不会工作,但工作表里的普通数据仍然可读;仓库里同一主题往往也有不含宏的普通工作簿可用。另外该目录还把 VBA 源码另存成了文本文件,可以直接打开阅读而不必运行宏。具体以你所在环境的策略为准。
Matlab / Power BI / Tableau 这三部分能照做吗?
本站没有实测这三部分——本机没有相应授权,无法打开 .pbix、.twbx 或运行 Matlab 脚本。页面里给出的只是「文件在哪、建议先看哪个」,不写操作步骤也不承诺版本兼容。如果你要用这三条线,请以厂商官方文档与你自己的授权版本为准。
必须克隆整个仓库吗?
不必。仓库按文件清单求和约 326.7 MiB,其中 59 个超过 1 MiB 的文件就占了约 201 MiB,单文件最大约 24.3 MiB。更省事的做法是先按目录定位到需要的几个文件,只取它们所在的子目录。若确实要全量克隆,请预留充足磁盘与时间。以你自己的克隆结果为准。
跑通第一个文件之后,建议先做什么?
建议先做三件事,而不是立刻去挑更复杂的示例。第一,把你实际用到的解释器版本、库版本与数据日期写进一个记录文件,因为 Stock_Analysis_For_Quant 没有版本发布机制,锁不住 commit 就锁不住结果。第二,把这次跑通的输出保存下来(图或表),当作后续改动时的对照基线——否则你无法判断换了一个指标库之后,数字变化是来自代码还是来自环境。第三,回到目录导航页确认同一主题在其它语言里的对应文件,这样后面做口径对照时不用重新找。以你自己的运行结果为准。
官方 README 里提到的工具站打不开正常吗?
有可能。本站实测发现,官方文档链到的一个指标库说明站已返回 404(HTTP 404)。另外有几个商业软件的下载页对本机抓取返回 403,那属于站点反爬,浏览器里通常能正常打开,不能算失效。遇到打不开的链接,优先回到仓库文件与包内文档,别把外部链接当作唯一依据。