🔴
入学要求
💯
能力测试
🛣️
课程安排
🕹️
研究资源

练习

风险分解基础

单只股票的风险构成

练习:已知某生物科技公司股票的β系数为1.5,所处行业的平均波动率为24%,该公司特异性波动率为32%。请计算:

  1. 总风险水平
  1. 系统性风险占比
  1. 如果该股票与行业指数的相关性提升20%,总风险将如何变化?

组合风险分析

两资产组合

数据准备

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()

练习

  1. 计算AMZN与GOOG的日收益率相关系数
  1. 当组合权重为60%-40%时,估算组合年化波动率
  1. 绘制两个资产的收益散点图并标注协方差椭圆的方位角

多因子风险模型

因子暴露计算

数据依赖

# 获取三因子数据示例
ff3 = yf.download(['^GSPC', '^RUT'], start='2020-01-01')['Adj Close']  # 假设为市场因子代理
ff3_returns = ff3.pct_change().dropna()

练习

给定某科技公司股票TSM的日度收益率数据:

  1. 使用OLS回归计算其市场因子、规模因子暴露
  1. 计算残差项的波动率
  1. 验证总风险分解公式是否成立

衍生品对冲

期货对冲比率

参数设置

练习

  1. 计算完全对冲所需的期货合约数量
  1. 若希望将β降至0.6,应如何调整头寸?
  1. 当基差扩大0.5%时,对冲效果将如何变化?

压力测试

极端场景构建

历史数据调用

crisis = yf.download(['SPY', 'TLT'], start='2007-01-01', end='2009-01-01', interval='1mo')

练习

假设当前组合配置为:

请估算:

  1. 2008年式危机下的最大回撤
  1. 若美联储加息300bps对组合的久期冲击
  1. 绘制压力情景下的风险价值(VaR)分布图

实战挑战

数据要求

tech_stocks = yf.download(['AAPL', 'MSFT', 'NVDA', 'ADBE', 'INTC'],
                         start='2020-01-01',
                         end='2023-12-31',
                         auto_adjust=True)['Close']

任务清单

  1. 计算各股票滚动120天的β系数
  1. 构建行业中性组合(假设基准为NASDAQ100成分)
  1. 设计动态对冲策略并回测
  1. 比较不同再平衡频率下的夏普比率
  1. 可视化行业风险暴露的时变特征

数据提示

  1. 处理拆股需使用auto_adjust=True
  1. 计算超额收益建议使用3个月国债收益率作为无风险利率
  1. 行业分类可通过yf.Ticker().info['sector']获取
  1. 考虑交易成本时默认设定单边佣金0.1%