Cácexchange.Encode()
chức năng được sử dụng để tính toán mã hóa chữ ký.
Cácexchange.Encode()
hàm trả về mã hóa giá trị băm được tính toán.
chuỗi
exchange.Encode ((algo, inputFormat, outputFormat, data) exchange.Encode ((algo, inputFormat, outputFormat, data, keyFormat, key)
Các thông sốalgo
là thuật toán được sử dụng để tính toán mã hóa. Các cài đặt được hỗ trợ là: algo
cũng hỗ trợ: algo
cũng hỗ trợ: thuật toán algo
có thể được viết như ed25519.seed
tính toán.
algo
đúng
chuỗi
Sử dụng để xác định định dạng dữ liệu củadata
các tham số.inputFormat
tham số có thể được đặt thành một trong: hex
được mã hóa, base64
được mã hóa, và outputFormat
tham số hỗ trợ các thiết lập sau: hex
được mã hóa, base64
được mã hóa, và data
là dữ liệu được xử lý.
dữ liệu
đúng
chuỗi
Sử dụng để xác định định dạng dữ liệu củakey
các tham số.key
tham số có thể được đặt thành một trong: hex
được mã hóa, base64
được mã hóa, và key
tham số được sử dụng để chỉ định khóa được sử dụng trong tính toán chữ ký, và nó có thể được sử dụng như một chuỗi văn bản thuần túy."{{accesskey}}"
, "{{secretkey}}"
để đề cập đếnaccessKey
vàsecretKey
được cấu hình trong {@var/EXCHANGE exchange} đối tượng trao đổi.
chìa khóa
sai
chuỗi
function main() {
var APIKEY = "your Access Key(Bitmex API ID)"
var expires = parseInt(Date.now() / 1000) + 10
var signature = exchange.Encode("sha256", "string", "hex", "GET/realtime" + expires, "hex", "{{secretkey}}")
var client = Dial("wss://www.bitmex.com/realtime", 60)
var auth = JSON.stringify({args: [APIKEY, expires, signature], op: "authKeyExpires"})
var pos = 0
client.write(auth)
client.write('{"op": "subscribe", "args": "position"}')
while (true) {
bitmexData = client.read()
if(bitmexData.table == 'position' && pos != parseInt(bitmexData.data[0].currentQty)){
Log('position change', pos, parseInt(bitmexData.data[0].currentQty), '@')
pos = parseInt(bitmexData.data[0].currentQty)
}
}
}
import time
def main():
APIKEY = "your Access Key(Bitmex API ID)"
expires = int(time.time() + 10)
signature = exchange.Encode("sha256", "string", "hex", "GET/realtime" + expires, "hex", "{{secretkey}}")
client = Dial("wss://www.bitmex.com/realtime", 60)
auth = json.dumps({"args": [APIKEY, expires, signature], "op": "authKeyExpires"})
pos = 0
client.write(auth)
client.write('{"op": "subscribe", "args": "position"}')
while True:
bitmexData = json.loads(client.read())
if "table" in bitmexData and bitmexData["table"] == "position" and len(bitmexData["data"]) != 0 and pos != bitmexData["data"][0]["currentQty"]:
Log("position change", pos, bitmexData["data"][0]["currentQty"], "@")
pos = bitmexData["data"][0]["currentQty"]
void main() {
auto APIKEY = "your Access Key(Bitmex API ID)";
auto expires = Unix() + 10;
auto signature = exchange.Encode("sha256", "string", "hex", format("GET/realtime%d", expires), "hex", "{{secretkey}}");
auto client = Dial("wss://www.bitmex.com/realtime", 60);
json auth = R"({"args": [], "op": "authKeyExpires"})"_json;
auth["args"].push_back(APIKEY);
auth["args"].push_back(expires);
auth["args"].push_back(signature);
auto pos = 0;
client.write(auth.dump());
client.write("{\"op\": \"subscribe\", \"args\": \"position\"}");
while(true) {
auto bitmexData = json::parse(client.read());
if(bitmexData["table"] == "position" && bitmexData["data"][0].find("currentQty") != bitmexData["data"][0].end() && pos != bitmexData["data"][0]["currentQty"]) {
Log("test");
Log("position change", pos, bitmexData["data"][0]["currentQty"], "@");
pos = bitmexData["data"][0]["currentQty"];
}
}
}
Ví dụ về việc đẩy thay đổi vị trí BitMEX (chỉ dẫn wss):
Chỉ có thương mại thực sự hỗ trợ gọiexchange.Encode()
chức năng."{{accesskey}}"
, "{{secretkey}}"
tham chiếu chỉ có giá trị khiexchange.Encode()
chức năng được sử dụng.
{@var/EXCHANGE exchange}, {@fun/Global/Encode Encode}
exchange.Log exchange.Go