问题描述
returns
是30个股票收益率的数据框。
我构建了以下函数,用于计算分层的风险平价权重。
def hrp_weights(returns):
w=pd.Series(pypfopt.hierarchical_portfolio.HRPOpt(returns).optimize())
return w
如果我运行函数hrp_weights(returns)
,则会得到所有30个权重的pd系列。可以。
我想做的是在滚动窗口中运行该函数,因此权重可能每天都会变化。因此,我编写了如下代码:
returns.rolling(252).apply(hrp_weights
)
不幸的是,我知道rolling
函数的输出不允许数组,而只允许标量。我该如何处理这个问题?
此外,我收到以下奇怪的错误消息:returns are not a dataframe
为什么我的函数在这里工作:hrp_weights(returns)
,而不在这里returns.rolling(252).apply(hrp_weights
)?
感谢您的帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)