Hi Mark,

I suspect that the problem is that getSymbols.FI ignores data that falls on
a weekend.  Since the only data that you have is for today which is a
Saturday, getSymbols.FI does not load it.  This is something we have
recently been talking about changing.

I think your call to "exchange_rate" isn't quite right.  It should probably
be either
exchange_rate("AUDUSD", "USD", "AUD")
or, more simply,
exchange_rate("AUDUSD")

To illustrate how it would work if you had data from a weekday, I'll use a
subset of data from 1 year ago.

> library(FinancialInstrument)
<snip>

> AUDUSD <- structure(c(0.98815, 0.988, 0.98815, 0.98825, 0.98825, 0.98825,
+ 0.9882, 0.98825, 0.98815, 0.9882, 0.98835, 0.9883, 0.98815, 0.9883,
+ 0.98835, 0.9884, 0.98835, 0.9884, 0.98835, 0.98825, 0.98835,
+ 0.98845, 0.988225, 0.988075, 0.988225, 0.9883, 0.988325, 0.9883,
+ 0.9883, 0.9883, 0.9882, 0.988275, 0.9884), class = c("xts", "zoo"
+ ), .indexCLASS = c("POSIXct", "POSIXt"), .indexTZ = "", index =
structure(c(1292616000,
+ 1292616060, 1292616120, 1292616180, 1292616240, 1292616300, 1292616360,
+ 1292616420, 1292616480, 1292616540, 1292616600), tzone = "", tclass =
c("POSIXct",
+ "POSIXt")), .Dim = c(11L, 3L), .Dimnames = list(NULL,
c("AUDUSD.Bid.Price",
+ "AUDUSD.Ask.Price", "AUDUSD.Mid.Price")))

> AUDUSD
                    AUDUSD.Bid.Price AUDUSD.Ask.Price AUDUSD.Mid.Price
2010-12-17 14:00:00          0.98815          0.98830         0.988225
2010-12-17 14:01:00          0.98800          0.98815         0.988075
2010-12-17 14:02:00          0.98815          0.98830         0.988225
2010-12-17 14:03:00          0.98825          0.98835         0.988300
2010-12-17 14:04:00          0.98825          0.98840         0.988325
2010-12-17 14:05:00          0.98825          0.98835         0.988300
2010-12-17 14:06:00          0.98820          0.98840         0.988300
2010-12-17 14:07:00          0.98825          0.98835         0.988300
2010-12-17 14:08:00          0.98815          0.98825         0.988200
2010-12-17 14:09:00          0.98820          0.98835         0.988275
2010-12-17 14:10:00          0.98835          0.98845         0.988400

> #mydir <- getwd()
> dir.create("tmpdata")

> # Save to disk
> saveSymbols.days("AUDUSD", base_dir='tmpdata', extension='rda')

> # Delete from workspace
> rm("AUDUSD")

> # Define currencies and exchange_rate
> currency(c("USD", "AUD"))
[1] "USD" "AUD"

> exchange_rate('AUDUSD')
[1] "AUDUSD"

> # setSymbolLookup for all instruments in .instrument envir
> setSymbolLookup.FI("tmpdata", extension='rda', split_method='days')

> # load from disk
> getSymbols("AUDUSD", from='2010-12-17', to='2011-12-17')
[1] "AUDUSD"

> AUDUSD
                    AUDUSD.Bid.Price AUDUSD.Ask.Price AUDUSD.Mid.Price
2010-12-17 14:00:00          0.98815          0.98830         0.988225
2010-12-17 14:01:00          0.98800          0.98815         0.988075
2010-12-17 14:02:00          0.98815          0.98830         0.988225
2010-12-17 14:03:00          0.98825          0.98835         0.988300
2010-12-17 14:04:00          0.98825          0.98840         0.988325
2010-12-17 14:05:00          0.98825          0.98835         0.988300
2010-12-17 14:06:00          0.98820          0.98840         0.988300
2010-12-17 14:07:00          0.98825          0.98835         0.988300
2010-12-17 14:08:00          0.98815          0.98825         0.988200
2010-12-17 14:09:00          0.98820          0.98835         0.988275
2010-12-17 14:10:00          0.98835          0.98845         0.988400
> ## Alternatively
> # rm_instruments(keep.currencies=FALSE) # <-- delete all instrument
metadata
> currency(c("AUD", "USD"))
[1] "AUD" "USD"
> exchange_rate("AUDUSD", src=list(src="FI", dir='tmpdata',
extension='rda', split_method='days'))
[1] "AUDUSD"
> getSymbols("AUDUSD")
[1] "AUDUSD"
> AUDUSD
                    AUDUSD.Bid.Price AUDUSD.Ask.Price AUDUSD.Mid.Price
2010-12-17 14:00:00          0.98815          0.98830         0.988225
2010-12-17 14:01:00          0.98800          0.98815         0.988075
2010-12-17 14:02:00          0.98815          0.98830         0.988225
2010-12-17 14:03:00          0.98825          0.98835         0.988300
2010-12-17 14:04:00          0.98825          0.98840         0.988325
2010-12-17 14:05:00          0.98825          0.98835         0.988300
2010-12-17 14:06:00          0.98820          0.98840         0.988300
2010-12-17 14:07:00          0.98825          0.98835         0.988300
2010-12-17 14:08:00          0.98815          0.98825         0.988200
2010-12-17 14:09:00          0.98820          0.98835         0.988275
2010-12-17 14:10:00          0.98835          0.98845         0.988400
>
> # clean up
> unlink('tmpdata', recursive=TRUE)

HTH,
Garrett

On Sat, Dec 17, 2011 at 5:37 PM, Mark Harrison <harrisonmark1@gmail.com>wrote:

> I am trying to setup Financial Instrument but I keep getting an error which
> I cannot find the cause of.  I am trying to follow the instructions given
> by Brian Peterson in previous postings about how to setup persistent data
> collections.
>
> I am running Windows 7 64Bit using RStudio version 0.94.106 and R version
> 2.13.1.  I primarily do things in RStudio but I do open an R window if I
> run into issues just to confirm it is not the GUI.
>
> My base_dir is C:/Users/Mark/Documents which is what I get when I run
> getwd() or set a variable like mydir <- getwd().
>
> I have a folder under this directory for data for the aussie dollar so
> there is a folder called AUDUSD - C:/Users/Mark/Documents/AUDUSD
>
> I updated my R Profile - and run the following from a command line to check
> that it works - so that when I start RStudio everything should be setup
> including loading packages and financial instruments:
> library(quantmod)
> library(FinancialInstrument)
> currency("USD")
> currency("AUD")
> exchange_rate("AUDUSD","AUD","USD")
>
> I set the symbol lookup:
> setSymbolLookup.FI(base_dir=mydir, storage_method="rda", src="FI")
>
> I also have a file in my base_dir and in the AUDUSD directory
> 2011.12.17.AUDUSD.rda
>
> I can load this file straight from the base directory using the command:
> load("2011.12.17.AUDUSD.rda")
>
> However, when I run the command:
> getSymbols("AUDUSD", src="FI")
>
> I get the error:
>
> Error in if (ssd[length(ssd)] != symbol) dir <- paste(dir, symbol, sep =
> "/") :
>  argument is of length zero
>
>
>
> I have tried looking through the getSymbols code and searching via RSeek
> but cannot find an answer.  Any help would be appreciated.
>
>        [[alternative HTML version deleted]]
>
> _______________________________________________
> R-SIG-Finance@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]]

