Ted Byers
2012-Jan-10 19:59 UTC
[R] plotOHLC(alpha3): Error in plotOHLC(alpha3) : x is not a open/high/low/close time series
R version 2.12.0, 64 bit on Windows.
Here is a short script that illustrates the problem:
library(tseries)
library(xts)
setwd('C:\\cygwin\\home\\Ted\\New.Task\\NKs-01-08-12\\NKs\\tests')
x = read.table("quotes_h.2.dat", header = FALSE, sep="\t",
skip=0)
str(x)
y <- data.frame(as.POSIXlt(paste(x$V2,substr(x$V4,4,8),sep="
"),format='%Y-%m-%d %H:%M'),x$V5)
colnames(y) <- c("tickdate","price")
str(y)
plot(y)
z <- as.irts(y)
str(z)
plot(z)
str(alpha3)
List of 2
$ time : POSIXt[1:98865], format: "2010-06-30 15:47:00"
"2010-06-30
15:53:00" "2010-06-30 17:36:00" ...
$ value: num [1:98865, 1:4] 9215 9220 9205 9195 9195 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : NULL
.. ..$ : chr [1:4] "z.Open" "z.High" "z.Low"
"z.Close"
- attr(*, "class")= chr "ts"
- attr(*, "tsp")= num [1:3] 1 2 1
alpha3 <- as.xts(to.minutes3(z,OHLC = TRUE))
plotOHLC(alpha3)
Error in plotOHLC(alpha3) : x is not a open/high/low/close time series
The file quotes_h.2.dat contains real time tick data for futures contracts,
so the above manipulation is my attempt to just get a time series with one
column being a date/time and the other being tick price. I believe I have
to use read.table to make a data frame, and then the manipulations to
combine the date and time fields from that feed, along with the price.
My first attempt at using to.minutes3 (and I am interested in the other
'to.period' functions too), is to get a regular time series to which I
can
apply rollapply, along with a function in which I use various autoregression
methods, along with forecasting for as long as the 95% confidence intervals
is reasonably close - I want to know how far into the future the forecast
contains useful information. And then, I want to create a plot in which I
do the autoregression, and then plot the actual and forecast prices (along
with the confidence interval), as a function of time, embed that in a
function, which rollappply works with, so I can have a plot comprised of all
those individual plots (plotting only the comparison of actual and forecast
values).
It seems everything works adequately until I try the plotOHLC function
itself, which gives me the error in the subject line.
I would ask for two things:
1) what the fix is to get rid of that error plotOHLC gives me
2) some tips on the 'walk-forward' method I am looking at using.
Thanks
Ted
[[alternative HTML version deleted]]
Joshua Ulrich
2012-Jan-11 15:34 UTC
[R] plotOHLC(alpha3): Error in plotOHLC(alpha3) : x is not a open/high/low/close time series
Hi Ted, On Tue, Jan 10, 2012 at 1:59 PM, Ted Byers <r.ted.byers at gmail.com> wrote:> R version 2.12.0, 64 bit on Windows. > > Here is a short script that illustrates the problem: > library(tseries) > library(xts) > setwd('C:\\cygwin\\home\\Ted\\New.Task\\NKs-01-08-12\\NKs\\tests') > x = read.table("quotes_h.2.dat", header = FALSE, sep="\t", skip=0) > str(x) > y <- data.frame(as.POSIXlt(paste(x$V2,substr(x$V4,4,8),sep=" > "),format='%Y-%m-%d %H:%M'),x$V5) > colnames(y) <- c("tickdate","price") > str(y) > plot(y) > z <- as.irts(y) > str(z) > plot(z) > str(alpha3) > List of 2 > $ time : POSIXt[1:98865], format: "2010-06-30 15:47:00" "2010-06-30 > 15:53:00" "2010-06-30 17:36:00" ... > $ value: num [1:98865, 1:4] 9215 9220 9205 9195 9195 ... > ?..- attr(*, "dimnames")=List of 2 > ?.. ..$ : NULL > ?.. ..$ : chr [1:4] "z.Open" "z.High" "z.Low" "z.Close" > - attr(*, "class")= chr "ts" > - attr(*, "tsp")= num [1:3] 1 2 1 >This is a big clue. Your alpha3 object is a list with two elements 1) the datetime, and 2) the OHLC values as a ts object. There's no as.xts() method for this type of object.> alpha3 <- as.xts(to.minutes3(z,OHLC = TRUE)) >Look at str(z). Why did you convert z to an irts object instead of directly to an xts object? to.minutes() expects an xts object. Try something like this instead: z <- xts(y[,2], y[,1]) alpha3 <- to.minutes3(z, OHLC=TRUE)> plotOHLC(alpha3) > Error in plotOHLC(alpha3) : x is not a open/high/low/close time series > > The file quotes_h.2.dat contains real time tick data for futures contracts, > so the above manipulation is my attempt to just get a time series with one > column being a date/time and the other being tick price. ?I believe I have > to use read.table to make a data frame, and then the manipulations to > combine the date and time fields from that feed, along with the price. > > My first attempt at using to.minutes3 (and I am interested in the other > 'to.period' functions too), is to get a regular time series to which I can > apply rollapply, along with a function in which I use various autoregression > methods, along with forecasting for as long as the 95% confidence intervals > is reasonably close - I want to know how far into the future the forecast > contains useful information. ?And then, I want to create a plot in which I > do the autoregression, and then plot the actual and forecast prices (along > with the confidence interval), as a function of time, embed that in a > function, which rollappply works with, so I can have a plot comprised of all > those individual plots (plotting only the comparison of actual and forecast > values). > > It seems everything works adequately until I try the plotOHLC function > itself, which gives me the error in the subject line. > > I would ask for two things: > 1) what the fix is to get rid of that error plotOHLC gives me > 2) some tips on the 'walk-forward' method I am looking at using. > > Thanks > Ted > > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- Joshua Ulrich | FOSS Trading: www.fosstrading.com