Elexchange.Encode()
La función se utiliza para los cálculos de cifrado de firmas.
Elexchange.Encode()
La función devuelve el valor de codificación de hash calculado.
la cuerda
exchange.Encode ((algo, inputFormat, outputFormat, datos) exchange.Encode ((algo, inputFormat, outputFormat, datos, claveFormat, clave)
El parámetroalgo
es el algoritmo utilizado para el cálculo de codificación. Los ajustes compatibles son: algo
También admite: algo
también admite: algo
puede escribirse como ed25519.seed
el cálculo.
algo
verdadero
la cuerda
Se utiliza para especificar el formato de datos deldata
el parámetro.inputFormat
hex
codificado, base64
codificado, y outputFormat
Parámetro admite los siguientes ajustes: hex
codificado, base64
codificado, y data
es los datos a tratar.
datos
verdadero
la cuerda
Se utiliza para especificar el formato de datos delkey
el parámetro.key
hex
codificado, base64
codificado, y key
Parámetro se utiliza para especificar la clave utilizada en el cálculo de la firma, y se puede utilizar como una cadena de texto plano."{{accesskey}}"
, "{{secretkey}}"
para referirse a laaccessKey
ysecretKey
configurado en el objeto de intercambio {@var/EXCHANGE exchange}.
llave
falsos
la cuerda
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"];
}
}
}
Ejemplo de empuje de cambio de posición de BitMEX (protocolo wss):
Sólo el comercio real apoya la llamadaexchange.Encode()
La función"{{accesskey}}"
, "{{secretkey}}"
Las referencias sólo son válidas cuando elexchange.Encode()
La función se utiliza.
¿Qué es lo que está pasando?
exchange.Log exchange.Go