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)tidyquant no longer loads lubridate. (@olivroy, #237)
If you use tidyquant with tidyverse, there is no change for you.
tidyquant no longer loads many packages on load.
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()
- 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)
.VLOOKUP()
- Performs the classic
Excel VLOOKUP. Excel user’s: rejoice.SUM_IFS()
, COUNT_IFS()
,
AVERAGE_IFS()
CREATE_IFS()
to make your own by supplying a summarization
function.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
.
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")
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.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.pkgdown
integration.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.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.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
.