Fix getQuote.yahoo()
for API changes. Thanks to Ethan B. Smith for the report and patch! Also add error message for users in GDPR countries, since we cannot automatically consent to GDPR and the request fails without consent. #392 #393 #395
Fix getQuote.yahoo()
when the user only requested metrics that do not have have a value for ‘regularMarketTime’. Set the value to NA in these cases so the output remains the same regardless of whether the endpoint returns a ‘regularMarketTime’ or not. Thanks to @mehdiMBH for the report! #255
Add fields to getQuote.yahoo()
that are returned when no fields are explicitly requested. Thanks to @Courvoisier13 for the report! #335
Add intraday endpoint to getSymbols.yahoo()
. Thanks to @kapsner for the report and patch! Also allow suppressing the warning if more than 7 days of data are requested (@eddelbuettel). #351 #381 #399
Add warning if getSymbols()
is called with tickers that are reserved words because accessing them requires back-quotes (e.g. NA
). #401
Fix allReturns()
when ‘subset’ is specified. Thanks to @Panagis1980 for the report! #402
getSymbols.oanda()
URL. Thanks to @macray76 for the report. #387Fix getQuote.yahoo()
error. Thanks to Ethan B. Smith for the report and patch! #382 #383
Add name
argument to add_TA()
. Thanks to @SamoPP for the suggestion! #377 #205
Fix S3 method issues. R-devel (83995-ish) added a check for possible S3 method issues. Register methods it found that were not registered: str.replot()
, seriesHi.timeSeries()
, and seriesLo.timeSeries()
.
It was also confused by range.bars()
and unique.formula.names()
. Remove unique.formula.names()
because it wasn’t exported or used internally. Rename range.bars()
to rangeBars()
, which isn’t exported.
Thanks to Kurt Hornik for the report! #375
Remove “^” prefix from getSymbols()
return value. When the ‘Symbols’ argument has a “^” prefix and auto.assign = TRUE
:
getSymbols()
removes the “^” from the object it creates, butThe example below will create an object named IXIC
but the value of sym
will be “^IXIC”.
sym <- getSymbols("^IXIC")
That means x <- get(sym)
will not work because an object named ^IXIC
doesn’t exist. #371
Add ‘from’ and ‘to’ arguments to getSymbols.FRED()
. Users expect to be able to set the ‘from’ and ‘to’ arguments for FRED data like they can for Yahoo data. Those values were ignored and the entire series was always returned. #368
Change interval to 1d for getDividends()
and getSplits()
. The “3mo” setting caused some dividends to be missing for companies that issued monthly dividends. Note that the response to this request also includes all the OHLCV data. But it’s small (less than 1MB for 60+ years of daily data). #372
Handle errors in getSplits()
and getDividends()
. getDividends()
didn’t handle cases where the download failed, or when dividends needed to be split-adjusted but there were no splits. It also tried to set colnames on the empty xts object that’s returned when there are no dividends. getSplits()
had the same colnames issue. Check for no splits by testing for NULL
because that’s more explicit. Thanks to Chris Cheung for the report! #366
Export HL()
, is.HL()
, and has.HL()
functions and add documentation. These were added in 0.4.18 but not exported or included in the documentation.
Use Yahoo Finance v8 JSON endpoint and remove the v7 CSV endpoint. There seems to be a rate limit for the number of tickers you can request via the CSV endpoint. The yfinance python library uses the JSON endpoint and doesn’t seem to have rate limit issues. #360 #362 #364
Remove check for Yahoo Finance cookies because the site no longer responds with a cookie, and that caused the connection attempt to fail. This affected getSymbols()
, getDividends()
, and getSplits()
. Thanks to several users for reporting, and especially to @pverspeelt and @alihru for investigating potential fixes! #358
Update getSymbols.yahooj()
for changes to the web page. #312
Add HL()
and supporting functions. These are analogues to HLC()
, OHLC()
, etc. Thanks for Karl Gauvin for the nudge to implement them.
Add adjusted close to getSymbols.tiingo()
output. Thanks to Ethan Smith for the suggestion and patch! #289 #345
Use a Date index for getSymbols.tiingo()
daily data. Thanks to Ethan Smith for the report! #350
Remove unneeded arguments to the getSymbols.tiingo()
implementation. Thanks to Ethan Smith for the suggestion and patch! #343 #344
Load dividends and splits data into the correct environment when the user provides a value for the env
argument. The previous behavior always loaded the data into the environment the function was called from. Thanks to Stewart Wright for the report and patch! #33
Make getOptionChain()
return all the fields that Yahoo Finance provides. Thanks to Adam Childers (@rhizomatican) for the patch! #318 #336
Add orats as a source for getOptionChain()
. Thanks to Steve Bronder (@SteveBronder) for the suggestion and implementation! #325
Improve the error message when getSymbols()
cannot import data for a symbol because the symbol is not valid or does not have historical data. Thanks to Peter Carl for the report. #333
getMetals()
example in the documentation. The example section previously had an example of getFX()
. Thanks to Gerhard NachtmannFix getQuote()
so it returns data when the ticker symbol contains an “&”. Thanks to @pankaj3009 for the report! #324
Fix addMACD()
when col
is specified. Thanks to @nvalueanalytics for the report! #321
Fix issues handling https:// in getSymbols.yahooj()
. Thanks to @lobo1981 and @tchevri for the reports and @ethanbsmith for the suggestion to move from XML to xml2. #310 #312
Fix getSymbols.yahoo()
, getDividends()
, and getSplits()
so they all handle download errors and retry again. Thanks for @helgasoft for the report on getSymbols.yahoo()
and @msfsalla for the report on getDividends()
and getSplits()
. #307 #314
Add implied volatility and last trade date to getOptionChain()
output. Thanks to @hd2581 and @romanlelek for the reports. And thanks to @rjvelasquezm for noticing the error when lastTradeDate
is NULL
. #224 #304
Fix getOptionChain()
to throw a warning and return NULL
for every expiry that doesn’t have data. #299
Add “Defaults” handling to getQuote()
and getQuote.yahoo()
. Thanks to @ethanbsmith for the report. #291
Add Bid and Ask fields to the output from getQuote()
. Thanks to @jrburl for the report and PR. #302
Fix “Defaults” to handle unexported function (e.g. getQuote.av()
. Thanks to @helgasoft for the report. #316
importDefaults()
doesn’t call get()
on vector with length > 1. Thanks to Kurt Hornik for the report. #319
chartTheme()
now works when quantmod is not attached. Thanks to Kurt Hornik for the report.Remove disk I/O from getSymbols()
and getQuote()
. This avoids any disk contention, and makes the implementation pattern more consistent with other functions that import data. Thanks to Ethan Smith suggestion and PR. #280 #281
Make getQuote()
robust to symbols without data, so it does not error if one or more symbols are not found. Also return quotes in the same order as the ‘Symbols’ argument. Thanks to Ethan Smith feature request and PR. #279 #282 #288
Handle semicolon-delimited symbol string handling to main getQuote()
function. This makes getQuote()
consistent with getSymbols()
. Thanks to Ethan Smith suggestion and PR. #284 #285
Fix ex-dividend and pay date mapping. getQuote()
returned the dividend pay date labeled as the ex-dividend date. Thanks to @matiasandina for the report. #287
Fix Yahoo Finance split ratio. The delimiter changed from “/” to “:”. For example, a 2-for-1 split was 1/2 but is now “2:1”. Thanks to @helgasoft for the report. #292
Error messages from getQuote.alphavantage()
and getQuote.tiingo()
no longer contain the API key when symbols can’t be found. #286
Fix getQuote.alphavantage()
by replacing the defunct batch quote request with a loop over the single quote request. Thanks to @helgasoft for the report and patch. #296
Update getOptionChain()
to handle empty volume or open interest Thank to @jrburl for the report and PR. #299 #300
getDividends()
tests were failing because Yahoo Finance wasn’t returning all dividend history for “CF”.quantmod::as.zoo.data.frame()
is called. This method was added years before zoo::as.zoo.data.frame()
existed, but it should be deprecated in favor of the zoo version. The package that owns the class should also own the methods.getSymbols.tiingo()
so the Open and Close columns aren’t swapped. Thanks to Steve Bronder for the report and PR. #233 #234getQuote.yahoo()
for quotes in multiple timezones. Thanks to Philippe Verspeelt for the report and PR. #246 #248getDividends()
because Yahoo Finance now provides raw dividends instead of split-adjusted dividends. Thanks to Douglas Barnard for the report. #253futures.expiry()
. Thanks to @pjheink for the report. #257getSymbols.tiingo()
to return correct columns for ticker “LOW”. Thanks to @srtg4we5gsetrgwhreyt the report. #259getSymbols.yahooj()
to avoid infinite loop when the requested symbol doesn’t have data. Thanks to Wouter Thielen for the review. #63getSplits()
because Yahoo Finance now provides the actual split adjustment ratio, instead of the inverse (e.g. now 1/2 instead of 2/1). #265getQuote()
to support Tiingo. Thanks to Ethan Smith for the feature request and PR. #247 #250getSymbols()
to catch errors for individual ticker symbols and continue processing any remaining ticker symbols, instead of throwing an error. More useful error messages are also provided. Thanks to @helgasoft for testing and feedback. #135getQuote.yahoo()
when a field has no data for all requested tickers. #208saveChart()
(it actually saves a chart now!). #154getSymbols.oanda()
and getFX()
. #225getQuote.alphavantage()
, thanks to Ethan Smith for the PR. #213 #223getSymbols.tiingo()
to import data from Tiingo. Thanks to Steve Bronder for the PR. #220chartSeries()
now honors show.grid
argument. Thanks to Ethan Smith. #200getQuote.yahoo()
uses the new JSON API. #197getSymbols.yahoo()
is more careful about converting UNIX timestamps to character when creating the query URL. #202getSymbols.yahoo()
getSymbols.av()
can download data from Alpha Vantage. Thanks to Paul Teetor for the contribution. #176getSymbols.yahoo()
getSymbols()
no longer warns if called with namespace (i.e. quantmod::getSymbols()
). #134as.zoo.data.frame()
now ignores row.date
argument if called with order.by
. #168getSymbols.yahoo()
uses the new API. #157getOptionChain.yahoo()
returns NULL
when there are no calls/puts instead of list()
. #155getSymbols.yahoo()
gains a periodicity
argument, for use by tseries::get.hist.quote()
. #162getSymbols.google()
:
setSymbolLookup()
.getSymbols.oanda()
.add_TA()
when called from a function.split.adjust
argument to getDividends()
.jsonlite::fromJSON()
manage connections in getOptionChain.yahoo()
.unsetSymbolLookup()
.getPrice()
.addTRIX()
.getSymbols.oanda()
to use https.getOptionChain.yahoo()
to download JSON instead of scrape HTML.add*MA()
functions use Close column by default.Delt()
docs (type argument default value was wrong).getSymbols.csv()
:
as.Date()
.col.names
argument.dbConnect()
call (changed in RMySQL_0.10
) in getSymbols.MySQL()
.getSymbols.yahooj()
.setDefaults()
.importFrom
for all non-base packages.getSymbols.yahooj()
to pull data from Yahoo Finance Japan (Thanks to Wouter Thielen for the contribution. #14).getOptionChain.yahoo()
to handle the new options page layout. #27getSymbols.oanda()
to handle the new URL structure and CSV format. #36Change maintainer from Jeffrey Ryan to Joshua Ulrich
Copy required functionality from the (archived) Defaults package into quantmod and remove dependency on Defaults.
Incorporate several bug fixes and patches.
getSymbols now uses parent.frame() when auto.assign=TRUE. This will cause slightly different behavior than previous versions using .GlobalEnv, but is more functional in design.
getSymbols now allows for env=NULL, which will behave as if auto.assign=FALSE is set.
Upcoming changes for version 0.5-0 will include deprecating auto assignment from within getSymbols calls. This will instead be moved to the loadSymbols function, to better match get/load behaviors in base R. For the transition, auto.assign will be available to force pre 0.5-0 behaviors, but will be discouraged. The env= arg will be used for multiple symbol assigns.
addTA now handles logical vectors or logical xtsible objects by drawing bands on chart window
addTA can now draw on or under any window via ‘on=’ arg
chartSeries now cleanly handles series without volume automatically
addVo has new log.scale option
matched broken TTR calls, aligned arguments between packages
‘name’ of chart was being evaluated somewhere in the process, resulting in the object becoming a string. Fixed in this release.
continuing the move of time-series functionality to the ‘xts’ package
added new TTR functions to addTA.
added underlay charting to main area (BBands) as well as much more advanced shading and labeling.
chartSeries converts incoming ‘x’ argument to xts object for more universal handling. Not fully sorted out - but better than before.
new subset argument to allow for xts-style subsetting
new depends - on CRAN and R-Forge package xts for time-series handling internally
options.expiry and futures.expiry now use universal %w to check weekdays
Rmetrics change resulted in as.timeSeries moving to fSeries. New suggest and assoc. changes
Fixed factor bug in getSymbols.FRED. Thanks to Josh Ulrich
Fixed bug in [.quantmod.OHLC method when i/j was missing, also now returns quantmod.OHLC object consistently
Added high frequency data handling - to.minutes, to.hourly, to.daily. Additional work done to accomodate within rest of framework
getSymbols downloads now to temp file - instead of directly to memory. Fixed R issue in certain Windows installations
getSymbols now returns a character array of symbol names written to environment.
getSymbols includes new arg - auto.assign. If set to FALSE will behave like standard R functions and simply return loaded object. Requires user assignment via ‘<-’
Better handling of timeSeries, ts, its within entire package
chartSeries rewrite. Now manages charting with S4 objects stored quietly in memory. Allowing for dynamic redraws used in applying technical indicators and overlays
addTA functions. New charting tools to add technicals to charts dynamically. More on the way
listTA, setTA, unsetTA to handle default TA args
chartTheme function to customize chart ‘look’
last/first functions now take character strings to describe in words the subsetting to do. Also negative value support for opposite behavior. Additional keep arg will assign removed data to an attribute keep with the object
getSymbols.SQLite support. Still very clunky - though that is SQLite.
getFX and getMetals for direct download of those types
getQuote downloads Last,Change,Open,High,Low,Volume from Yahoo
added documentation and fixed documentation