R - 用于日内数据的quantstrat CSV导入

时间:2016-11-29 21:50:27

标签: r import xts quantstrat

我正在尝试将数据导入R中,这是第一次在R包quantstrat中使用。请参阅以下内容:

fn1 <- "fgbl_formatted_vpoc_prior_week.txt"
> fn1

> dat <- read.table(file=fn1,sep=",",header=T,as.is=T)
> dat
              Timestamp   Open   High    Low   Last Volume
1   2016-09-27 02:00:00 165.50 165.58 165.46 165.47     2001
2   2016-09-27 03:00:00 165.47 165.65 165.46 165.63     1345
3   2016-09-27 04:00:00 165.64 165.92 165.59 165.91     1241
4   2016-09-27 05:00:00 165.91 166.13 165.91 165.97     880
5   2016-09-27 06:00:00 165.98 165.98 165.76 165.78     748

有人可以展示如何以适合quantstrat的格式使用正确的日期/时间格式(我认为是POSIXct)。我很难找到任何文档来展示如何导入这种数据。

2 个答案:

答案 0 :(得分:2)

你想要时间处于POSIXct格式是正确的。 Quantstrat使用您需要创建的#104 Percentages print('#104 Percentages') percent = float(input('Enter percentage: ')) decimal = percent/100 print('Equivalent decimal:',round(decimal,2)) print() 个对象。您没有提供易于重现的内容,因此这里的第一段代码会生成您的数据:

xts
您可以在library(xts) data <- " 1 2016-09-27 02:00:00 165.50 165.58 165.46 165.47 2001 2 2016-09-27 03:00:00 165.47 165.65 165.46 165.63 1345 3 2016-09-27 04:00:00 165.64 165.92 165.59 165.91 1241 4 2016-09-27 05:00:00 165.91 166.13 165.91 165.97 880 5 2016-09-27 06:00:00 165.98 165.98 165.76 165.78 748" dat <- read.table(text = data, col.names = c("num", "date", "time", "Open" , "High", "Low", "Last", "Volume")) dat <- cbind("Timestamp" = paste(dat$date, dat$time), dat) # Make dat look just like your example when loaded in R: dat[, c("num", "date", "time")] <- NULL # Now have your object, which would be a data.frame: dat # Timestamp Open High Low Last Volume # 1 2016-09-27 02:00:00 165.50 165.58 165.46 165.47 2001 # 2 2016-09-27 03:00:00 165.47 165.65 165.46 165.63 1345 # 3 2016-09-27 04:00:00 165.64 165.92 165.59 165.91 1241 # 4 2016-09-27 05:00:00 165.91 166.13 165.91 165.97 880 # 5 2016-09-27 06:00:00 165.98 165.98 165.76 165.78 748 posix_times <- as.POSIXct(dat[, 1]) x_dat <- xts(x = dat[, 2:NCOL(dat)], order.by = posix_times) > x_dat # Open High Low Last Volume # 2016-09-27 02:00:00 165.50 165.58 165.46 165.47 2001 # 2016-09-27 03:00:00 165.47 165.65 165.46 165.63 1345 # 2016-09-27 04:00:00 165.64 165.92 165.59 165.91 1241 # 2016-09-27 05:00:00 165.91 166.13 165.91 165.97 880 # 2016-09-27 06:00:00 165.98 165.98 165.76 165.78 748 > class(x_dat) #[1] "xts" "zoo" 中使用

x_dat

PS:

如果您在数据广告中使用quantstrat或(非免费=())量化课程这样的优秀资源,您可能会发现使用quantstrat的学习过程会更快:http://www.r-programming.org/papers

答案 1 :(得分:0)

列名是否区分大小写?

因为我注意到quantmod的chartSeries()

不喜欢

colnames(my_data) <- c('Open', 'High', 'Low', 'Close', 'Volume', 'Oi')

他们必须是小写,例如:

> class(my_data)
[1] "xts" "zoo"
> tail(my_data)
                       open    high     low   close volume      oi
2016-12-30 10:00:00 2233.50 2234.50 2228.00 2229.25  71515  743254
2016-12-30 10:30:00 2229.25 2234.75 2228.75 2233.75  74937  818191
2016-12-30 11:00:00 2233.75 2235.75 2229.25 2235.00 180772  998981
2016-12-30 11:30:00 2234.75 2237.50 2233.75 2234.75 245717 1244735
2016-12-30 12:00:00 2234.50 2235.25 2233.00 2233.75   6565 1251318
2016-12-30 12:30:00 2233.50 2234.00 2233.25 2233.50    686 1252004