-
Notifications
You must be signed in to change notification settings - Fork 3
/
kraken.R
86 lines (77 loc) · 2.55 KB
/
kraken.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#' kraken_server_time
#'
#' @return returns a list with Kraken's server time in unix and rfc1123 formats
#' @export
#'
#' @examples
#' kraken_server_time()
kraken_server_time <- function() {
res <- httr::GET('https://api.kraken.com/0/public/Time')
data <- jsonlite::fromJSON(rawToChar(res$content))
return(data$result)
}
#' kraken_server_status
#'
#' @return returns a list with Kraken's server status along with a timestamp
#' @export
#'
#' @examples
#' kraken_server_status()
kraken_server_status <- function() {
res <- httr::GET('https://api.kraken.com/0/public/SystemStatus')
data <- jsonlite::fromJSON(rawToChar(res$content))
return(data$result)
}
#' kraken_asset_info
#'
#' @param asset optionally provide one or more comma-separated ticker symbols.
#' @param aclass optionally provide asset categories to filter by.
#'
#' @return returns a list containing asset information
#' @export
#'
#' @examples
#' all_asset_info <- kraken_asset_info()
#' eth_btc_info <- kraken_asset_info("ETH,BTC")
#' currency_info <- kraken_asset_info(aclass = "currency")
kraken_asset_info <- function(asset = NULL, aclass = NULL) {
query <- list(asset = asset, aclass = aclass)
res <- httr::GET('https://api.kraken.com/0/public/Assets', query = query)
data <- jsonlite::fromJSON(rawToChar(res$content))
return(data$result)
}
#' kraken_asset_pairs
#'
#' @param pair optionally provide one or more comma-separated asset pairs to query.
#' @param info optionally select the information to return. You can choose from:
#' "info" (all info), "leverage" (leverage info), "fees" (fee schedule), or
#' "margin" (margin info).
#'
#' @return returns a list containing information on Kraken asset pairs.
#' @export
#'
#' @examples
#' kraken_asset_pairs()
kraken_asset_pairs <- function(pair = NULL, info = NULL) {
query <- list(pair = pair, info = info)
res <- httr::GET('https://api.kraken.com/0/public/AssetPairs', query = query)
data <- jsonlite::fromJSON(rawToChar(res$content))
return(data$result)
}
#' kraken_ticker_info
#'
#' @param pair optionally provide one or more comma-separated asset pairs.
#'
#' @return returns a list containing ticker info for assets on Kraken. Refer to
#' Kraken for help interpreting response data:
#' https://docs.kraken.com/rest/#tag/Market-Data/operation/getTickerInformation
#' @export
#'
#' @examples
#' kraken_ticker_info("ETHUSD")
kraken_ticker_info <- function(pair = NULL) {
query <- list(pair = pair)
res <- httr::GET('https://api.kraken.com/0/public/Ticker', query = query)
data <- jsonlite::fromJSON(rawToChar(res$content))
return(data$result)
}