我堅持用下面的代碼。過濾XTS通過共同的日期對象
僅供參考它是從以下網站(http://gekkoquant.com/2013/01/21/statistical-arbitrage-trading-a-cointegrated-pair/)所採取的代碼,我也編過R Studio中的代碼。
library("quantmod")
startDate = as.Date("2013-01-01")
symbolLst<-c("WPL.AX","BHP.AX")
symbolData <- new.env()
getSymbols(symbolLst, env = symbolData, src = "yahoo", from = startDate)
stockPair <- list(
a =coredata(Cl(eval(parse(text=paste("symbolData$\"",symbolLst[1],"\"",sep="")))))
,b = coredata(Cl(eval(parse(text=paste("symbolData$\"",symbolLst[2],"\"",sep="")))))
,hedgeRatio = 0.70 ,name=title)
spread <- stockPair$a - stockPair$hedgeRatio*stockPair$b
我收到以下錯誤。
Error in stockPair$a - stockPair$hedgeRatio * stockPair$b :
non-conformable arrays
這些特定系列不匹配的原因是因爲「WPL.AX」有一個額外的值(日期:19-05-2014 - 矩陣的長度是不同的)相比,「必和必拓」。加載數據時如何解決這個問題?
我還測試了其他股票對,如「ANZ」,「WBC」與源=「谷歌」,它產生兩個相同長度的數組。
> length(stockPair$a)
[1] 360
> length(stockPair$b)
[1] 359
你需要找到爲什麼尺寸不同,不要試圖強迫他們是相同的。 –
@MatthewLundberg對不起,讓我重新自我說明,這些特定系列不匹配的原因是因爲「WPL.AX」與「BHP」相比具有額外的價值(日期:19-05-2014)。加載數據時如何解決此問題? – NodeExplosion
請在問題說明這一點,而不是「我將如何力R符合兩個數組。」 –