QuantWeft量化经纬
English
本章小节

项目1读者导读:把收益表变成可解释的财富与风险

目标是读懂一份月度描述分析:每条收益属于哪个区间,财富怎样递推,风险指标用了哪个分母,哪些结论来自哪份材料。建议先复核第11章的简单/对数收益、年化与回撤,再独立回答本项目六题。

1. 先选择正在处理的数据对象

本项目有两条阅读路线,数值不能互换。

材料 输入 本次用途
当前离线Notebook Seed101构造180个月;NoDur、HiTec、Enrgy为构造列标签,RF=0.001 可运行的方法演示与小手算
原历史报告、图及第2/5题答案 2026-10-05 French发布快照;历史RF按同月连接 阅读已保存的历史描述,不重新执行

月标签2010–2024不把构造输入变成该期间的市场观测。历史报告中的HiTec财富4.6270、CAGR16.55%、约定年化波动15.61%,以及能源2015–2019的负夏普,属于原报告;不能拿当前构造表证明、更新或推翻它们。

2. 建立环境与运行

接受I3读者包声明Python3.12及以上;已检查锁文件对应macOS arm64/CPython3.14.7,其他平台未验证。已有读者环境可直接用下方运行命令;需要建立环境时,从包根执行:

python3 -m venv .venv
.venv/bin/python -m pip install -r requirements-macos-arm64-py314.lock
.venv/bin/python -m ipykernel install --prefix .venv --name python3 --display-name 'Reader Python'

安装可能需联网,Notebook默认路线不下载数据。从同一包根运行:

.venv/bin/python run_notebook.py projects/project01/notebooks/project01_financial_data_analysis.ipynb

运行器启动新内核,把执行后的Notebook和execution.json写入新的runs/execution_*目录,终端打印evidence实际位置。Notebook第一代码单元另建立runs/project01_financial_data_analysis_<uuid>,其中有constructed_monthly_returns.csv和project01_dashboard_CONSTRUCTED.png。两个目录分别保存执行证据与方法产物;它们不是原French报告的结果目录。每次UUID不同,按打印位置查找,不用猜固定路径。

3. 输入契约与主窗口

当前面板的索引是连续月度PeriodIndex,month标记收益区间;三个行业列是简单收益小数,0.01表示1%,RF也是同区间小数。生成器为Seed101,行业面板由正态构造输入形成,RF固定0.001。无需把来源百分数再除100;没有调用原load_project_data读取French快照。

Notebook从180个月中选2010-01至2019-12作为主表的120个月。主窗口代码检查完整索引、数量及缺失;它检查输入一致性,不证明市场真实性、权限、历史可得性或可交易性。原数据字典另解释French来源、SIC形成规则、处理单位和历史时钟缺口。

4. 从简单收益得到财富,再解释均值

没有外部现金流时,同一账户满足

Wt=Wt−1(1+Rt),W0>0. W_t=W_{t-1}(1+R_t),\qquad W_0>0.

百分比作用于变化后的资本,所以要连乘。Notebook的小手算用100、+50%、−50%,得到100、150、75;算术平均0%,累计收益−25%,相对峰值150的最大回撤−50%。初始点没有前一段收益,保留在财富/回撤中,不能加入收益统计。

对每期Rt>−1R_t>-1,gt=log⁡(1+Rt)g_t=\log(1+R_t)且∑gt=log⁡(WT/W0)\sum g_t=\log(W_T/W_0)。Notebook随后比较当前构造主窗口的简单均值与对数均值;对数只在时间上相加,跨资产先用期初权重的简单收益。列名中的pct_per_month表示展示百分比,内部输入仍是小数。

5. 指标表的每一列回答什么

指标 计算对象与条件 应怎样读
期末财富、累计简单收益 初值1,月简单收益连乘 该构造路径终值及相对初值变化;不是价格
CAGR (WT/W0)12/T−1(W_T/W_0)^{12/T}-1,无外部现金流,整月跨度 明确T/12年约定的复合增长摘要
年化波动 月收益样本标准差,ddof=1,再乘12\sqrt{12} 约定年度尺度,不是年度复利风险恒等式
年化Sharpe 同月et=Rt−RFte_t=R_t-RF_t,12eˉ/s(e)\sqrt{12}\bar e/s(e),s(e)>0s(e)>0 当前构造样本的均值/风险比,不是Alpha检验
最大回撤、峰值月、谷底月 Dt=Wt/max⁡s≤tWs−1D_t=W_t/\max_{s\le t}W_s-1,损失幅度取−min⁡Dt-\min D_t 月末峰谷的路径压力;未观察日内峰谷

三个固定描述切片各60个月,每段重新以初值1计算回撤。Notebook随后展示的是同一Seed101构造面板的分段结果;原French报告中另一组排名、正负和数值不适用于此表。当前Markdown沿用已接受的构造能源分段说明:2015–2019约+8.008%CAGR、+0.623Sharpe,2020–2024约−0.262%与−0.073;这些是该构造输入的记录,不是本批新复跑。

6. 读四幅图的轴

图使用同一构造面板的2010–2024窗口,灰色段为2020–2024的描述性扩展,不是留出检验。

  • 左上:月末标签对财富指数,初始1位于所选2009-12端点;不是证券价格。
  • 右上:月末标签对向后12个月样本标准差乘12\sqrt{12},前11月因窗口不完整留空;不是未来波动预测。
  • 左下:月末标签对相对历史峰值的负回撤,初始资本也参与路径;−0.5表示低于峰值50%。
  • 右下:行业标签对月简单收益小数的箱线图;中位数、四分位与远端观测概括该构造输入,不删除不利点。

历史报告里的原图也有这四类轴,但数据对象是原French快照。两幅图外形相同不意味着相同数据或复现身份。

7. 六题怎样作答

先读原练习,完成后才看原完整答案。第1题是+10%/−10%的独立手算,与Notebook的+50%/−50%不是同一组输入;第3题用给定同月RF;第4题比较初值和峰值分母。第2题直接读历史报告主窗口,第5题读其固定历史切片,不用当前构造表替换历史答案。第6题按原历史图解释轴,同时可对照当前构造图辨别数据身份。

六题保留原题义、数值和全部答案。旧练习末尾的French CLI属于历史课程工作根;当前学习只运行本导读的离线Notebook,不触发该市场路线。

8. 可支持的结论与下一责任

当前运行可说明共享指标如何处理构造收益、窗口和图;历史报告可描述指定快照与窗口的发布组合回报。两者都不证明未来收益、净策略Alpha或可成交优势。历史快照缺少逐股OHLCV、历史逐月版本、发布/入库时刻、信号、订单、成本及融资账本。

G01权利/主体/用途未解决,G05/A10-B未授权;协议技术接受不等于数据许可。可选输入契约描述未来另行授权的自备数据要求,不能在本次运行中启用French。完整英文项目配套见English README;本批两份Notebook只投影Markdown,数值实现仍为同一套,原执行单元和输出不改。

搜索教材

输入关键词开始搜索。