给定以下代码框架:
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值
请完成:
数据获取提示:
data = yf.download(['BABA', '510300.SS'],
start='2020-01-01',
end='2023-12-31',
progress=False)
给定滚动窗口计算函数:
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:])
请完成:
数据示例:
data = yf.download(['AMZN', 'SPY'],
period='5y',
interval='1d',
auto_adjust=True)['Close']