The cryptoQuotes
-package is a high-level API client for accessing
public market data endpoints on major cryptocurrency exchanges. It
supports open, high, low, close and volume (OHLC-V) data and a variety
of sentiment indicators; the market data is high quality and can be
retrieved in intervals ranging from seconds to months. All the
market data is accessed and processed without relying on crawlers, or
API keys, ensuring an open, and reliable, access for researchers,
traders and students alike. There are currently 5 supported
cryptocurrency exchanges,
binance | bitmart | bybit | kraken | kucoin |
All data is returned as
xts
-objects which enables
seamless interaction with with
quantmod
and
TTR
, for developing and
evaluating trading strategies or general purpose cryptocurrency market
analysis with a historical or temporal perspective.
The cryptoQuotes
-package has two main features; retrieving
cryptocurrency market data, and charting. The market data consists of
OHLC-V data and sentiment indicators; including, but not limited to,
cryptocurrency fear and greed index, long-short ratio and open
interest. All market data is retrieved using the family of
get_*
-functions. To get a full overview of the package and
functionality please see the documentation on
pkgdown.
Note: Given the nature of crypotcurrency data and general legislative restrictions, some
exchanges
may not work in your geolocation.
Below is a quick overview of the package and basic usage examples on retrieving and charting Bitcoin (BTC) OHLC-V and long-short ratio in 30 minute intervals.
All supported exchanges and markets are listed in the table below, alongside the available range of intervals available from the respective exchanges,
Exchange | Spot | Futures | Available Intervals | Smallest Interval | Biggest Interval |
---|---|---|---|---|---|
Binance | ✅ | ✅ | 16 | 1 second(s) | 1 month(s) |
Bitmart | ✅ | ✅ | 13 | 1 minute(s) | 1 week(s) |
Bybit | ✅ | ✅ | 13 | 1 minute(s) | 1 month(s) |
Kraken | ✅ | ✅ | 10 | 1 minute(s) | 2 week(s) |
Kucoin | ✅ | ✅ | 13 | 1 minute(s) | 1 week(s) |
Example: Bitcoin OHLC-V
Get USDT denominated Bitcoin (BTC) on the spot market from Binance in
30m
-intervals using the get_quote()
-function,
## BTC OHLC prices
## from Binance spot market
## in 30 minute intervals
BTC <- cryptoQuotes::get_quote(
ticker = 'BTCUSDT',
source = 'binance',
futures = FALSE,
interval = '30m',
from = Sys.Date() - 1
)
index | open | high | low | close | volume |
---|---|---|---|---|---|
2024-05-31 18:00:00 | 67215.58 | 67352.41 | 66670 | 67000.01 | 2093.77494 |
2024-05-31 18:30:00 | 67000.01 | 67221.53 | 66876.8 | 67200.01 | 788.25693 |
2024-05-31 19:00:00 | 67200.01 | 67459.66 | 67160.3 | 67417.98 | 598.68095 |
2024-05-31 19:30:00 | 67417.98 | 67455.93 | 67287.97 | 67342.77 | 287.26257 |
2024-05-31 20:00:00 | 67342.77 | 67444.47 | 67288.2 | 67305.5 | 383.04002 |
2024-05-31 20:30:00 | 67305.5 | 67427.68 | 67170 | 67400 | 468.98276 |
The sentiment indicators available in the cryptoQuotes
-package can be
divided in two; derived indicators and market indicators. The former
is calculated based on, for example, the price actions such as the
Moving Average Convergence Divergence (MACD) indicator. The latter are
public indicators such as the long-short ratio or fear and greed
index; these are retrieved using the family of get_*
-functions, while
the derived indicators can be created using, for example,
TTR
.
In this overview we are focusing on market indicators made public by the cryptocurrency exchanges. For a full overview of sentiment indicators please refer to the documentation on pkgdown. All supported market indicators by exchange are listed in the table below,
Endpoint | Binance | Bitmart | Bybit | Kraken | Kucoin |
---|---|---|---|---|---|
Long-Short Ratio | ✅ | ❌ | ✅ | ✅ | ❌ |
Open Interest | ✅ | ❌ | ✅ | ✅ | ❌ |
Funding Rate | ✅ | ❌ | ✅ | ❌ | ✅ |
Example: Bitcoin Long-Short Ratio
Get the long-short ratio on Bitcoin (BTC) using the
get_lsratio()
-function,
## BTC OHLC prices
## from Binance spot market
## in 30 minute intervals
BTC_LS <- cryptoQuotes::get_lsratio(
ticker = 'BTCUSDT',
source = 'binance',
interval = '30m',
from = Sys.Date() - 1
)
index | long | short | ls_ratio |
---|---|---|---|
2024-05-31 18:00:00 | 0.679 | 0.321 | 2.114 |
2024-05-31 18:30:00 | 0.687 | 0.313 | 2.199 |
2024-05-31 19:00:00 | 0.696 | 0.304 | 2.289 |
2024-05-31 19:30:00 | 0.699 | 0.301 | 2.323 |
2024-05-31 20:00:00 | 0.696 | 0.304 | 2.288 |
2024-05-31 20:30:00 | 0.696 | 0.304 | 2.293 |
Charting in the cryptoQuotes
-package is built on
plotly
for interactivity. It
supports light and dark themes, and accounts for color-deficiency
via the options
-argument in the chart()
-function.
The OHLC-V data and the sentiment indicator can be charted using the
chart()
-function,
## Chart BTC
## using klines, SMA
## Bollinger Bands and
## long-short ratio
cryptoQuotes::chart(
ticker = BTC,
main = cryptoQuotes::kline(),
sub = list(
cryptoQuotes::lsr(ratio = BTC_LS),
cryptoQuotes::volume()
),
indicator = list(
cryptoQuotes::sma(n = 7),
cryptoQuotes::sma(n = 14),
cryptoQuotes::sma(n = 21),
cryptoQuotes::bollinger_bands()
)
)
Colorblind friendly version
## Chart BTC
## using klines, SMA
## Bollinger Bands and
## ling-short ratio with color-deficiency
cryptoQuotes::chart(
ticker = BTC,
main = cryptoQuotes::kline(),
sub = list(
cryptoQuotes::lsr(ratio = BTC_LS),
cryptoQuotes::volume()
),
indicator = list(
cryptoQuotes::sma(n = 7),
cryptoQuotes::sma(n = 14),
cryptoQuotes::sma(n = 21),
cryptoQuotes::bollinger_bands()
),
options = list(
deficiency = TRUE
)
)
![cryptocurrency charts in R](man/figures/README-chartquote(deficiency)-1.png)
## install from CRAN
install.packages(
pkgs = 'cryptoQuotes',
dependencies = TRUE
)
## install from github
devtools::install_github(
repo = 'https://github.com/serkor1/cryptoQuotes/',
ref = 'development'
)
Please note that the cryptoQuotes
project is released with a
Contributor Code of
Conduct.
By contributing to this project, you agree to abide by its terms.