簡體   English   中英

使用 httr 通過 BitMex API 下單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM