library(RJSONIO)
crypto_A <- "ETH" # the spot market crypto_A vs crypto_B must exist in Binance
crypto_B <- "BTC"
interval <- "15m" # see all the possible intervals in the documentation
observations <- "1000" # remember that the maximum is 1000
Candlestick.data <- fromJSON(paste0("https://api.binance.com/api/v3/klines?symbol=",crypto_A,crypto_B,"&interval=",interval,"&limit=",observations))
i <- 1:length(Candlestick.data)
df <- sapply(i, function(i){as.numeric(unlist(Candlestick.data[i]))})
df_t <- t(df)
2条答案
按热度按时间q3qa4bjr1#
要GET烛台数据,我们可以使用
RJSONIO
包中的函数fromJSON
。假设我们希望以1小时的间隔查看BTC/USDT对,我们在一次请求中可以请求的最大观察量是1000,所以我们这样做:
Candlestick.data <- fromJSON("https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1h&limit=1000")
看到
View(Candlestick.data)
的数据,我们可以看到这是一个list
的列表,其中每个子列表包含对应于1小时间隔的所有烛台数据(收盘价,最高价,成交量,交易数量等)。要将列表转换为一个框架,我们可以这样做:
字符串
通过这样做,
df
的每一列对应于周期(1小时前,2小时前,等等)和每一行到不同的烛台数据。因此,假设我们想要查看过去1000小时的所有收盘价,正如我们在文档中看到的那样,这是每个列表的第5个元素,所以我们可以用df[5,]
来表示。如果我们希望行是周期,列是烛台数据,我们可以用
t()
转置矩阵,就像这样df_t <- t(df)
,现在得到收盘价df_t[,5]
。最后,为了使请求更容易,我们可以使用函数
paste0()
,现在,概括地说,我们可以这样做:型
希望这可以帮助,并记住阅读documentation的更多细节。
ikfrs5lh2#
这个问题已经得到了一些关注,所以我想使用现有的
R
包来提供一个答案。其中之一是
cryptoQuotes
,它使用高级函数从Binance中提取OHLC
数据。字符串
btc
可以传递到quantmod
和TTR
中的所有相关函数中。下面是一个带有MACD和布林线的蜡烛图的例子。型
的数据
该软件包可以通过
CRAN
安装,如下所示:型