[英]Using httr to place orders through BitMex API
我正在嘗試使用 httr R 包通過他們的 API 在 BitMex 上下訂單。
我在這里找到了一些指導,在分別在對象 K 和 S 中指定了我的 API 密鑰和秘密之后,我嘗試了以下操作
verb <- 'POST'
expires <- floor(as.numeric(Sys.time() + 10000))
path <- '/api/v1/order'
data <- '{"symbol":"XBTUSD","price":4500,"orderQty":10}'
body <- paste0(verb, path, expires, data)
signature <- hmac(S, body, algo = 'sha256')
body_l <- list(verb = verb, expires = expires, path = path, data = data)
然后兩者:
msg <- POST('https://www.bitmex.com/api/v1/order', encode = 'json', body = body_l, add_headers('api-key' = K, 'api-signature' = signature, 'api-expires' = expires))
和:
msg <- POST('https://www.bitmex.com/api/v1/order', body = body, add_headers('api-key' = K, 'api-signature' = signature, 'api-expires' = expires))
檢查時給我相同的錯誤消息:
rawToChar(msg$content)
[1] "{\"error\":{\"message\":\"Signature not valid.\",\"name\":\"HTTPError\"}}"
我試圖根據BitMex 解釋如何使用他們的 API來設置它,但我似乎遺漏了一些東西。 他們列出了一些可能導致我的無效簽名問題的問題,但他們似乎沒有幫助我。 在遵循他們的示例時,我得到了完全相同的哈希值,因此這似乎是正確的。
在這里參加聚會有點晚了,但希望這會有所幫助!
您的 POST 調用只需要一些小的更改:
添加content_type_json()
在add_headers()
包含.headers = c('the headers')
add_headers()
。 請參閱下面的示例:
library(httr)
library(digest)
S <- "your api secret"
K <- "your api key"
verb <- 'POST'
expires <- floor(as.numeric(Sys.time() + 10))
path <- '/api/v1/order'
data <- '{"symbol":"XBTUSD","price":4500,"orderQty":10}'
body <- paste0(verb, path, expires, data)
signature <- hmac(S, body, algo = 'sha256')
msg <- POST('https://www.bitmex.com/api/v1/order',
encode = 'json',
body = data,
content_type_json(),
add_headers(.headers = c('api-key' = K,
'api-signature' = signature,
'api-expires' = expires)))
content(msg, "text")
我在 CRAN 上有一個包 - bitmexr - 它為您可能感興趣的大多數 BitMEX API 端點提供了一個包裝器。仍然是一個相當“年輕”的包,所以我歡迎任何反饋!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.