Re: [R] get.hist.quote problem yahoo

2007-02-13 Thread Kurt Hornik
 Rene Braeckman writes:

 I had the same problem some time ago. Below is a function that I
 picked up on the web somewhere (can't remember where; may have been a
 newsletter).  It's based on the tseries function but the difference is
 that this function produces a data frame with a column containing the
 dates of the quotes, instead of a time series object. I had to replace
 %d-%b-%y by %Y-%m-%d to make it work, probably as you stated
 because the format was changed by Yahoo.

This issue should be taken care of now by a new release of tseries I put
out two days ago.

-k

 Hope this helps.

 Rene

 # --
 # df.get.hist.quote() function
 #
 # Based on code by A. Trapletti (package tseries)
 #
 # The main difference is that this function produces a data frame with
 # a column containing the dates of the quotes, instead of a time series
 # object.
 df.get.hist.quote - function (instrument = ibm,
start, end,
quote = c(Open,High, Low,
 Close,Volume),
provider = yahoo, method = auto) 
 {
 if (missing(start)) 
 start - 1970-01-02
 if (missing(end)) 
 end - format(Sys.time() - 86400, %Y-%m-%d)
 provider - match.arg(provider)
 start - as.POSIXct(start, tz = GMT)
 end - as.POSIXct(end, tz = GMT)
 if (provider == yahoo) {
 url - paste(http://chart.yahoo.com/table.csv?s=;, instrument, 
 format(start, a=%mb=%dc=%Y), format(end,
 d=%me=%df=%Y), 
 g=dq=qy=0z=, instrument, x=.csv, sep = )
 destfile - tempfile()
 status - download.file(url, destfile, method = method)
 if (status != 0) {
 unlink(destfile)
 stop(paste(download error, status, status))
 }
 status - scan(destfile, , n = 1, sep = \n, quiet = TRUE)
 if (substring(status, 1, 2) == No) {
 unlink(destfile)
 stop(paste(No data available for, instrument))
 }
 x - read.table(destfile, header = TRUE, sep = ,)
 unlink(destfile)
 nser - pmatch(quote, names(x))
 if (any(is.na(nser))) 
 stop(This quote is not available)
 n - nrow(x)
 lct - Sys.getlocale(LC_TIME)
 Sys.setlocale(LC_TIME, C)
 on.exit(Sys.setlocale(LC_TIME, lct))
 dat - gsub( , 0, as.character(x[, 1]))
 dat - as.POSIXct(strptime(dat, %Y-%m-%d), tz = GMT)
 if (dat[n] != start) 
 cat(format(dat[n], time series starts %Y-%m-%d\n))
 if (dat[1] != end) 
 cat(format(dat[1], time series ends   %Y-%m-%d\n))
 
 return(data.frame(cbind(Date=I(format(dat[n:1],%Y-%m-%d)),x[n:1,nser]),row
 .names=1:n))
   }
 else stop(Provider not implemented)
 } 

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Daniele Amberti
 Sent: Friday, February 09, 2007 5:22 AM
 To: r-help
 Subject: [R] get.hist.quote problem yahoo

 I have functions using get.hist.quote() from library tseries.

 It seems that something changed (yahoo) and function get broken.

 try with a simple

 get.hist.quote('IBM')

 and let me kow if for someone it is still working.

 I get this error:
 Error in if (!quiet  dat[n] != start) cat(format(dat[n], time series
 starts %Y-%m-%d\n)) : 
 missing value where TRUE/FALSE needed

 Looking at the code it seems that before the format of dates in yahoo's cv
 file was not iso.
 Now it is iso standard year-month-day

 Anyone get the same problem?


 --
 Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom
 http://click.libero.it/infostrada9feb07

 __
 R-help@stat.math.ethz.ch 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.

__
R-help@stat.math.ethz.ch 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.


[R] get.hist.quote problem yahoo

2007-02-09 Thread Daniele Amberti
I have functions using get.hist.quote() from library tseries.

It seems that something changed (yahoo) and function get broken.

try with a simple

get.hist.quote('IBM')

and let me kow if for someone it is still working.

I get this error:
Error in if (!quiet  dat[n] != start) cat(format(dat[n], time series starts 
%Y-%m-%d\n)) : 
missing value where TRUE/FALSE needed

Looking at the code it seems that before the format of dates in yahoo's cv file 
was not iso.
Now it is iso standard year-month-day

Anyone get the same problem?


--
Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom
http://click.libero.it/infostrada9feb07

__
R-help@stat.math.ethz.ch 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.


[R] get.hist.quote problem yahoo

2007-02-09 Thread Daniele Amberti
I have functions using get.hist.quote() from library tseries.

It seems that something changed (yahoo) and function get broken.

try with a simple

get.hist.quote('IBM')

and let me kow if for someone it is still working.

I get this error:
Error in if (!quiet  dat[n] != start) cat(format(dat[n], time series starts 
%Y-%m-%d\n)) : 
missing value where TRUE/FALSE needed

Looking at the code it seems that before the format of dates in yahoo's cv file 
was not iso.
Now it is iso standard year-month-day

Anyone get the same problem?


--
Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom
http://click.libero.it/infostrada9feb07

__
R-help@stat.math.ethz.ch 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.


[R] get.hist.quote problem yahoo

2007-02-09 Thread Daniele Amberti
I have functions using get.hist.quote() from library tseries.

It seems that something changed (yahoo) and function get broken.

try with a simple

get.hist.quote('IBM')

and let me kow if for someone it is still working.

I get this error:
Error in if (!quiet  dat[n] != start) cat(format(dat[n], time series starts 
%Y-%m-%d\n)) : 
missing value where TRUE/FALSE needed

Looking at the code it seems that before the format of dates in yahoo's cv file 
was not iso.
Now it is iso standard year-month-day

Anyone get the same problem?


--
Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom
http://click.libero.it/infostrada9feb07

__
R-help@stat.math.ethz.ch 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.


Re: [R] get.hist.quote problem yahoo

2007-02-09 Thread Rene Braeckman
I had the same problem some time ago. Below is a function that I picked up
on the web somewhere (can't remember where; may have been a newsletter).
It's based on the tseries function but the difference is that this function
produces a data frame with a column containing the dates of the quotes,
instead of a time series object. I had to replace %d-%b-%y by %Y-%m-%d
to make it work, probably as you stated because the format was changed by
Yahoo.

Hope this helps.

Rene

# --
# df.get.hist.quote() function
#
# Based on code by A. Trapletti (package tseries)
#
# The main difference is that this function produces a data frame with
# a column containing the dates of the quotes, instead of a time series
# object.
df.get.hist.quote - function (instrument = ibm,
   start, end,
   quote = c(Open,High, Low,
Close,Volume),
   provider = yahoo, method = auto) 
{
if (missing(start)) 
start - 1970-01-02
if (missing(end)) 
end - format(Sys.time() - 86400, %Y-%m-%d)
provider - match.arg(provider)
start - as.POSIXct(start, tz = GMT)
end - as.POSIXct(end, tz = GMT)
if (provider == yahoo) {
url - paste(http://chart.yahoo.com/table.csv?s=;, instrument, 
format(start, a=%mb=%dc=%Y), format(end,
d=%me=%df=%Y), 
g=dq=qy=0z=, instrument, x=.csv, sep = )
destfile - tempfile()
status - download.file(url, destfile, method = method)
if (status != 0) {
unlink(destfile)
stop(paste(download error, status, status))
}
status - scan(destfile, , n = 1, sep = \n, quiet = TRUE)
if (substring(status, 1, 2) == No) {
unlink(destfile)
stop(paste(No data available for, instrument))
}
x - read.table(destfile, header = TRUE, sep = ,)
unlink(destfile)
nser - pmatch(quote, names(x))
if (any(is.na(nser))) 
stop(This quote is not available)
n - nrow(x)
lct - Sys.getlocale(LC_TIME)
Sys.setlocale(LC_TIME, C)
on.exit(Sys.setlocale(LC_TIME, lct))
dat - gsub( , 0, as.character(x[, 1]))
dat - as.POSIXct(strptime(dat, %Y-%m-%d), tz = GMT)
if (dat[n] != start) 
cat(format(dat[n], time series starts %Y-%m-%d\n))
if (dat[1] != end) 
cat(format(dat[1], time series ends   %Y-%m-%d\n))
 
return(data.frame(cbind(Date=I(format(dat[n:1],%Y-%m-%d)),x[n:1,nser]),row
.names=1:n))
  }
else stop(Provider not implemented)
} 

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Daniele Amberti
Sent: Friday, February 09, 2007 5:22 AM
To: r-help
Subject: [R] get.hist.quote problem yahoo

I have functions using get.hist.quote() from library tseries.

It seems that something changed (yahoo) and function get broken.

try with a simple

get.hist.quote('IBM')

and let me kow if for someone it is still working.

I get this error:
Error in if (!quiet  dat[n] != start) cat(format(dat[n], time series
starts %Y-%m-%d\n)) : 
missing value where TRUE/FALSE needed

Looking at the code it seems that before the format of dates in yahoo's cv
file was not iso.
Now it is iso standard year-month-day

Anyone get the same problem?


--
Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom
http://click.libero.it/infostrada9feb07

__
R-help@stat.math.ethz.ch 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.

__
R-help@stat.math.ethz.ch 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.