题目要求:
使用yfinance获取沪深300成分股数据(代码示例:600519.SS代表贵州茅台),完成以下任务:
数据准备代码:
import yfinance as yf
import pandas as pd
# 获取沪深300成分股列表(示例)
hs300 = ['600519.SS', '601398.SS', '000001.SZ'] # 实际需完整成分股
start_date = '2020-01-01'
end_date = '2023-12-31'
# 下载行情数据
price_data = yf.download(hs300, start=start_date, end=end_date)['Close']
shares_data = yf.download(hs300, start=start_date, end=end_date)['Shares Outstanding']
题目要求:
基于6.1题构建的SMB因子序列,完成以下分析:
分析代码框架:
from scipy import stats
import matplotlib.pyplot as plt
# 计算月频因子收益
monthly_smb = smb_factor.resample('M').last()
# 收益分析
mean_return = monthly_smb.mean()
std_return = monthly_smb.std()
# 统计检验
t_stat, p_value = stats.ttest_1samp(monthly_smb, 0)
# 可视化
cumulative_return = (1 + monthly_smb).cumprod()
plt.plot(cumulative_return)
plt.title('SMB因子累计收益')
plt.show()