-
bitmart
has 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 thetitle
andsubtitle
by double clicking these (Thank you @andreltr for the suggestion. See Discussion). - The
chart()
-function now has a new optionstatic
that is equal toFALSE
by default. IfFALSE
the chart can be edited, annotated and explored interactively. - The
chart()
-function now has a new optionpalette
that is set to “hawaii” by default. Seehcl.pals()
for accepted values. - The
chart()
-function now has a new optionscale
that is set to 1 by default. Scales all fonts on the chart. - The
chart()
-function now has a new optionwidth
that is set to 0.9 by default. Sets the overalllinewidth
of 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 alegend
wouldn’t show unless a main-chart indicator were included. (Issue #13)
- Removed
1s
from Binance spot - Removed
3m
,6h
and3d
in 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
#> 2024-11-02 10:00:00 2394.876
#> 2024-11-02 11:00:00 2389.595
#> 2024-11-02 12:00:00 2396.225
#> 2024-11-02 13:00:00 2403.175
#> 2024-11-02 14:00:00 2418.193
#> 2024-11-02 15:00:00 2398.648
- 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
,purrr
andtidyverse
in general. We are, however, keeping thetidyverse
styleguide.
- 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 = NULL
andfrom != NULL
the returnedquote
would be filtered according toUTC
and 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_lsratio
andgetLSratio()
supportskraken
andbybit
assource
-
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.
quotes
andfear and greed index
now returns200
rows instead of100
- The
charts
now has adark
andlight
theme. Its passed into theoptions = list(dark = TRUE)
of thechart()
-function. - The
charts
are now more color deficiency compliant, and thedeficiency
parameter inoptions = list(deficiency = TRUE)
now applies to allchart
-elements - The
charts
are 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
#> 2024-10-31 17:00:00 1.730390e+12
#> 2024-11-01 01:00:00 1.730419e+12
#> 2024-11-01 09:00:00 1.730448e+12
#> 2024-11-01 17:00:00 1.730477e+12
#> 2024-11-02 01:00:00 1.730506e+12
#> 2024-11-02 09:00:00 1.730534e+12
- Open interest,
get_openinterest()
Usage
## get funding rate
tail(
get_openinterest(
ticker = "BTCUSDT",
source = "binance"
)
)
#> open_interest
#> 2024-10-28 01:00:00 82206.35
#> 2024-10-29 01:00:00 89115.04
#> 2024-10-30 01:00:00 90242.98
#> 2024-10-31 01:00:00 89315.49
#> 2024-11-01 01:00:00 89544.93
#> 2024-11-02 01:00:00 84087.60
- All the
charting
-functions have been reworked without backwards compatibility, orlifecycle::deprecated()
-warnings. Thecharting
-functions were, and still is, in anexperimental
-stage.
- All
dates
passed toget_*
-functions assumed the dates were given inUTC
, and were retrieved asUTC
. These have now been changed; all functions now usesSys.timezone()
asdefault
upon 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
1m
chart, 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
Bitmart
API where weekly candles would throw an error.
-
All
from
andto
arguments are now more flexible, and supports passingSys.Date()
andSys.time()
directly into theget
-functions. -
getQuote()
now returns up to 100 pips preceding the specifiedto
date, whenfrom = NULL
. It returns 100 pips, or up toSys.Date()
, from the specifiedfrom
date.
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 🚀