风险分解基础#
单只股票的风险构成#
练习:已知某生物科技公司股票的β系数为1.5,所处行业的平均波动率为24%,该公司特异性波动率为32%。请计算:
-
总风险水平
-
系统性风险占比
-
如果该股票与行业指数的相关性提升20%,总风险将如何变化?
组合风险分析#
两资产组合#
数据准备:
code
import yfinance as yf
import numpy as np
# 获取2022年两只股票数据
data = yf.download(['AMZN', 'GOOG'], start='2022-01-01', end='2023-01-01')['Adj Close']
returns = np.log(data/data.shift(1)).dropna()练习:
-
计算AMZN与GOOG的日收益率相关系数
-
当组合权重为60%-40%时,估算组合年化波动率
-
绘制两个资产的收益散点图并标注协方差椭圆的方位角
多因子风险模型#
因子暴露计算#
数据依赖:
code
# 获取三因子数据示例
ff3 = yf.download(['^GSPC', '^RUT'], start='2020-01-01')['Adj Close'] # 假设为市场因子代理
ff3_returns = ff3.pct_change().dropna()练习:
给定某科技公司股票TSM的日度收益率数据:
-
使用OLS回归计算其市场因子、规模因子暴露
-
计算残差项的波动率
-
验证总风险分解公式是否成立
衍生品对冲#
期货对冲比率#
参数设置:
-
现货组合β=1.25
-
指数期货合约乘数=250
-
当前指数点位3800
-
组合市值1000万美元
练习:
-
计算完全对冲所需的期货合约数量
-
若希望将β降至0.6,应如何调整头寸?
-
当基差扩大0.5%时,对冲效果将如何变化?
压力测试#
极端场景构建#
历史数据调用:
code
crisis = yf.download(['SPY', 'TLT'], start='2007-01-01', end='2009-01-01', interval='1mo')练习:
假设当前组合配置为:
-
股票60%(β=1.1)
-
债券40%(久期6.5)
-
股债相关性-0.3
请估算:
-
2008年式危机下的最大回撤
-
若美联储加息300bps对组合的久期冲击
-
绘制压力情景下的风险价值(VaR)分布图
实战挑战#
数据要求:
code
tech_stocks = yf.download(['AAPL', 'MSFT', 'NVDA', 'ADBE', 'INTC'],
start='2020-01-01',
end='2023-12-31',
auto_adjust=True)['Close']任务清单:
-
计算各股票滚动120天的β系数
-
构建行业中性组合(假设基准为NASDAQ100成分)
-
设计动态对冲策略并回测
-
比较不同再平衡频率下的夏普比率
-
可视化行业风险暴露的时变特征
数据提示:
-
处理拆股需使用
auto_adjust=True -
计算超额收益建议使用3个月国债收益率作为无风险利率
-
行业分类可通过
yf.Ticker().info['sector']获取 -
考虑交易成本时默认设定单边佣金0.1%