이exchange.Encode()
이 함수는 서명 암호화 계산에 사용됩니다.
이exchange.Encode()
함수는 계산된 해시 값의 인코딩을 반환합니다.
문자열
exchange.Encode ((algo, inputFormat, outputFormat, data) 를 입력할 수 있습니다. exchange.Encode ((algo, inputFormat, outputFormat, data, keyFormat, 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