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,但我不确定如何在滚动窗口的每个时段都这样做。希望有任何线索