- The
get_mktcap()-function returns the global market capitalization of the cryptocurrency market. It also has the option to return altcoin market capitalization.
# get market capitalization
tail(
get_mktcap()
)#> marketcap volume
#> 2026-01-31 22:15:00 2.638013e+12 174620475855
#> 2026-02-01 22:15:00 2.610109e+12 131569299731
#> 2026-02-02 22:15:00 2.649726e+12 213047787315
#> 2026-02-03 22:15:00 2.570898e+12 165843309387
#> 2026-02-04 22:15:00 2.449463e+12 162971002109
#> 2026-02-05 22:15:00 2.183401e+12 264076715964
- A bug in the funding rates from Binance have been fixed. The returned values was the time indices of the json-array, not the actual rates.
-
bitmarthas updated their futures API. The backend have been updated accordingly. -
Unit-tests have been updated and now all
get_quote()-functions are being tested for equality in passed and inferred interval.
read_xts()andwrite_xts()reads and storesxts-objects. These functions are essentially just wrappers ofzoo::read.zoo()andzoo::write.zoo(). Thank you @gokberkcan7 for the suggestion.
- The
chart()-function are now exported as.svg-images in 4k resolution via themodebar. - The
chart()-function are now more interactive and supports drawing lines and rectangles via themodebar. It is also possible to interactively change thetitleandsubtitleby double clicking these (Thank you @andreltr for the suggestion. See Discussion). - The
chart()-function now has a new optionstaticthat is equal toFALSEby default. IfFALSEthe chart can be edited, annotated and explored interactively. - The
chart()-function now has a new optionpalettethat is set to “hawaii” by default. Seehcl.pals()for accepted values. - The
chart()-function now has a new optionscalethat is set to 1 by default. Scales all fonts on the chart. - The
chart()-function now has a new optionwidththat is set to 0.9 by default. Sets the overalllinewidthof the chart. (Thank you @andreltr for the suggestion. See Discussion)
Static set to FALSE (Default Palette)
# static = FALSE
chart(
ticker = BTC,
main = kline(),
indicator = line(
sma(n = 7),
sma(n = 14),
sma(n = 21)
),
options = list(
static = FALSE,
palette = "hawaii"
)
)
Static set to TRUE (“Set 3” palette)
# static = TRUE
chart(
ticker = BTC,
main = kline(),
indicator = line(
sma(n = 7),
sma(n = 14),
sma(n = 21)
),
options = list(
static = TRUE,
palette = "Set 3"
)
)
Supported Exchanges (Issue #14)
{cryptoQuotes} now supports the following exchanges:
- Crypto.com
- Huobi
- MEXC
- Fixed a bug in the
chart()-function where a warning would be given if called using namespace qualified function calls (Issue #13) - Fixed a bug in the
chart()-function where alegendwouldn’t show unless a main-chart indicator were included. (Issue #13)
- Removed
1sfrom Binance spot - Removed
3m,6hand3din Bitmart spot
These intervals have been removed as they have either been discontinued, or were non-existent.
NOTE: With this update the package is no longer considered
experimental.
-
Removed deprecated functions
getQuote()-,getFGIndex()- andgetLSRatio()-functions. -
Removed decprecated functions
availableExchanges()-,availableIntervals()- andavailableTickers()-functions.
These functions were planned to be deleted in 1.4.0 - however, we have
decided to aim for an JOSS- and rOpenSci-subscription which requires
some degree of stability. Hence the deletion of these function at
1.3.0.
We expect 1.4.0 to be released after rOpenSci-submission and
acceptance 🙏
smi()-function, asubchart-indicator built on theTTR::SMI()-function.donchian_channel()-function, amain chart-indicator built on theTTR::DonchianChannel()-function
Usage
chart(
ticker = BTC,
main = kline(),
indicator = list(
donchian_channel()
),
sub = list(
smi()
)
)
get_openinterest()is now supported bykraken
Usage
tail(
get_openinterest(
ticker = "PF_XBTUSD",
interval = "1h",
source = "kraken"
)
)#> open_interest
#> 2026-02-06 18:00:00 1804.811
#> 2026-02-06 19:00:00 1720.164
#> 2026-02-06 20:00:00 1704.200
#> 2026-02-06 21:00:00 1717.264
#> 2026-02-06 22:00:00 1697.977
#> 2026-02-06 23:00:00 1693.890
- The
chart()-function now has properlight-theme available that isn’t the defaultplotly-values. - The charts now displays date ranges as a subtitles.
- The
bollinger_bands()-function now accepts acolor-argument. These can be passed asHexadecimal-colors or as is,"blue"for example. - A new main chart function has been introduced.
pline()which is a univariate price chart based on either open, high, low or close prices.
Usage
chart(
ticker = BTC,
main = pline(price = "close"),
indicator = list(
bollinger_bands(
color = "steelblue"
)
),
sub = list(
volume()
),
options = list(
dark = FALSE
)
)
- The documentation has been extensively reworked. This is includes, but
not limited to, sample outputs for all
get_*-functions.
- The
chart()-functions no longer depend onrlang.
Note: we are generally moving away from
rlang,purrrandtidyversein general. We are, however, keeping thetidyversestyleguide.
- Removed dependency on
conflicted-package.
Prior to version 1.3.0 the get*-functions were following the syntax
of {quantmod} closely, and
this goes for the function naming too. With the adoption of the
tidyverse style guide, there is no conflicts that needs to be resolved
on stable- and experimental-functions.
pull()-functionvar_ly()-functionbuild()-function
- The
get_fgindex()-function now returns columns in lower case.
- Fixed a bug where
get_fgindex()where labelled asdeprecated - Fixed a bug in the
limitations-article where the desired number of observations werent compatible with thekraken-exchange. - Fixed a warning in the
get_lsratio()-function withsource = "binance" - Fixed a bug in the
lsr()-indicator which broke thechart()-function when included. - Fixed a bug in the
get_quote()-function where ifto = NULLandfrom != NULLthe returnedquotewould be filtered according toUTCand notSys.timezone() - Fixed a bug in the
chart()-function where the inferred intervals would be incorrect for leap years, and months different from 30 days.
-
get_lsratioandgetLSratio()supportskrakenandbybitassource -
available_-functions are more adaptive to the calling environments
## charting the klines
## with indicators as
## subcharts
available_exchanges(type = 'ohlc')Now returns all available exhanges that supports Open, High, Low and
Close market data. The type-argument can be changed to, for example,
lsratio to get all available exchanges that supports Long to Shorts
ratios. Similar changes have been made to remaining
available_-functions.
All get_*- and available_*-functions are now more robust to API and
input errors.
quotesandfear and greed indexnow returns200rows instead of100
- The
chartsnow has adarkandlighttheme. Its passed into theoptions = list(dark = TRUE)of thechart()-function. - The
chartsare now more color deficiency compliant, and thedeficiencyparameter inoptions = list(deficiency = TRUE)now applies to allchart-elements - The
chartsare now constructed without%>%and, should, be more intuitive to navigate in. See example below,
## charting the klines
## with indicators as
## subcharts
chart(
ticker = BTC,
main = kline(),
sub = list(
volume()
),
indicator = list(
bollinger_bands(),
sma(),
alma()
),
options = list(
dark = TRUE,
deficiency = FALSE
)
)The following exchanges have been added to list of exchanges
available,
- ByBit
- Funding rates,
get_fundingrate()
Usage
## get funding rate
tail(
get_fundingrate(
ticker = "BTCUSDT",
source = "binance"
)
)#> funding_rate
#> 2026-02-05 01:00:00 0.00009173
#> 2026-02-05 09:00:00 0.00000298
#> 2026-02-05 17:00:00 -0.00004957
#> 2026-02-06 01:00:00 -0.00001597
#> 2026-02-06 09:00:00 -0.00013688
#> 2026-02-06 17:00:00 -0.00013478
- Open interest,
get_openinterest()
Usage
## get funding rate
tail(
get_openinterest(
ticker = "BTCUSDT",
source = "binance"
)
)#> open_interest
- All the
charting-functions have been reworked without backwards compatibility, orlifecycle::deprecated()-warnings. Thecharting-functions were, and still is, in anexperimental-stage.
- All
datespassed toget_*-functions assumed the dates were given inUTC, and were retrieved asUTC. These have now been changed; all functions now usesSys.timezone()asdefaultupon request and retrieval.
As {cryptoQuotes} has moved
to the tidyverse style guide, the getFoo-functions are now
deprecated. These will be permanently deleted, and removed from the
{cryptoQuotes}, at version
1.4.0!
- Added DOGECOIN data. This data is extracted on the
1mchart, around Elon Musks Tweet. - Added a usecase in the Vignette about Dogecoin and Elon Musk to showcase the functionality of the library.
- Corrected misspelled ticker in Vignette
- All returned Quotes are now in
UTC, again. - Fixed an error on the
BitmartAPI where weekly candles would throw an error.
-
All
fromandtoarguments are now more flexible, and supports passingSys.Date()andSys.time()directly into theget-functions. -
getQuote()now returns up to 100 pips preceding the specifiedtodate, whenfrom = NULL. It returns 100 pips, or up toSys.Date(), from the specifiedfromdate.
The getQuote()-function can now be used as follows;
## Specifying from
## date only;
##
## Returns 10 pips
getQuote(
ticker = 'BTCUSDT',
interval = '1d'
from = as.character(Sys.Date() - 10)
)## Specifying to
## date only;
##
## Returns 100 pips
getQuote(
ticker = 'BTCUSDT',
interval = '1d'
to = as.character(Sys.Date())
)Four new functions are added,
getFGIndex()which returns the daily Fear and Greed Index.addFGIndex()which adds the Fear and Greed Index as a subplot to price charts.getLSRatio()which returns the long-short ratio with varying granularity. Contributor has been credited.addLSRatio()which adds the long-short ratio as a subplot to price charts.
Three new convinience functions are added applicable to some situations,
removeBound()splitWindow()calibrateWindow()
getQuote() now returns up to 100 pips when to and from is NULL
- All code has been rewritten so its compatible with
{httr2}, the package used
{httr} at version
1.0.0.
In the next release, three more exchanges will be supported.
The returned quotes are in local timezone, this is an unintentional
feature and will be fixed in a bugfix.
- Initial CRAN submission 🚀
