2017-07-07 26 views
1

我使用C#WAMP客户端连接到Poloniex交易所以获取实时市场数据.AS根据交易所提供的文档以创建实时订单簿,我们必须首先获取订单簿的快照通过它们提供的REST API提取序列号,然后连接到WAMP服务器以获取流数据并更新订单簿快照。如何创建自Poloniex交换WAMP Api序列号的实时订购书与REST Api获取的序列号不相关?

我在更新通过rest api接收到的快照订单时遇到问题,因为通过REST api收到的序列号比通过WAMP收到的序列号快近400k条记录。

是否有任何其他方式可以从POloniex交换中获得实时流数据还是我错过了什么?

回答

2

我有同样的问题。似乎他们有一些错误。我注意到的是,在正常更新消息和“心跳”消息(没有有效载荷的消息)中发送了不同的序列。该文档指出,心跳消息应该重复上一次正常的消息序列号。但它有所不同。但是它对应于REST API返回的数字。所以看起来这对心跳消息“起作用”,对于正常情况错误。看起来很像一个bug。

这里也有一些related question

UPD:同时检查了由REST API返回交易历史记录的“newTrade”事件。 WAMP中的交易ID显着低于快照中的实际值。似乎通过推送API发布的事件已经过时了几个小时,这就是所有这些行为的解释。所以推送API现在不可用。

最后,似乎目前的做法是使用Web接口使用的纯WebSocket API。它位于wss://api2.poloniex.com。唯一的问题是缺少文档。一种方法是反向设计Web界面的流量。尽管可以在代码片段(如this或讨论here)中找到一些较差的信息。

0

原来的websocket似乎并不活跃。活跃的是:wss://api2.poloniex.com。我在迅速编写我的应用程序,但也许你会发现这有帮助。对于订单条目,我发送以下消息:“{”command“:”subscribe“,”channel“:”(coinPair)“}”。

正确使用引号非常重要(如上所述)。 “(coinpair)”是字符串插值,因此您可以包含任何想要获取订单簿的硬币对。当然你必须消除()。这些仅适用于快捷方式。

如果你想获得所有的代号的价格的鲜活饲料,你必须发送以下信息:“{\”命令\“:\”订阅\”,\‘通道\’:1002} ”。再次小心使用正确的引号。

希望这会有所帮助。

+0

您如何知道通道1002中的整数ID映射到什么字符串货币对? – jjxtra