OKEX期货使用websocket行情模式和Go异步函数,切换合约类型时是否有影响?

Author: lightring, Created: 2019-09-14 18:06:24, Updated:

假设要在OKEX期货中做BTC的跨期套利,合约类型为this_week和quarter,并且想用websocket行情模式。 现在是只能添加一个交易所对象exchange,每次GetTicker、exchange.Go前,都要调用一次SetContractType。

websocket示例代码和问题如下:

exchange.IO("websocket"); exchange.SetContractType(“this_week”); var tickerA = exchange.GetTicker(); exchange.SetContractType(“quarter”); var tickerB = exchange.GetTicker();

问题:每次调用exchange.SetContractType()时,是否会重新连接websocket?

Go函数示例代码和问题如下:

exchange.SetContractType(“this_week”); var orderA = exchange.Go(“Sell”,tickerA.Last, 1); exchange.SetContractType(“quarter”); var orderB = exchange.Go(“Buy”,tickerB.Last, 1);

问题:因为异步的原因,有没有可能在orderA执行时,实际使用合约类型是quarter?

其他问题:

  1. 如果上面的问题确实存在的话,有没有什么办法避免呢?
  2. 同一个交易所的同一个交易对,可否创建两个exchange对象,并且互相之间不影响?比如两个exchange对象都有自己的websocket连接,互不影响。

More

小小梦 OKEX期货 不支持```exchange.IO("websocket")```这种模式切换。 直接使用 Dial 函数创建websocket 连接即可。