Python 如何计算滚动窗口中投资组合的标准差?
我有一个数据帧Python 如何计算滚动窗口中投资组合的标准差?,python,pandas,finance,portfolio,rolling-computation,Python,Pandas,Finance,Portfolio,Rolling Computation,我有一个数据帧df,看起来像这样: Ticker # 1 2 3 0 -0.004530 -0.042642 0.015556 1 0.040387 0.013036 0.089715 2 -0.008748 -0.012869 0.024096 3 0.031440 0.004889 0.033333 4 -0.008
df
,看起来像这样:
Ticker # 1 2 3
0 -0.004530 -0.042642 0.015556
1 0.040387 0.013036 0.089715
2 -0.008748 -0.012869 0.024096
3 0.031440 0.004889 0.033333
4 -0.008556 0.000000 0.024668
...
1510 -0.009929 -0.008559 -0.009146
其中,指数为从2010年1月1日开始的日期(按交易日上升),列为收益,股票代码对应于3种不同的股票。我还有一个类似的df2
,形状与市值相同。我有3个滚动窗口:504、252、126,我想估计样本协方差矩阵(3 x 3),使用样本数据中每个滚动窗口长度期间的市值权重(从滚动窗口的最后一天算起)估计投资组合的标准偏差,并计算投资组合的一天提前收益(从滚动窗口中最后一天的第二天开始标记盖重量和返回值)
我知道如何使用.cov()
和np.sqrt(np.dot(weights.T,np.dot(cov_矩阵,weights)))
(使用df2最后一行的权重)估计样本协方差矩阵和投资组合的SD,但我不确定如何在滚动窗口的每个时段都这样做。希望有任何线索