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

练习

个股Beta计算

给定以下代码框架:

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年的日频数据
  1. 计算每日收益率并清洗缺失值
  1. 通过线性回归计算系统性风险系数β
  1. 解释计算结果的实际含义

数据获取提示:

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

动态Beta分析

给定滚动窗口计算函数:

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年的收盘价数据
  1. 计算120个交易日的滚动Beta序列
  1. 绘制Beta值随时间变化的曲线
  1. 分析2022年美联储加息周期中Beta值的变化特征

数据示例:

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