2

我遇到了以下 R 脚本的问题:

    library(quantmod)
    mydata = read.csv("C:/AAD.DE.csv")   
    ### getSymbols("AAPL",src="yahoo")  
    sma20 <- SMA(mydata[,"Close"],20)


write.csv(   
  data.frame( date=index(mydata[,"Date"])
, coredata(mydata)
, coredata(sma20)
 ),   
  row.names=FALSE,   
  file="C:/neu_AAD.DE.csv" 
)

SMA 已计算但顺序错误。所以我必须在计算 SMA 之前对文件进行升序排序?我认为文件中的日期用作字符串而不是日期?

我不使用getSymbols("AAPL",src="yahoo") ,因为它只返回 2007 年至今的数据,没有旧数据。

4

1 回答 1

2

我没有使用 quantmod 库,但是 fImport 库中的 yahooSeries() 函数可以为您提供完整的数据长度。

对于数据顺序,您应该将字符串日期转换为日期格式并对其进行排序,代码如下:

library(fImport)
mydata <- yahooSeries(symbols = "AAPL", nDaysBack = 100000)
mydata <- as.data.frame(mydata, stringsAsFactors = FALSE)
mydata <- cbind(rownames(mydata), mydata)
names(mydata) <- c("Date", "Open", "High", "Low", "Close", "Volume", "Adj.Close")
rownames(mydata) <- NULL
mydata$Date <- as.Date(mydata$Date)
mydata <- mydata[order(mydata$Date), ]
于 2012-02-14T07:55:03.647 回答