についてexchange.Encode()
この関数は署名暗号化計算に使用されます.
についてexchange.Encode()
計算したハッシュ値のエンコーディングを返します.
文字列
exchange.Encode ((algo, input 形式, output 形式,データ) exchange.Encode ((algo, input形式, output形式,データ,キー形式,キー)
パラメータalgo
は,暗号化計算に使用されるアルゴリズムである. サポートされている設定は: algo
また,文字列のエンコーディングと解読のために, algo
また: algo
ed25519.seed
計算する
アルゴ
本当
文字列
データの形式を指定するために使用されます.data
パラメータinputFormat
パラメータは,次のいずれかに設定できます: hex
base64
文字列が文字列であることを意味します.
input 形式
本当
文字列
出力データ形式を指定するために使用されます.outputFormat
パラメータは以下の設定をサポートします: hex
base64
文字列が文字列であることを意味します.
output 形式
本当
文字列
パラメーターdata
処理されるデータです
データ
本当
文字列
データの形式を指定するために使用されます.key
パラメータkey
パラメータは,次のいずれかに設定できます: hex
base64
文字列が文字列であることを意味します.
キー形式
偽り
文字列
についてkey
パラメータは署名計算に使用されたキーを指定するために使用され, 文字列として使用できます."{{accesskey}}"
, "{{secretkey}}"
参照するaccessKey
そしてsecretKey
{@var/EXCHANGE 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 エンコード}
exchange.Log exchange.Go