跳到主内容
研究主线资产定价与组合构建 · 第30–36讲2/7 · 配套练习模块导览 →
练习

第31讲:贝塔对冲 (Beta Hedging) · 练习

计算个股相对市场的 Beta 与对冲数量,比较不同滚动窗口的动态结果,并检查数据对齐和暴露残差。

← 返回本讲讲义
完成状态保存在当前浏览器,可随时取消。

个股Beta计算#

给定以下代码框架:

code
import yfinance as yf
import statsmodels.api as sm

def calculate_beta(y_returns, x_returns):
    X = sm.add_constant(x_returns)
    model = sm.OLS(y_returns, X).fit()
    return model.params[1]  # 返回beta值

请完成:

  1. 获取阿里巴巴(BABA)与沪深300指数(代码:510300.SS)2020-2023年的日频数据

  2. 计算每日收益率并清洗缺失值

  3. 通过线性回归计算系统性风险系数β

  4. 解释计算结果的实际含义

数据获取提示:

code
data = yf.download(['BABA', '510300.SS'],
                  start='2020-01-01',
                  end='2023-12-31',
                  progress=False)

动态Beta分析#

给定滚动窗口计算函数:

code
def rolling_beta(asset_ret, market_ret, window=60):
    betas = []
    for i in range(window, len(asset_ret)):
        # 在此补充滚动回归逻辑
        betas.append(current_beta)
    return pd.Series(betas, index=asset_ret.index[window:])

请完成:

  1. 获取亚马逊(AMZN)与标普500指数(SPY)过去5年的收盘价数据

  2. 计算120个交易日的滚动Beta序列

  3. 绘制Beta值随时间变化的曲线

  4. 分析2022年美联储加息周期中Beta值的变化特征

数据示例:

code
data = yf.download(['AMZN', 'SPY'],
                 period='5y',
                 interval='1d',
                 auto_adjust=True)['Close']

完成练习后,自评一次

建议先独立作答,再展开参考答案进行核对。