Stock_Analysis_For_Quant / 资产与方法
股票、ETF、基金、债券、期权:在 Stock_Analysis_For_Quant 里分别该翻哪个目录
这个仓库的一个实际困难是:它按工具分目录,不按资产分。也就是说你想做期权,得先知道期权的内容散在 Python_Stock/Options_Strategies/、Excel_Stock/Excel_Option/ 和 R 侧的一个脚本里;你想看债券,能用的材料比想象中少得多。
这一页按资产类型重新索引整个仓库:五类资产 × 六个工具逐格标注真实文件,没有对应文件的地方如实写「没有对应文件」——这份「哪里是空的」往往比「哪里有内容」更有用,它能替你省掉半天翻找。
五类资产各自先看哪里
Stock_Analysis_For_Quant 的资产 × 工具矩阵:六个工具两侧分别有什么
仓库按工具切分,所以同一类资产的材料可能分布在多处。下表把六个工具拆成两组,逐格标注仓库里真实存在的文件;标「没有对应文件」的格子是实测结果,不是遗漏。
| 资产 | Python_Stock/ | R_Stock/ | Excel_Stock/ | 说明与注意点 |
|---|---|---|---|---|
| 股票 | Fundamental_Analysis.ipynb、Technical_Indicators/、Candlestick_Patterns/ | Analyze_Financial_Statement.R、R_Technical_Analysis/、R_Regression/ | Stock_Statements_Ratio_Analysis.xlsx、Stock_Plot_MA.xlsx、Excel_Technical_Indicators/ | 三类资产的覆盖都最厚;注意三侧口径不同,跨语言比较前先统一复权与年化 |
| ETF | Index_Funds_Portfolio.ipynb、Corporate_Bonds_ETFs_Portfolio.ipynb | 没有对应文件 | 没有对应文件 | ETF 在仓库里主要以组合案例形式出现,不是独立分析模块 |
| 基金 | Mutual_Funds_Portfolio.ipynb、Index_Funds_Mutual_Funds_Portfolio.ipynb | 没有对应文件 | 没有对应文件 | 共同基金同样只有 Python 侧的组合案例,且依赖美股基金代码 |
| 债券 | Bonds_Portfolio.ipynb、Government_Bonds_Portfolio.ipynb、US_Treasury.ipynb | 没有对应文件 | 没有对应文件 | 只有 Python 侧三个 notebook;没有收益率曲线、久期或信用利差的内容 |
| 期权 | Options_Strategies/(18 个文件) | OptionsFunctions.R | Excel_Option/(20 个文件) | 三侧都有材料,是少见的「三语言齐备」主题;但只覆盖定价、希腊字母与盈亏图 |
| 跨资产组合 | Portfolio_Strategies/(81 个文件)、Optimal_Portfolio.ipynb、Tactical_Asset_Allocation.ipynb | R_Risk_Returns_Ratios/ | Excel_Portfolio_Strategies/(9 个工作簿) | 组合层面以案例集为主,权重生成规则不统一,改写前需先读代码 |
| 资产 | PowerBI_Stock/ | Tableau_Stock/ | Matlab_Stock/ | 说明与注意点 |
|---|---|---|---|---|
| 股票 | Import_Stock_Data_from_Yahoo.pbix、Stock_Analysis.pbix、Stock_Candlestick_Chart.pbix | StockOHLC.twbx、StockCandlestick.twbx、StockAnalyticsChart.twbx | DailyStock.mlx、DailyReturn.m | 三个工具都只做展示与基础计算;DEX 工作簿里不含分析方法,商业软件均未实测 |
| ETF | 没有对应文件 | 没有对应文件 | 没有对应文件 | 三个工具都没有 ETF 相关产物 |
| 基金 | 没有对应文件 | 没有对应文件 | 没有对应文件 | 同上;基金内容只在 Python 侧的组合案例里 |
| 债券 | SP500_Stock_Data.pbix 之外的债券内容为零 | 没有对应文件 | 没有对应文件 | 债券在这三个工具里基本空白 |
| 期权 | 没有对应文件 | 没有对应文件 | 没有对应文件 | 期权只在 Python / R / Excel 三侧有材料 |
| 跨资产组合 | Stock_Reuters_Financials.pbix、PowerBI_Machine_Learning/Stock_Linear_Regression.pbix | StockDescriptiveStatistics.twbx、StockTableData.twbx | financial_analysis.mlx | 这里更接近「报表与统计呈现」而不是组合构建 |
股票的三条路:基本面、技术面、量化各看什么
股票是覆盖最厚的资产,但也最容易迷路——同一个主题在三侧各有文件。下表把它拆成六条具体路径,每条给「先看什么」与代表文件。
| 路径 | 先看什么 | 仓库里的代表文件 | 适用场景 | 注意点 |
|---|---|---|---|---|
| 基本面 · 财报比率 | 利润表、资产负债表、现金流量表的比率关系 | Excel_Stock/Stock_Statements_Ratio_Analysis.xlsx、Stock_Statements_Preprocessing.xlsx;R 侧 Analyze_Financial_Statement.R | 想理解一家公司的财务结构,且偏好表格而不是代码 | 示例面向美股财报字段,换到 A 股要重做字段对照 |
| 基本面 · 估值模型 | 戈登增长模型、自由现金流、EPS 预测 | Excel_Stock/Stock_Gordon_Growth_Model.xlsx、Stock_Future_Earnings_per_Share.xlsx、Quantitative_Value.xlsx | 做内在价值估算练习,需要可逐步核对公式的模板 | 全是静态假设,没有敏感性分析与情景切换表 |
| 技术面 · 指标计算 | 指标定义与参数(周期、平滑方式) | Python 侧 Technical_Indicators/(209 个 notebook,含 RSI.ipynb、MACD.ipynb、Bollinger_Bands.ipynb);R 侧 R_Technical_Analysis/(159 个脚本) | 想实现或核对某个指标,需要一个可读的最小实现 | 一个指标一个文件,同一指标可能有 _Part2 等续篇,注意版本先后 |
| 技术面 · K 线形态 | 形态的识别条件(开盘、收盘、影线关系) | Python_Stock/Candlestick_Patterns/(61 个 notebook,含 Candlestick_Engulfing.ipynb、Candlestick_Hammer.ipynb、Candlestick_Morning_Star.ipynb) | 做形态识别练习,或整理形态清单 | 形态识别规则是作者自定义的,不同资料对同一形态的定义可能不同 |
| 量化 · 风险与比率 | 收益、波动率、回撤、比率的口径 | Stock_RiskAndReturn.ipynb、ValueAtRisk.ipynb、Stock_Alpha_Beta.ipynb;Excel 比率目录 41 个工作簿;R 侧 R_Risk_Returns_Ratios/ 35 个脚本 | 要算一套绩效指标并解释每个数字的含义 | 同名比率在三侧口径可能不同,换语言前先读本站的跨语言对照页 |
| 量化 · 组合与因子 | 权重怎么定、再平衡怎么做 | Portfolio_Strategies/(78 个 notebook,含 CAPM.ipynb、Factor_Analysis.ipynb、Optimal_Portfolio.ipynb) | 想参考一个组合从选股到绩效的完整写法 | 这些 notebook 多为案例演示,缺交易成本与样本外测试,别直接当策略结论 |
先认资产类别,再认路径
问自己一句:我要的是「这家公司值不值」还是「这段价格在做什么」。前者走基本面两行,后者走技术面两行。预期输出:在六行里锁定一到两行,而不是把六个 notebook 都打开。
在对应行里挑依赖最少的那一个文件
同一行的候选往往不止一个。优先挑只用
pandas或只用工作表公式的文件,避开需要talib、statsmodels或深度学习库的文件。预期输出:一个当天就能跑通的最小文件。对照另一侧的口径再动手改
如果你打算用 Python 改写 Excel 模板,先在跨语言对照页确认三处口径:收益是算术还是几何、年化用多少天、无风险利率取什么。预期输出:一份写在注释里的口径约定,避免后面反复返工。
ETF 与基金:Stock_Analysis_For_Quant 里只有组合案例,没有分析模块
这两类资产在 Stock_Analysis_For_Quant 里的存在方式比较特殊——它们不是被「分析」的对象,而是被当作组合的组成成分出现在若干案例里。
| 你想做的事 | 仓库里的材料 | 能覆盖到什么程度 | 还缺什么 |
|---|---|---|---|
| 用指数基金搭一个长期组合 | Index_Funds_Portfolio.ipynb、Long_term_SPY.ipynb、Excel_Stock/Excel_Portfolio_Strategies/Long_Term_Investment_SP500.xlsx | 能拿到一个「买什么、怎么记绩效」的案例框架 | 没有再平衡频率与成本的讨论,也没有基准对比表 |
| 把主动基金与指数基金放在一起比 | Index_Funds_Mutual_Funds_Portfolio.ipynb、Mutual_Funds_Portfolio.ipynb、Mutual_Funds_Portfolio_Part2.ipynb | 能知道这两类标的存在字段差异 | 没有费用率、跟踪误差、折溢价的任何处理 |
| 看债券型 ETF 与传统债券的组合关系 | Corporate_Bonds_ETFs_Portfolio.ipynb | 只有一个案例,可作为组合权重练习的起点 | 没有到期收益率、久期或信用等级字段 |
| 拿分红作为选股主线 | Dividends_Portfolio.ipynb、Dividends_Portfolio_2.ipynb、Two_Stock_Comparing_Dividend.ipynb | 能拿到美股高分红标的的组合写法 | 不处理分红再投资与税后收益 |
| 做基金筛选与基金组合诊断 | 仓库里没有对应文件 | — | 需要另找工具;本机技能路线里的 yingmi 方向提供基金筛选与组合诊断 |
| 做 ETF 折溢价、申赎与流动性分析 | 仓库里没有对应文件 | — | 此仓库完全没有涉及,需要交易所或数据商侧的材料 |
债券与利率:Stock_Analysis_For_Quant 里最薄的一块,先把边界认清
如果你的研究会落在固收上,建议先看这一节再去翻文件——省得在 R_Stock/ 与 Excel_Stock/ 里来回找并不存在的东西。
| 固收相关主题 | 仓库里有没有 | 具体材料 | 边界说明 |
|---|---|---|---|
| 债券作为组合成分 | 有(Python 侧) | Bonds_Portfolio.ipynb、Government_Bonds_Portfolio.ipynb | 只是把债券 ETF 放进组合,不是债券定价 |
| 国债数据与收益 | 有(Python 侧) | US_Treasury.ipynb | 单一 notebook,取数方式为美股口径的数据源 |
| 资产配置中的债券权重 | 有(三侧) | Tactical_Asset_Allocation.ipynb、Portfolio_Theory.xlsx、R 侧 R_Risk_Returns_Ratios/ | 权重方法在案例里各不相同,需要自己统一 |
| 收益率曲线与期限结构 | 没有 | — | 仓库里没有任何曲线拟合或期限结构内容 |
| 久期、凸性与利率敏感性 | 没有 | — | 没有久期计算文件 |
| 信用利差与违约分析 | 没有 | — | 没有信用类分析内容 |
期权:三语言齐备,但 Stock_Analysis_For_Quant 只覆盖定价、希腊字母与盈亏图
期权是仓库里少见的「三侧都有材料」的主题。下表把 Python 与 Excel 两侧的文件逐个点名,便于直接定位。
| 主题 | Python_Stock/Options_Strategies/ | Excel_Stock/Excel_Option/ | R_Stock/ | 注意点 |
|---|---|---|---|---|
| 期权基础概念 | Introduction_Options.ipynb | 目录 README 中的定义段(含 8 张示意图) | — | 概念部分以英文原文为主 |
| Black-Scholes 定价 | Black_Scholes_Formula.ipynb、Black_Scholes_Stock_Calls.ipynb、Black_Scholes_Stock_Puts.ipynb | Options_Black-Scholes.xlsx、Options_Black-Scholes_2.xlsx | OptionsFunctions.R | 三侧的输入假设(无风险利率、波动率来源)需自行核对一致 |
| 希腊字母 | 目录内 FiveGreeks.PNG、OptionsGreek.PNG 两张图 | Options_Greeks.xlsx | — | Python 侧主要是示意图,实际计算在 Excel 与 R 侧 |
| 看涨 / 看跌单腿 | Options_Call.ipynb、Options_Put.ipynb | Option_Long_Call.xlsx、Option_Long_Put.xlsx、Option_Short_Call.xlsx、Option_Short_Put.xlsx | — | Excel 侧按「多空 × 认购认沽」四个文件切开,容易找漏 |
| 盈亏(Payoff)图 | Options_Payoff_Call.ipynb、Options_Payoff_Put.ipynb | Options_Payoff.xlsx、Options_Payoff_2.xlsx、Options_Plot_Call_Put.xlsx | — | 图是按到期日静态绘制,不含时间价值衰减的过程 |
| 组合策略(价差类) | Options_Butterfly_Spread.ipynb | — | — | 仓库实际实现仅到此;README 里列出的 Iron Condor 等策略名没有对应文件 |
| 概率与期权数据 | Options_Data.ipynb、目录内 Cheatsheet_Options.PNG | Options_Probability.xlsx | — | 概率部分依赖对标的分布假设,需自行确认前提 |
| 隐含波动率曲面 | 没有对应文件 | 没有对应文件 | 没有对应文件 | 仓库没有曲面拟合内容 |
Stock_Analysis_For_Quant 的主题组合真实名单:78 个案例里到底有哪些
Stock_Analysis_For_Quant 的组合部分不是「一套方法」,而是 78 个按主题组织的 notebook。下表点名其中 12 个,说明它们出现的背景与使用注意点。
| 主题组合文件 | 主题从哪来 | 适合拿它做什么 | 注意点 |
|---|---|---|---|
Gold_Portfolio.ipynb | 黄金与贵金属板块 | 组合绩效展示的写法参考 | 文件体积约 24.3 MiB,打开与渲染都偏慢 |
COVID-19_Portfolio.ipynb | 疫情相关标的 | 事件驱动主题的组合组织方式 | 标的清单是当时的快照,不代表长期可用 |
Healthcare_Portfolio.ipynb 与 Healthcare_Portfolio_2.ipynb | 医疗健康板块 | 同一主题两个版本的对照阅读 | 续篇之间是替换还是并列,仓库没有说明 |
Biotech_Portfolio.ipynb | 生物科技板块 | 高波动板块的组合写法 | 未处理个股停牌与并购事件 |
Weed_Portfolio.ipynb | 特定产业主题 | 了解作者组织主题标的的方式 | 主题是否仍有对应标的需自行确认 |
Monkeypox_Portfolio.ipynb | 短期公共卫生事件 | 看事件型组合如何快速成型 | 典型的短周期主题,样本区间很短 |
Nancy_Pelosi_Portfolio.ipynb、Trump_Stock_Portfolio.ipynb、Obama_Stock_Portfolio.ipynb | 公开披露的持仓清单 | 研究「名单驱动」组合的构建与绩效呈现 | 披露本身有时滞,用作回测会产生前视问题 |
Warren_Buffet_Vaccine_Portfolio.ipynb | 名人持仓与特定主题交叉 | 多来源清单合并的写法 | 命名与内容对应关系需自己确认 |
SpaceX_Portfolio.ipynb、Space_Stock_Portfolio.ipynb | 航天产业 | 同一产业两条不同标的清单的对照 | 未上市标的相关内容无法直接取数 |
Stay_at_Home_Portfolio.ipynb、Toilet_Paper_Portfolio.ipynb、Ventilator_Manufacturer_Portfolio.ipynb | 特殊时期消费与物资 | 理解主题命名与实际标的之间的距离 | 主题名与标的清单的因果关系不成立,仅供案例参考 |
Machine_Learning_Portfolio.ipynb、Factor_Analysis.ipynb、CAPM.ipynb | 方法论驱动的组合 | 想从「主题」转向「方法」时的入口 | 最容易被当成可复用方法,但缺样本外与成本假设 |
Optimal_Portfolio.ipynb、Tactical_Asset_Allocation.ipynb、Core_and_Satellite.ipynb、The_Dave_Ramsey_Portfolio.ipynb | 配置框架 | 对比不同配置思路的写法差异 | 四种框架的权重逻辑差异很大,改写前先读代码而不是看文件名 |
把案例当模板,不当结论
先确认这个 notebook 的标的清单是硬编码还是筛选得出。预期命令:在仓库里搜
tickers或symbols变量,看它是字面列表还是函数输出。字面列表就意味着它只是一个写作模板。补齐三件仓库没做的事
交易成本、样本外区间、基准对比。这三件事在多数组合案例里都缺席。预期输出:一份注明了成本假设与样本区间的改写版本。
记录你改动过的口径
把你替换的标的、调整的日期区间、加入的成本假设写进文件头注释。预期输出:三个月后你自己还看得懂的实验记录——这也是回测审计页强调的「可复现」的最低要求。
六个工具怎么选:按你的起点挑,而不是按功能多少挑
六个工具在 Stock_Analysis_For_Quant 里的分工,很大程度取决于你会什么,而不是哪个更强。下表按常见起点给出建议。
| 你的起点 | 建议先看 | 理由 | 代价 |
|---|---|---|---|
| 不会编程 | Excel_Stock/(232 个文件,其中比率目录 41 个工作簿) | 公式可直接查看,改一个单元格就能看到结果变化 | 无法自动化,规模一大就难维护 |
| 会 Python | Python_Stock/Technical_Indicators/ 与 Portfolio_Strategies/ | 样本量最大,且依赖关系在文件头就能看清 | 需要自己装库;numpy 与指标库之间可能版本冲突 |
| 只要一套绩效比率 | R 侧 R_Risk_Returns_Ratios/(35 个脚本)或 Excel 比率目录(41 个工作簿) | 一个比率一个文件,对照阅读成本低 | 两侧口径未必一致,跨工具比较前先统一 |
| 要做交互式仪表板 | PowerBI_Stock/(11 个 .pbix)或 Tableau_Stock/(7 个 .twbx) | 产物本身就是可交互的报表 | 都是商业软件,本机无授权,相关步骤本站均未实测 |
| 要做时间序列预测 | Python 侧 Time_Series_Forecasting/(53 个 notebook)与 R 侧 R_Forecast/(49 个脚本) | 方法覆盖面最广,从经典模型到现代概率预测都有 | 绝大多数方法未在本站运行;预测类最易出现样本内泄露 |
| 要做期权定价 | Python 侧 Options_Strategies/ + Excel 侧 Excel_Option/ | 两侧互为对照,便于核对公式实现 | 仅覆盖定价与盈亏结构,不含曲面与持仓管理 |
先解决数据,再谈方法
仓库的取数层只有两个免费来源:Python 侧走 yfinance,R 侧走 quantmod,都是美股口径。国内标的要么自己换数据源,要么用中文数据源方向的能力(本机技能侧的 akshare-finance 与 tushare-finance 分别面向公开财经数据与 Pro 接口)。数据没对齐之前,任何指标比较都不可靠。
口径一致比工具统一更重要
同一个 Sharpe 比率,在 Excel 公式、R 脚本与 Python notebook 里可能因为无风险利率、年化天数、样本起止不同而得出不同数字。判断方法是否正确的前提,是先把这三项写成注释固定下来;否则你会在「哪个数字才对」上反复消耗时间。
估值类内容要自己补假设表
仓库里的 DCF 与戈登增长模型都是静态假设。要做严肃一点的估值,需要补上情景切换、敏感性分析与假设来源记录。本机技能侧的 fp-dcf 方向提供可审计的现金流与折现率计算,但那是另一条路线,与本仓库没有集成关系。
关于资产与方法选型的常见问题
以下事实按固定提交 df4bd3c58d71 与 2026-09-30 采集的仓库清单核对;动态内容会变化,以官方仓库当前状态为准。
我想做 A 股,这套目录里哪些能直接复用?
方法层面能复用,数据层面不能。仓库的取数走 yfinance 与 quantmod,标的都是美股 ticker;换成 A 股需要自己换数据源,并额外处理复权方式、T+1 交收、涨跌停与停牌导致的不可成交、以及印花税与佣金等成本。指标计算与比率定义那部分可以照搬算式,但代入的数据必须换成你自己取的那一份。具体改造顺序见本站的 A 股适配页。
债券内容这么少,是不是我没找到?
不是。按固定提交逐个目录清点,债券相关材料只有 Python 侧的 Bonds_Portfolio.ipynb、Government_Bonds_Portfolio.ipynb 与 US_Treasury.ipynb 三个 notebook,R 侧与 Excel 侧都没有对应文件,也没有任何收益率曲线、久期或信用分析内容。这是仓库结构本身的特点,不是检索问题。
期权这一块够做策略回测吗?
不够。仓库覆盖的是定价公式、希腊字母与到期盈亏图,没有持仓管理、保证金、行权与到期处理,也没有隐含波动率的期限结构。要做期权策略回测,至少还需要一份期权链数据(含各行权价与到期日的买卖价与隐含量),这部分的取数与清洗要自己解决。以官方仓库内容为准。
主题组合的名字看起来很诱人,能直接跟着买吗?
不建议这样理解。这些 notebook 的定位是「按主题组织一批标的、然后展示绩效」,标的清单多为硬编码,缺少交易成本、样本外区间与基准对比三件事。它们更适合作为写作模板与研究练习,而不是结论。而且其中不少主题是短周期事件(如公共卫生事件),对应的标的关系随时效变化。
用 Excel 还是 Python?两边结果会不会不一样?
会,主要差在三处:收益定义(算术还是几何)、年化因子(交易日数取多少)、无风险利率来源。工作表公式与 pandas 代码在这三点的默认做法往往不同,样本起止也常常不一致。建议在小样本上先做一次对账,把口径写进注释,再扩展到完整样本。本站的跨语言同题对照页给出了这套对账步骤。
为什么很多格子写着「没有对应文件」?
因为这份矩阵是按实际文件清单逐格核对的,空格就是仓库里确实没有。标出来是有用的——它能在你花时间翻找之前告诉你这条路走不通。需要说明的是,本页只反映固定提交那一天的仓库状态;如果作者后续补了文件,矩阵会过时,所以请以官方仓库当前文件清单为准。
Power BI 和 Tableau 的示例我能直接用吗?
可以在安装了对应软件的前提下打开,但本站没有实测过——这两个软件是商业软件,本机没有授权,所以相关步骤与产物行为都没有经过验证。另外要区分两件事:工作簿本身可以打开,不代表里面的数据源还能连通(示例多半指向当时的外部行情接口)。许可与刷新限制见本站的仪表板页。
做资产配置该从哪个文件起步?
如果偏框架,可看 Tactical_Asset_Allocation.ipynb、Core_and_Satellite.ipynb 与 Excel_Stock/Excel_Portfolio_Strategies/Portfolio_Theory.xlsx;如果偏风险度量,可看 R 侧 R_Risk_Returns_Ratios/ 与 R_Volatility/。但要注意,四种配置框架的权重逻辑差异很大,多数没有再平衡频率与成本的讨论,改写前需要先读懂代码而不是只看文件名。以官方仓库当前内容为准。