| 工具 | 用途 | 提示词说明 |
|---|---|---|
| Claude Code | 代码编写、调试、notebook修改 | 本次对话全程使用,主要提示词如下 |
主要提示词参考:
-
数据获取与预处理
- "使用akshare获取A股日度行情数据,计算对数收益率"
-
Beta系数估计
- "对5只股票进行CAPM回归,估计全样本、分年度和滚动窗口Beta系数"
- "进行Ljung-Box检验和White检验进行残差诊断"
-
滚动相关系数可视化
- "计算5只股票两两之间的60日滚动相关系数,使用5×2网格可视化"
-
等权重组合分析
- "构造1/N等权重组合,计算绩效指标(年化收益率、波动率、最大回撤、夏普比率、Calmar比率)"
本项目对A股市场5只代表性股票进行系统性风险(Beta系数)分析,结合CAPM模型进行全样本、分年度和滚动窗口估计,并构建等权重投资组合进行绩效评估。
| 序号 | 股票代码 | 股票名称 | 所属行业 |
|---|---|---|---|
| 1 | 601398.SH | 工商银行 | 银行 |
| 2 | 600887.SH | 伊利股份 | 食品饮料(消费) |
| 3 | 000063.SZ | 中兴通讯 | 通信(科技) |
| 4 | 000538.SZ | 云南白药 | 医药生物 |
| 5 | 600028.SH | 中国石化 | 石油化工(能源) |
- 起始日期: 2019-01-01
- 截止日期: 2026-03-25
- 数据来源: akshare金融数据库
- 指数基准: 沪深300指数(000300.SH)
| Notebook | 对应任务 |
|---|---|
01_data_download.ipynb |
Q1: 数据获取与整理 |
02_beta_estimation.ipynb |
Q2-4: Beta系数估计(全样本/分年度/滚动) |
03_portfolio_analysis.ipynb |
Q5-7: 相关性分析、等权重组合、有效前沿 |
topic01_beta/
├── README.md
├── 01_data_download.ipynb # Q1: 数据获取与整理
├── 02_beta_estimation.ipynb # Q2-4: Beta系数估计
├── 03_portfolio_analysis.ipynb # Q5-7: 相关性与组合分析
├── data_raw/ # 原始下载数据
├── data_clean/ # 清洗后数据
└── output/ # 输出文件
├── README.md # 输出文件清单
├── Q1_data/ # Q1输出
├── Q2_beta/ # Q2输出
├── Q3_yearly_beta/ # Q3输出
├── Q4_rolling_beta/ # Q4输出
├── Q5_correlation/ # Q5输出
├── Q6_portfolio/ # Q6输出
└── Q7_efficient_frontier/ # Q7输出
-
系统性风险差异显著: 5只股票的Beta系数存在明显差异,银行业股票Beta相对较低(防御性较强),而科技股Beta波动较大。
-
Beta时变特征: 2020年COVID-19冲击期间,多数股票的滚动Beta出现明显上升,反映市场系统性风险加剧。
-
残差诊断: Ljung-Box检验显示残差存在自相关,White检验显示存在异方差,表明CAPM模型存在设定偏误。
-
相关性在波动期上升: 市场剧烈波动时期(如2020年2-3月、2022年3月),股票间相关性显著上升,削弱了分散化投资效果。
-
行业差异: 银行股与能源股相关性较低,提供较好的分散化机会。
-
组合Beta近似可加: 等权重组合的Beta系数接近各股票Beta的简单均值,验证了组合Beta的可加性原理。
-
有效前沿: 最小方差组合倾向于配置低波动股票(银行股占比较高),最大夏普组合则追求最优风险收益比。
- Python版本: 3.9+
- 主要依赖库:
- akshare (数据获取)
- pandas (数据处理)
- numpy (数值计算)
- matplotlib/seaborn (可视化)
- statsmodels (计量分析)
- scipy (优化计算)
- 无风险利率: 年化2.5%,日频 r_f = 0.025/252
- 滚动窗口: 60个交易日
- 显著性水平: α = 0.05
- Ljung-Box检验滞后阶数: 10