Вexchange.Encode()
Функция используется для расчетов шифрования подписи.
Вexchange.Encode()
функция возвращает вычисленное значение кодирования хэша.
строка
exchange.Encode ((algo, inputФормат, выходФормат, данные) exchange.Encode ((algo, inputFormat, outputFormat, data, keyФормат, ключ)
Параметрalgo
является алгоритмом, используемым для расчета кодирования. Поддерживаемые настройки: algo
также поддерживает: algo
также поддерживает: алгоритм algo
может быть написано как ed25519.seed
расчеты.
что-то
неправда
строка
Используется для определения формата данныхdata
параметр.inputFormat
параметр может быть установлен на один из: hex
base64
кодируется, и outputFormat
параметр поддерживает следующие настройки: hex
base64
кодируется, и data
это данные, которые должны быть обработаны.
данные
неправда
строка
Используется для определения формата данныхkey
параметр.key
параметр может быть установлен на один из: hex
base64
кодируется, и key
параметр используется для указания ключа, используемого в расчете подписи, и он может быть использован в качестве строки простого текста."{{accesskey}}"
, "{{secretkey}}"
ссылаясь наaccessKey
иsecretKey
Конфигурировано в объекте обмена {@var/EXCHANGE exchange}.
Ключ
ложное
строка
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"];
}
}
}
Пример сдвига изменения позиции BitMEX (протокол wss):
Только реальная торговля поддерживает звонкиexchange.Encode()
Функция."{{accesskey}}"
, "{{secretkey}}"
ссылки действительны только в том случае, еслиexchange.Encode()
функция используется.
{@var/EXCHANGE exchange}, {@fun/Global/Encode Encode}
exchange.Log exchange.Go