knitr::opts_chunk$set( collapse = FALSE, out.width = "100%", comment = "#>", message = FALSE, out.height = "620px", fig.align = "center" )
library(cryptoQuotes)
This high-level API-client provides open access to cryptocurrency market data without relying on low-level coding and API-keys. Currently all actively traded cryptocurrencies on r paste(length(invisible(available_exchanges))) major exchanges are available, see the wiki for more details.
In this vignette we will explore a case study to showcase the capabilities of {cryptoQuotes}; how did the Dogecoin-market react to Elon Musks following tweet,
Elon Musk tweeted (Well, now he X'ed) about Dogecoin January 14, 06.18 AM (UTC) - and Dogecoin rallied. To determine how fast the markets reacted to his tweets, we could get the market data for Dogecoin in 1 minute intervals the day he tweeeted using the get_quotes()-function,
## DOGEUSDT the day ## of the tweet on the ## 1m chart DOGE <- cryptoQuotes::get_quote( ticker = 'DOGE-USDT', interval = '1m', source = 'kucoin', futures = FALSE, from = '2022-01-14 07:00:00', to = '2022-01-14 08:00:00' )
This returns an object of class r paste(class(DOGE),collapse = ' and ') with r nrow(DOGE) rows. To calculate the rally within the first minute of the tweet, we can use {xts}-syntax to determine its magnitude,
## extrat the ## tweet moment tweet_moment <- DOGE["2022-01-14 07:18:00"] ## calculate ## rally cat( "Doge closed:", round((tweet_moment$close/tweet_moment$open - 1),4) * 100, "%" )
Dogecoin rallied r paste0(round((tweet_moment$close/tweet_moment$open - 1),4) * 100, "%") within the minute Elon Musk tweeted.
We can visualize the rally this with candlestick charts using the chart()- and kline()-function,
## chart the ## price action ## using klines cryptoQuotes::chart( ticker = DOGE, main = cryptoQuotes::kline(), indicator = list( cryptoQuotes::bollinger_bands() ), sub = list( cryptoQuotes::volume() ), options = list( dark = FALSE ) )
To create a, presumably, better visual overview we can add event lines using the event_data-argument, which takes a data.frame of any kind as argument,
## 1) create event data.frame ## by subsetting the data event_data <- as.data.frame( zoo::coredata( DOGE["2022-01-14 07:18:00"] ) ) ## 1.1) add the index ## to the event_data event_data$index <- zoo::index( DOGE["2022-01-14 07:18:00"] ) # 1.2) add event label # to the data event_data$event <- 'Elon Musk Tweets' # 1.3) add color to the # event label event_data$color <- 'steelblue'
This event data, can be passed into the chart as follows,
## 1) chart the ## price action ## using klines cryptoQuotes::chart( ticker = DOGE, event_data = event_data, main = cryptoQuotes::kline(), indicator = list( cryptoQuotes::bollinger_bands() ), sub = list( cryptoQuotes::volume() ), options = list( dark = FALSE ) )
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.