r - 具有部分时间序列集的 tangencyPortfolio 函数
问题描述
我想在我的 R 代码中寻求您的帮助。
由于我想将 Markowitz 方法的投资组合性能与另一种方法进行比较,因此我想构建一个扩展窗口循环。
我正在使用包“fPortfolio”中的函数tangencyPortfolio,并使用我的timeSeries“数据”构建一个循环。这个数据非常大,有 265 列和 359 行。
所以我尝试如下构建循环(对于前 166 个数据点 - > 进行切线优化并获得权重,扩展投资组合并使用所有 359 个数据点再次执行此操作)
SpecTangency = portfolioSpec()
setSolver(SpecTangency) = "solveRquadprog"
weights_tangency = matrix(NA, 193, ncol(Data))
for(i in 1:193){
tan = tangencyPortfolio(Data[1:(166 + i),], spec=portfolioSpec(), constraints = "LongOnly")
weights_tangency[i, ] = getWeights(tan)
}
但是,我收到错误:
if (STATUS !=0) {: 参数长度为零时出错
看来,我无法像使用普通数据框一样剪切 timeSeries 数据。
谁能帮我修复代码?
谢谢!
解决方案
推荐阅读
- javascript - JavaScript AND / OR 操作数
- python - 如何绘制像素蒙版并获取像素坐标
- assembly - 在 x64 程序集中订购 .data?
- symfony - TYPO3 和 Symfony 问题(非 Composer 模式)/ CLI cronjob 问题
- javascript - React 自定义钩子与 useReducer
- c - 从另一个字符串创建一个字符串,在 C 中的每个第 n 个字符之后插入一个字符
- javascript - 使用 React + Redux 时的重定向
- angular - 响应式表单上的输入数组
- visual-studio-code - FreeBSD 是否有任何 VS 代码扩展?
- flutter - Flutter PagedListView 在渲染时不保留动态小部件