Learn R Programming

quantmod (version 0.3-1)

getSymbols: Load and Manage Data from Multiple Sources

Description

Functions to load and manage Symbols in specified environment. Used by specifyModel to retrieve symbols specified in first step of modelling procedure. Not a true S3 method, but methods for different data sources follow an S3-like naming convention. Additional methods can be added by simply adhering to the convention.

Current src methods available are: yahoo, google, MySQL, FRED, csv, RData, and oanda.

Data is loaded silently without user assignment by default.

Usage

getSymbols(Symbols = NULL, 
           env = .GlobalEnv,
           reload.Symbols = FALSE,
           verbose = FALSE,
           warnings = TRUE,
           src = "yahoo",
           symbol.lookup = TRUE,
           auto.assign = TRUE,
           ...)

loadSymbols(Symbols = NULL, env = .GlobalEnv, reload.Symbols = FALSE, verbose = FALSE, warnings = TRUE, src = "yahoo", symbol.lookup = TRUE, auto.assign = TRUE, ...)

showSymbols(env=.GlobalEnv) removeSymbols(Symbols=NULL,env=.GlobalEnv) saveSymbols(Symbols = NULL, file.path=stop("must specify 'file.path'"), env = .GlobalEnv)

Arguments

Symbols
a character vector specifying the names of each symbol to be loaded
env
where to create objects. (new.env())
reload.Symbols
boolean to reload current symbols in specified environment. (FALSE)
verbose
boolean to turn on status of retrieval. (FALSE)
warnings
boolean to turn on warnings. (TRUE)
src
character string specifying sourcing method. (yahoo)
symbol.lookup
retrieve symbol's sourcing method from external lookup (TRUE)
auto.assign
should results be loaded to the environment
file.path
character string of file location
...
additional parameters

Value

  • A call to getSymbols will load into the specified environment one object for each Symbol specified, with class defined by return.class. Presently this may be ts, its, zoo, xts, or timeSeries.

    If auto.assign is set to FALSE an object of type return.class will be returned.

Details

getSymbols is a wrapper to load data from different sources - be them local or remote. Data is fetched through one of the available getSymbols methods and saved in the env specified - the .GlobalEnv by default. Data is loaded in much the same way that load behaves. By default, it is assigned automatically to a variable in the specified environment, without the user explicitly assigning the returned data to a variable.

The previous sentence's point warrants repeating - getSymbols is called for its side effects, and does not return the data object loaded. The data is loaded silently by the function into a new environment by default - or the environment specified. This behavior can be overridden by setting auto.assign to FALSE, though it is not advised.

Previous versions of getSymbols assigned each object into the user's .GlobalEnv by name. This behavior is now supported by setting env=.GlobalEnv (the current transitional default), or by using the wrapper loadSymbols. Many thanks to Kurt Hornik and Achim Zeileis for suggesting this change.

By default the variable chosen is an R-legal name derived from the symbol being loaded. It is possible, using setSymbolLookup to specify an alternate name if the default is not desired, see that function for details.

The result of a call to getSymbols when auto.assign is set to TRUE (the default) is a new object or objects in the user's specified environment - with the loaded symbol(s) names returned upon exit if that environment is the .GlobalEnv.

By default, a new environment is returned which contains all the objects loaded into it.

If auto.assign is set to FALSE the data will be returned from the call, and will require the user to assign the results himself.

Most, if not all, documentation and functionality in quantmod assumes that auto.assign remains set to TRUE.

Upon completion a list of loaded symbols is stored in the global environment under the name .getSymbols.

Objects loaded by getSymbols with auto.assign=TRUE can be viewed with showSymbols and removed by a call to removeSymbols. Additional data loading methods can be created simply by following the S3-like naming convention where getSymbols.NAME is used for your function NAME. See getSymbols source code.

setDefaults(getSymbols) can be used to specify defaults for getSymbols arguments. setDefaults(getSymbols.MySQL) may be used for arguments specific to getSymbols.MySQL, etc.

The sourcing of data is managed internally through a complex lookup procedure. If symbol.lookup is TRUE (the default), a check is made if any symbol has had its source specified by setSymbolLookup.

If not set, the process continues by checking to see if src has been specified by the user in the function call. If not, any src defined with setDefaults(getSymbols,src=) is used.

Finally, if none of the other source rules apply the default getSymbols src method is used (yahoo).

See Also

getModelData,specifyModel, setSymbolLookup, getSymbols.csv, getSymbols.RData, getSymbols.oanda, getSymbols.yahoo, getSymbols.google, getSymbols.FRED, getFX, getMetals,

Examples

Run this code
setSymbolLookup(QQQQ='yahoo',SPY='MySQL')

getSymbols(c('QQQQ','SPY'))                
# loads QQQQ from yahoo (set with setSymbolLookup)
# loads SPY from MySQL (set with setSymbolLookup)

getSymbols('F')       
# loads Ford market data from yahoo (the formal default)

setDefaults(getSymbols,verbose=TRUE,src='MySQL')
getSymbols('DIA')                 
# loads symbol from MySQL database (set with setDefaults)

getSymbols('F',src='yahoo',return.class='ts') 
# loads Ford as time series class ts

Run the code above in your browser using DataLab