1

我正在使用 C# WAMP 客户端连接到 Poloniex 交易所以获取实时市场数据。根据交易所提供的文档,为了创建实时订单簿,我们必须首先通过 REST 获取订单簿的快照他们提供的 api 并从中提取序列号,然后连接到 WAMP 服务器以获取流数据并更新订单簿快照。

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

有没有其他方法可以让我从 POloniex 交易所获取实时流数据,或者我错过了什么?

4

2 回答 2

2

我也有同样的问题。似乎他们有一些错误。我注意到的是,在正常更新消息和“心跳”消息(没有有效负载的消息)中发送了不同的序列。该文档指出,心跳消息应重复最后一个正常消息序列号。但它不同。但是,它对应于 REST API 返回的数字。因此,对于心跳消息似乎“有效”,而对于正常消息似乎是错误的。看起来很像一个错误。

这里也是一些相关的问题

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

最后,似乎当前的方式是使用 Web 界面使用的纯 WebSocket API。它位于 wss://api2.poloniex.com。唯一的问题是缺乏文档。一种方法是对 Web 界面的流量进行逆向工程。尽管可以在这样的代码片段或在此处的讨论中找到一些糟糕信息。

于 2017-07-09T17:52:11.223 回答
0

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

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

如果您想获得所有代码的实时报价,您必须发送以下消息:"{\"command\":\"subscribe\",\"channel\":1002}"。再次小心使用正确的引号。

希望这可以帮助。

于 2017-09-20T14:19:50.890 回答