ws事件驱动策略,是不是应该在api文档中描述的详细一些?特别是仓位,余额等需要验证的接口。

Author: 诺女也, Created: 2019-06-03 10:23:03, Updated: 2019-07-31 17:23:08

在FMZ的api文档中看了半天,只有这么一个dial函数涉及ws类型,感觉描述的还是不够清晰,不成系统

我水平不太行,就想试试bitmex的ws类型的api,获取仓位、账户等需要验证的信息,没有看懂dial函数,

发了一个工单,客服让我自己去找案例,找交易所的文档,策略广场的案例

策略广场的相关案例–使用websocket协议和平台最新的HMAC获取签名的方法,仓位有变化推送到微信–,

这个代码是旧的,老报错,求一个新的代码,谢谢


More

小小梦 具体报什么错误?麻烦您问题描述下。 只说报错,没人知道具体是什么问题的。

小小梦 ``` function main() { var APIKEY = "your Access Key(Bitmex API ID)" var expires = parseInt(Date.now() / 1000) + 10 var signature = exchange.HMAC("sha256", "hex", "GET/realtime" + expires, "{{secretkey}}")//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) } } } ``` 这个例子测试过了,没有什么问题,有数据返回。 您是不是 这个例子里没填 自己的 api ID ? ``` var APIKEY = "your Access Key(Bitmex API ID)" ``` 这个里面 your Access Key(Bitmex API ID) 这个字符串要你替换成自己的 Bitmex 账号 API ID 的。

诺女也 梦总,用这段代码返回的数据,其时间戳,比当前时间要滞后几分钟,例如,我获取bitmex的quote,获取的时间戳ISO时间,折算为北京时间为8月7日6点9分18秒,实际时间为2019-08-07 06:12:37,滞后3分钟,我也跟rest获取的ticker比对,确实错了,这是啥情况呢?求指教: 2019-08-07 06:12:37 信息 {"table":"quote","action":"insert","data":[{"timestamp":"2019-08-06T22:09:18.150Z","symbol":"XBTUSD","bidSize":34939,"bidPrice":11353....

诺女也 搞定了,谢谢

小小梦 ``` 我把positon换成wallet后,经常报错:错误 TypeError: cannot read property 'write' of null at main (FILE:8) 2019-06-03 12:09:30,错误 websocket: bad handshake ``` 回复的是你的这个问题,麻烦看下。

小草 应该是请求成功了,remaining是剩余websocket连接次数,不能太频繁。

诺女也 答非所问

小小梦 TypeError: cannot read property 'write' of null at main (FILE:8) 这个报错是 程序错误,估计是您改了什么代码导致的。 另外 请先确保您的 托管者所在服务器 可以访问到 OKEX 接口。 目前 只有海外服务器才能访问到OKEX 了。

诺女也 我已经把自己的API替换了 ,在循环中的那个sleep如果使用,对程序应该没有影响吧?

诺女也 /upload/asset/1405cf4702c6364a8e6e.png 我把positon换成wallet后,经常报错:错误 TypeError: cannot read property 'write' of null at main (__FILE__:8) 2019-06-03 12:09:30,错误 websocket: bad handshake

诺女也 2019-06-03 12:00:52 信息 {"info":"Welcome to the BitMEX Realtime API.","version":"2019-05-29T18:35:35.000Z","timestamp":"2019-06-03T04:00:51.178Z","docs":"https://www.bitmex.com/app/wsAPI","limit":{"remaining":37}} 2019-06-03 12:00:50 信息 {"info":"Welcome to the BitMEX Realtime API.","version":"2019-05-29T18:35:35.000Z","timestamp":"2019-06-03T04:00:49.503Z","docs":"https://www.bitmex.com/app/wsAPI","limit":{"remaining":38}} 2019-06-03 12:00:49 信息 {"success":true,"request":{"args":["Zp8Ub0Iom7SxwDXuB5oXetWV",1559534457,"1cf5ce9c114b6991bfde394cdfebab3b36db9ea0e7a365ed7c4328a6f3ce4efe"],"op":"authKeyExpires"}} 2019-06-03 12:00:48 信息 {"info":"Welcome to the BitMEX Realtime API.","version":"2019-05-29T18:35:35.000Z","timestamp":"2019-06-03T04:00:47.720Z","docs":"https://www.bitmex.com/app/wsAPI","limit":{"remaining":39}} 这是不是提示需要重连?