[R-SIG-Finance] quantmod::saveSymbols not working properly for me
Jeff Ryan
jeff.a.ryan at gmail.com
Sun Jul 3 20:05:16 CEST 2011
quantmod is due for an update. I'll make sure this and other patches are incorporated.
Thanks,
Jeff
Jeffrey Ryan | Founder | jeffrey.ryan at lemnica.com
www.lemnica.com
On Jul 3, 2011, at 11:59 AM, G See <gsee000 at gmail.com> wrote:
> saveSymbols does not work because of a typo. It uses "env" instead of
> "envir" or "pos" in the call to "save." I brought this up a while ago....I
> assume Jeff will fix it in the next release?
>
> For now, it's easy enough to just use "save" or write your own wrapper.
>
>
> There's a package on R-Forge called twsInstrument that has the constituent
> S&P 500 symbols. It's more of a place to store some extra code, than it is
> a package (i.e. it's alpha code, that will probably be moved to other
> packages in the future). This will define all the stocks for you, but there
> are no guarantees those are still the right symbols -- I know a couple of
> the stocks aren't in the index anymore.
>
> library(twsInstrument)
> define_stocks(x = SP500desc, use.IB=FALSE)
>
> Then, you can list all the symbols with something like:
>
> ls_stocks()
>
> or download the daily prices with something like:
>
> getSymbols(ls_stocks())
>
> -Garrett
>
> On Sun, Jul 3, 2011 at 11:30 AM, Samo Pahor <samo.pahor at gmail.com> wrote:
>
>> Hello experts,
>>
>> I am trying to get rid of the database while managing my data. I am testing
>> saving xts objects on disk in binanry form in .RData files. I encountered
>> some strange issues.
>>
>> I am downloading data from yahoo (approx 600 symbols - I have omitted some
>> below to make exmaple more clear) and when I use saveSymbols to save them
>> to
>> disk some of them are not saved properly although I can manipulate them
>> using R. If I save particular symbol "manually" using save it works OK. I
>> am
>> using two R sessions to see if it works correctley.
>>
>> Reproducible code(session that is downloading data from yahoo and saving to
>> disk):
>> require(quantmod)
>> dwhFolderRaw = "D:/Temp/symbols/yahoo_hist/raw/"
>> #download from
>>
>> http://www.standardandpoors.com/prot/spf/docs/indices/SPUSA-500-USDUF--P-US-L--Constituents.xls
>> SnP500ConstituentsFileName = "SPUSA-500-USDUF--P-US-L--Constituents.csv"
>> urlSnP500 <- paste(eligibleFIsFolder, SnP500ConstituentsFileName, sep="")
>> # Read in CSV from S&P website
>> SnP500 <- read.csv(urlSnP500)
>> symbols <- paste(trim(SnP500[,'Symbol']),collapse=";")
>> # BRK needs to be "BRK_B" or "BRK-A", actually, change all "/" to "-"
>> symbols <- gsub("/", "-", symbols)
>> getSymbols(symbols, from='1900-01-01')
>> showSymbols()
>> saveSymbols(file.path=dwhFolderRaw)
>> head(F)
>> tail(F)
>>> head(F)
>> F.Open F.High F.Low F.Close F.Volume F.Adjusted
>> 1977-01-03 61.00 61.63 61.00 61.25 896300 0.50
>> 1977-01-04 61.25 61.25 59.00 59.50 1504600 0.49
>> 1977-01-05 59.50 59.88 58.50 58.75 1481600 0.48
>> 1977-01-06 59.00 60.38 59.00 59.75 1670300 0.49
>> 1977-01-07 59.75 60.50 59.63 60.13 940400 0.49
>> 1977-01-10 60.13 60.63 60.13 60.63 1334000 0.50
>>> tail(F)
>> F.Open F.High F.Low F.Close F.Volume F.Adjusted
>> 2011-06-24 13.52 13.60 13.14 13.24 82707400 13.24
>> 2011-06-27 13.35 13.55 13.09 13.46 49987600 13.46
>> 2011-06-28 13.55 13.55 13.25 13.33 54013200 13.33
>> 2011-06-29 13.41 13.51 13.32 13.42 54105500 13.42
>> 2011-06-30 13.46 13.97 13.36 13.79 74076900 13.79
>> 2011-07-01 13.92 14.13 13.73 14.02 66304800 14.02
>>
>> When I do this F (and some other symbols also) only has 1K size of a file
>> on
>> disk.
>>
>> Reproducible code with error (R session that tries to read/read data):
>> require(quantmod)
>> library(xts)
>> getSymbols("BRF", src='RData', extension="RData",
>> dir="D:/Temp/symbols/yahoo_hist/raw/")
>> head(BRF)
>> tail(BRF)
>> getSymbols("F", src='RData', extension="RData",
>> dir="D:/Temp/symbols/yahoo_hist/raw/")
>> head(F)
>> tail(F)
>>
>>> require(quantmod)
>> Loading required package: quantmod
>> Loading required package: Defaults
>> Loading required package: xts
>> Loading required package: zoo
>> Loading required package: TTR
>>> getSymbols("BRF", src='RData', extension="RData",
>> dir="D:/Temp/symbols/yahoo_hist/raw/")
>> [1] "BRF"
>>>
>>> head(BRF)
>> BRF.Open BRF.High BRF.Low BRF.Close BRF.Volume BRF.Adjusted
>> 2009-05-14 23.68 24.49 23.68 24.45 31400 22.71
>> 2009-05-15 24.67 24.84 24.25 24.35 28200 22.62
>> 2009-05-18 25.00 26.85 24.85 25.89 53000 24.05
>> 2009-05-19 25.99 26.89 25.69 26.31 97400 24.44
>> 2009-05-20 26.93 27.29 26.10 26.20 133100 24.34
>> 2009-05-21 25.92 25.93 25.30 25.50 71800 23.69
>>> tail(BRF)
>> BRF.Open BRF.High BRF.Low BRF.Close BRF.Volume BRF.Adjusted
>> 2011-06-24 55.36 59.33 54.89 54.99 136200 54.99
>> 2011-06-27 55.05 55.62 54.86 55.40 324800 55.40
>> 2011-06-28 55.50 56.47 55.36 56.33 218700 56.33
>> 2011-06-29 56.38 56.71 56.11 56.17 472800 56.17
>> 2011-06-30 56.61 57.14 56.39 56.74 360000 56.74
>> 2011-07-01 57.10 57.76 56.83 57.58 269100 57.58
>>> getSymbols("F", src='RData', extension="RData",
>> dir="D:/Temp/symbols/yahoo_hist/raw")
>> Error in fr[, -1] : incorrect number of dimensions
>>>
>>>
>>> head(F)
>> [1] FALSE
>>> tail(F)
>> [1] FALSE
>> For example, F is not saved correctley. On disk it size is only 1 KB as
>> output from saveSymbols(). When save from base is used everything is OK and
>> it gets the size of 141 KB. Which is strange since saveSymbols is using
>> save... Maybe it has something to do with outputing/saving big number of
>> symbols/objects at once... What am I doing wrong?
>>
>> If I save F in fors R session using
>> save(F, file=paste(dwhFolderRaw, "F.RData", sep=""))
>>
>> then F is saved to disk correctley (has size of 141K), in the second
>> session
>> everything works as it should:
>>> getSymbols("F", src='RData', extension="RData",
>> dir="D:/Temp/symbols/yahoo_hist/raw/")
>> [1] "F"
>>>
>>> head(F)
>> F.Open F.High F.Low F.Close F.Volume F.Adjusted
>> 1977-01-03 61.00 61.63 61.00 61.25 896300 0.50
>> 1977-01-04 61.25 61.25 59.00 59.50 1504600 0.49
>> 1977-01-05 59.50 59.88 58.50 58.75 1481600 0.48
>> 1977-01-06 59.00 60.38 59.00 59.75 1670300 0.49
>> 1977-01-07 59.75 60.50 59.63 60.13 940400 0.49
>> 1977-01-10 60.13 60.63 60.13 60.63 1334000 0.50
>>> tail(F)
>> F.Open F.High F.Low F.Close F.Volume F.Adjusted
>> 2011-06-24 13.52 13.60 13.14 13.24 82707400 13.24
>> 2011-06-27 13.35 13.55 13.09 13.46 49987600 13.46
>> 2011-06-28 13.55 13.55 13.25 13.33 54013200 13.33
>> 2011-06-29 13.41 13.51 13.32 13.42 54105500 13.42
>> 2011-06-30 13.46 13.97 13.36 13.79 74076900 13.79
>> 2011-07-01 13.92 14.13 13.73 14.02 66304800 14.02
>>
>> BTW: is there some sort of automatic way to get a list of
>> constituents/symbols of S&P 500? I tried using code in the comments posted
>> by Joshua Ulrich on this site http://www.maxdama.com/?p=148 and here
>>
>> http://www.mathworks.com/matlabcentral/fileexchange/23569-get-trading-data-from-yahoo-in-your-matlab-workpace-or-excel
>> :
>> require(quantmod)
>> url <- "
>>
>> http://www2.standardandpoors.com/servlet/Satellite?pagename=spcom/page/download§orid=%20%3E%20%2700%27&itemname=%3E=%20%271%27&dt=07-MAY-2009&indexcode=500
>> "
>> # Read in CSV from S&P website
>> x <- read.csv(url)
>> # Pull the first 10 symbols from Yahoo
>> symbols <- paste(x[1:10,'Symbol'],collapse=";")
>> getSymbols(symbols, env=.GlobalEnv)
>>
>> It is not working for dates beyond 2010. Any alternative ways?
>>
>> Thanks in advance for any ideas what might be wrong.
>>
>> Kind regards,
>> Samo.
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-SIG-Finance at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>> -- Subscriber-posting only. If you want to post, subscribe first.
>> -- Also note that this is not the r-help list where general R questions
>> should go.
>>
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-SIG-Finance at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.
More information about the R-SIG-Finance
mailing list