I don?t think you can use ?nrow()? since it?s a character vector, you
need ?length()?
*Erol Biceroglu, MFin*
Senior Risk Analyst
*OPSEU Pension Trust*
P: 416-681-2707 F: 416-681-6175
e: EBiceroglu at OPTrust.com
*From:* R-SIG-Finance [mailto:r-sig-finance-bounces at r-project.org] *On
Behalf Of *Isak Engdahl
*Sent:* Tuesday, February 24, 2015 10:02 AM
*To:* Marco Sun
*Cc:* r-sig-finance
*Subject:* Re: [R-SIG-Finance] Quantmod Yahoo ticker download error
Hi Marco,
Very Strange! I update quantmod, still get this error...
Instead of downloading a lots of tickers, I tried to limit the list to
those tickers and tired to simplify the code. I get this error on the code
below:
*Error in 1:nrow(symbols) : argument of length 0*
I runned nrow(symbols) and get
nrow(symbols)
NULL
The symbols should not have any rows, right?
The For should look at the datasets for the tickers and store in to the
database, right?
*#Initialization*
*library(quantstrat)*
*library(TTR)*
*startDate <- "2010-01-01"*
*endDate <- "2013-07-31"*
*symbols = c("XLF","XLP","XLE","XLY","XLV","XLI","XLB","XLK","XLU")*
*Sys.setenv(TZ="UTC")*
*getSymbols(symbols, src="yahoo", from=startDate, to=endDate, adjust=TRUE)*
*# Save data to MySQL*
*library(RMySQL)*
*con <- dbConnect(RMySQL::MySQL(), host="localhost",
user="donedge",password="p at ssw0rd", dbname= "daily")*
*# Loop through each symbol*
*for (i in 1:nrow(symbols)){*
* symbol <- symbols[i,]$Symbol*
* df = data.frame(Date=index(get(symbol)), coredata(get(symbol)))*
* setNames(df,c("Date","Open","High","Low","Close","Volume","Adjusted"))*
* if(dbExistsTable(con, symbol)){*
* dbRemoveTable(con, symbol)*
* }*
* dbWriteTable(con, name=symbol, value=df, row.names=FALSE, overwrite =
TRUE)*
*}*
On Tue, Feb 24, 2015 at 2:56 PM, Marco Sun <hs13322 at my.bristol.ac.uk>
wrote:
Hi Isak,
I have checked your scripts and there is no error reported on my platform.
getSymbols correctly downloads historical prices for `ZB-PA`
all.symbols <- stockSymbols(c("NYSE"),sort.by
=c("MarketCap","Exchange"),quiet=TRUE)
biggest.symbols <- tail(all.symbols,n=5)
clean.symbols <- subset(biggest.symbols, select =
c("Symbol","Name","LastSale","MarketCap","Sector"))
row.names(clean.symbols) <- NULL
i=1 #trying i=1 instead of doing the entire loop
symbol <- clean.symbols[i,]$Symbol
try (getSymbols(symbol, verbose=FALSE, warnings=FALSE,
from='2015-01-01'))
[1] "ZB-PA?
And a dataframe named `df` can also be constructed via your script
df = data.frame(Date=index(get(symbol)), coredata(get(symbol)))
I would recommend you to update `quantmod` package if it is not the latest
released version on your console.
Best,
Marco
On 24 Feb 2015, at 08:33 pm, Isak Engdahl <isak.engdahl at gmail.com> wrote:
Hello,
Tickers with - get error when trying to download ZB-PA but not ZBK.
When I manually download it from Yahoo I get this link, that works.
http://real-chart.finance.yahoo.com/table.csv?s=ZB-PA&a=00&b=2&c=2015&d=01&e=23&f=2015&g=d&ignore=.csv
The Quantmod tried to download from this link, which does not exist.
http://ichart.finance.yahoo.com/table.csv?s=ZB-PA&a=0&b=01&c=2015&d=1&e=24&f=2015&g=d&
*q=q&y=0&z=ZB-PA&x*=.csv
If this part could be replaced "q=q&y=0&z=ZB-PA&x" with "d&ignore" and it
will work both with ZB-PA and ZBK.
Maybe this forum is not the correct place to suggest this improvement,
please point me in right direction.
Maybe someone can help me out to fix this script error?
My script stop writing to the database if one of these tickers get this
error described above (no data exist for symbol ZB-PA to be stored in the
database. Anyone know how to ignore tickers that get this error so the
script can continue to load all tickers that has downloaded data?
Please find attached scripts.
Error when trying to download ticker data from Yahoo Finance for ZB-PA.
=================================
*"Downloading ZB-PA*
*Error in download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=",
from.m, : *
* cannot open URL
'http://ichart.finance.yahoo.com/table.csv?s=ZB-PA&a=0&b=01&c=2015&d=1&e=24&f=2015&g=d&q=q&y=0&z=ZB-PA&x=.csv
<http://ichart.finance.yahoo.com/table.csv?s=ZB-PA&a=0&b=01&c=2015&d=1&e=24&f=2015&g=d&q=q&y=0&z=ZB-PA&x=.csv>'*
*In addition: Warning message:*
*In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m, :*
* InternetOpenUrl failed: 'The operation timed out'*
*, error - did not download (likely due to rate limiting*
*Downloading ZBK*
*Warning message:*
*In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m, :*
* downloaded length 1653 != reported length 200*
*> View(clean.symbols)*
*> "*
=============================
========================================
con <- dbConnect(RMySQL::MySQL(), host="localhost",
user="donedge",password="p at ssw0rd", dbname= "daily")
# Loop through each symbol
for (i in 1:nrow(clean.symbols)){
+ symbol <- clean.symbols[i,]$Symbol
+ df = data.frame(Date=index(get(symbol)), coredata(get(symbol)))
+ setNames(df,c("Date","Open","High","Low","Close","Volume","Adjusted"))
+
+ cat("Storing",symbol,"\n")
+
+ if(dbExistsTable(con, symbol)){
+ dbRemoveTable(con, symbol)
+ }
+
+ dbWriteTable(con, name=symbol, value=df, row.names=FALSE, overwrite =
TRUE)
+
+ }
*Error in get(symbol) : object 'ZB-PA' not found*
========================================
Kind Regards
Isak
<downloadData.R><mysqlData.R><init.R>_______________________________________________
R-SIG-Finance at r-project.org mailing list