我一直在看定量的演示。我在运行faber_rebal.r时遇到了问题。如果出现以下错误,它将失败:
> out<-applyStrategy.rebalancing(strategy='faber' , portfolios='faber')
Error in `colnames<-`(`*tmp*`, value = c("MaxPos", "LongLevels", "MinPos", :
length of 'dimnames' [2] not equal to array extent下面是sessionInfo()的输出:
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_South Africa.1252 LC_CTYPE=English_South Africa.1252
[3] LC_MONETARY=English_South Africa.1252 LC_NUMERIC=C
[5] LC_TIME=English_South Africa.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] quantstrat_0.7.8 foreach_1.4.1 blotter_0.8.15
[4] PerformanceAnalytics_1.1.0 FinancialInstrument_1.1 quantmod_0.4-0
[7] Defaults_1.1-1 TTR_0.22-0 xts_0.9-5
[10] zoo_1.7-10 lattice_0.20-23
loaded via a namespace (and not attached):
[1] codetools_0.2-8 grid_3.0.1 iterators_1.0.6 tools_3.0.1当函数applyStrategy.rebalancing调用私有函数ruleProc时,就会出现这个问题。
在我的Ubuntu12.04机器上,R3.0.1也有相同的错误。
任何帮助,使它发挥作用,将不胜感激。
谢谢查尔斯
发布于 2014-01-19 21:33:10
我在让faber_rebal.R演示也开始工作时遇到了一些问题。
首先,您必须设置时区:
ttz<-Sys.getenv('TZ')
Sys.setenv(TZ='UTC')第二,我可以让add.rule重新平衡中的以下一行工作起来:
refprice=quote(last(getPrice(mktdata)[paste('::',timestamp,sep='')][,1])),所以我把它改成:
refprice=quote(last(getPrice(mktdata)[paste('::','20140119',sep='')][,1])),我希望这能帮上忙。
最好,彼得
发布于 2014-04-01 19:46:36
看起来演示在包的最新更新中被修复了。尝试更新到Rev.1595或更高版本
https://stackoverflow.com/questions/18442508
复制相似问题