tq_fund_holdings()
: Retrieves the fund holdings and compositions for a fund and source combination. Example: tq_fund_holdings("SPY", source = "SSGA")
#250"Packages which use Internet resources should fail gracefully with an informative message if the resource is not available or has changed (and not give a check warning nor error)."
tq_index("SP500")
: Fixed broken API call (#246)tq_exchange("NASDAQ")
: Fixed broken API call (#226, #248)If you use tidyquant with tidyverse, there is no change for you.
size
argument to linewidth
for ggplot2 3.4.0linewidth
to geom_ma()
Quandl
, riingo
, and alphavantager
to Suggests. tidyquant will not explicitly install those, but you can install them from CRAN.FANG
geom_bbands()
, geom_candlestick()
, and geom_barchart()
no longer emit dropped aesthetics warnings. (@olivroy, #235)tidyverse
from suggest to imports to pass cran testsspread_()
functionreadxl
to imports. #222sp_index()
to convert symbols from "BRK.B" to "BRK-B" to work with Yahoo FinanceCRAN requested fixes:
janitor
to suggestsOther changes:
tq_exchange()
: Switch to new NASDAQ website. tq_exchange()
: Fix issue with NASDAQ changes to website. theme_tq()
: Fix issues with %+replace%
, theme_gray
, and rel
not found. tq_get()
- Add "dividends"
and "splits"
get options, which have been fixed in quantmod
0.4-16. Issue 150.rstudioapi::getThemeInfo()
returns NULL
. pivot_table
- Fix issues with tidyverse
functions not being found.summarise_by_time()
- This function has moved to timetk::summarise_by_time()
This is the "R for Excel Users" release. My aim is to build functionality that helps users coming from an Excel Background (background I came from). It's important to have these users feel at home. I have a full suite of functionality to accomplish your Excel-to-R transition.
-Matt
Excel Functions
tidyverse
and "tidy- finance / business analysis" in R.Pivot Table
pivot_table()
- A tidyverse-style function to perform data summarizations just like the popular Excel Pivot Table. Enables stacking calculations using a tidy-esque syntax: .rows = ~ YEAR(order_date)
. Reference Functions
VLOOKUP()
- Performs the classic Excel VLOOKUP. Excel user's: rejoice. Summarising "IFS" Functions
SUM_IFS()
, COUNT_IFS()
, AVERAGE_IFS()
CREATE_IFS()
to make your own by supplying a summarization function.Statistical, Date, and Financial Math Functions
SUM()
, AVERAGE()
, COUNT()
, and friends.CHANGE()
, PCT_CHANGE()
, LAG()
, CUMULATIVE_SUM()
, and friends.lubridate()
(e.g. AS_DATE()
, YEAR()
)timeDate
(e.g. HOLIDAY_SEQUENCE()
, HOLIDAY_LIST()
)NET_WORKDAYS()
, EOMONTH()
NPV()
, IRR()
, FV()
, PV()
, PMT()
, RATE()
NEW tidyverse Functionality
summarise_by_time()
- This is a new time-based variant of summarise()
that allows collapsing the time-series by "day", "week", "month", "quarter", "year", and more. summarise_at_by_time()
, summarise_all_by_time()
, and summarise_if_by_time()
after the release of dplyr
v1.0.0.NEW API Integrations
riingo
package.Bug Fixes & Improvements
theme_tq()
- Fix issues with collisions with dials::margin()
and ggplot2::margin()
. Similar potential ggplot2
collisions have been fixed. theme_tq()
- Increased default top/bottom text margin on facet stripsDeprecation & Breaking Changes
tq_get("AAPL")
returns symbol = "AAPL" for the 1st column).tq_get("AAPL", get = c("stock.prices", "stock.prices.japan"))
) is no longer available. Solution: Split these up into two calls to tq_get()
. tq_get()
- Temporarily adjust tests for tq_get(get = "dividends")
and tq_get(get = "splits")
until API is stabilizes. Yahoo! Dividends and Splits intermittently returns errors.tq_stocklist
to ?tq_index
. tq_index()
tq_index()
download issue. Note that "RUSSEL1000", "RUSSELL2000", "RUSSELL3000", and "SP1000" are no longer available due to changes from www.us.spdrs.com. tq_index()
- Fix naming issue with stock index data downloaded from www.us.spdrs.com.Stock Index & Exchanges
tq_exchange()
- Fix NASDAQ URL change Issue #138.Visualizations & Color Palettes
geom_candlestick
and geom_barchart
- Issue #112.theme_tq
palettes (palette_light
, palette_dark
, and palette_green
) for easier identification.Compatibility with tidyr
v1.0.0
tidyr
v1.0.0[Potential Breaking Change] Move tidyverse
to suggests
tidyverse
in your scripts) - if you do not load tidyverse
, then you will now need to do so. Previously tidyquant
loaded tidyverse
behind the scenes. Morningstar Key Ratios: The tq_get()
argument get = "key.ratios"
has been deprecated due to a change in Morningstar's website. (Help Wanted - Ref. Issue #125)
Remove dependency on XLConnect
. Replace with readxl
. Issue #119.
Bux fix
tq_get()
get = "financials"
now returns a warning and NA
as Google Finance no longer provides data. We are actively looking for
alternative data sources.
tq_get()
get = "stock.prices.google"
now returns a warning and NA
as Google Finance no longer provides data. Use get = "stock.prices"
instead
to use Yahoo Finance, or use the riingo
package to download from Tiingo.
Catch duplicate names in col_rename
when you are renaming more than 1 column.
Duplicate names are not allowed and return an error.
Fix duplicate name collision issue when the original name already includes
a .
. Duplicate names now get a ..1
, ..2
, etc. as opposed to .1
, .2
.
Features:
alphavantager
, a lightweight API to the Alpha Vantage financial data provider.Rblpapi
, R interface to "Bloomberg". You must have a Bloomberg account to use this.tq_get(get = "stock.prices.google")
Important Changes:
tq_get(get = "key.stats")
. Yahoo Finance no longer supports the Key Statistics CSV API. tidyquant::as_tibble()
and tidyquant::as_xts()
. Use timetk::tk_tbl()
and timetk::tk_xts()
instead. tibbletime
support was added so that all tidyquant
functions play nicely with tbl_time
objects.XLConnect
was removed. This should ease the use of the package, especially for Mac users.Bug Fixes:
testthat
2.0. They have been updated.purrr
v0.2.3. timetk
coercion functions. Deprecated tidyquant::as_xts()
and tidyquant::as_tibble()
. Use timetk::tk_xts()
and timetk::tk_tbl()
instead.tq_index()
no longer pulls from marketvolume. Instead, 9 indices are available from SPDR. These indices are more reliable, and include weights for each stock in the index.tq_get(get = "stock.prices")
were 1 or 2 rows off of what the tests expected. This likely has to do with the new yahoo finance API.Improvements
pkgdown
integration.Fixes:
quantmod
version 0.4-8 to fix Oanda and Yahoo bugs.tq_get()
data, it now returns oldest to newest.tq_portfolio()
where weights = NULL
would not execute an equal weighting scheme.New Data:
tq_get(get = "quandl")
is a wrapper for Quandl::Quandl()
that pulls multiple Quandl Codes in a "tidy" fashion. tq_get(get = "quandl.datatable")
is a wrapper for Quandl::Quandl.datable()
that pulls Quandl datatables. quandl_api_key()
is a wrapper for Quandl::Quandl.api_key()
. quandl_search
is a wrapper for Quandl::Quandl.search()
.tq_get(get = "stock.prices.japan")
is a wrapper for quantmod::getSymbols(src = "yahooj")
that enables getting stocks from Yahoo Finance Japan.Improvements and Fixes:
tq_mutate()
and tq_transmute()
now accept non-OHLC data through the select
argument. They also now work with rollapply
.tq_mutate()
and tq_transmute()
now accept PerformanceAnalytics
functions that work to clean and transform asset returns.ohlc_fun
argument to instead use select
in tq_mutate()
and tq_transmute
.Deprecated
-> .Defunct
for tq_transform()
and tq_transform_xy()
. Use tq_transmute()
and tq_transmute_xy()
. Move the sign post functions to deprecated.Rtransform_fun
from tq_transmute()
. Use mutate_fun
instead.tq_mutate
returning rows incorrectly sortedtq_get
returning data frames as nestedtq_get
error to return full error when issues are present. tq_transmute()
replaces tq_transform()
for consistency with dplyr
.tq_performance()
which integrates the performance analysis functions of PerformanceAnalytics
.tq_portfolio()
which enables aggregating portfolios from individual stock returns.tq_tranform()
: Added the NA-handling functions from zoo
to the list of compatible, which provide a number of useful methods for handling NA
values in data sets. Added Return.calculate
and Return.excess
for calculating returns and returns in excess of the risk-free rate, respectively.tq_mutate()
and tq_transmute()
help pages have been combined.tidyquant
users!tq_exchange()
gets the stock list for NASDAQ, NYSE, and AMEX exchanges. Use tq_exchange_options()
to exchange options.FANG
data setggplot2
:palette_()
functions used to create scales are exported.theme_tq()
creates light, dark, and green themes for tidyquant visualizations.scale_color_tq()
and scale_fill_tq()
add color/fill scales for the data used in tidyquant visualizations.transform_fun
argument of tq_transmute()
has been replaced with mutate_fun
for consistency with tq_mutate()
.get = key.ratios
failing with HTTP 500 error on download. Use httr RETRY in case of failure.get = "key.ratios"
where stocks listed on AMEX exchange were not able to return key ratios.get = "key.stats"
where NA's in multiple x
(e.g. c("AAPL", "GOOG")
) cause call to fail during coercion. tq_get("AAPL", get = c("stock.prices", "financials"))
).tq_index()
function to return a stock index. tq_get(get = "stock.index")
is deprecated and will be removed during the next version after 0.4.0. Use tq_index_options()
for index options. dttm
. tq_get
option get = "key.stats"
, which retrieves the current key statistics (55 total) from www.finance.yahoo.com/. These include various current data such as Ask, Bid, Day's High, Day's Low, Last Trade Price, current P/E Ratio, EPS, Current Market Cap, EPS Projected Current Year, EPS Projected Next Year and many more. Example: tq_get("AAPL", get = "key.stats")
.ggplot2
:geom_barchart
) and candlestick charts (geom_candlestick
) can be quickly created with the new geoms.geom_ma
. The geom wraps the TTR::SMA
functions.geom_bbands
. The same seven moving averages are compatible with the geom.coord_x_date
and coord_x_datetime
) were added to enable zooming into chart sections using dates with no out-of-bounds data loss (e.g. out-of-bounds data loss with the scale_x_
functions). tq_get
can now accept character vectors and data frames for the x
arg, in addition to a single character input. This streamlines the getting of data for multiple inputs (e.g. stock symbols, stock indexes, etc).col_rename
arg to tq_mutate
and tq_transform
, which enables fast and easy renaming during the operation.dplyr::group_by()
with tq_mutate()
and tq_transform()
. The transform and mutate functions now work properly with grouped data frames.tq_get()
, get = "key.ratios"
, where key ratios for stocks from the NYSE returned NA
.x_fun
, .x
, and .y
in the respective transform and mutate functions.get = "key.ratios"
option for tq_get()
, which retrieves 10-years of key performance ratios (89 total) from www.morningstar.com. These include various historical measures of financial performance including profitability, growth, cash flow, financial health, efficiency, and valuation ratios. Example: tq_get("AAPL", get = "key.ratios")
.zoo
rollapply()
functions to list of compatible / integrated functions used with tq_transform()
and tq_mutate()
. See tq_transform_fun_options()
for the full list.tq_mutate()
, tq_transform()
, tq_mutate_xy()
and tq_transform_xy()
arguments to be more obvious:x_fun
is now ohlc_fun
for tq_mutate()
and tq_transform()
.x
is now x
and .y
is now y
for tq_mutate_xy()
and tq_transform_xy()
tq_mutate
. Names are now sequentially indexed with duplicate names starting at .1
suffix. tidyquant
, for seamless quantitative financial analysis (xts
, quantmod
, TTR
) package integration with the tidyverse
.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.