【问题标题】:How to create real time order book since Poloniex exchange WAMP Api sequence number is not correlating with the sequence number got from the REST Api?由于 Poloniex 交换 WAMP Api 序列号与从 REST Api 获得的序列号不相关,如何创建实时订单簿?
【发布时间】:2017-09-20 22:19:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# wamp-protocol poloniex


    【解决方案1】:

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

    这里还有一些related question

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

    最后,似乎当前的方式是使用他们的纯 WebSocket API,该 API 被 Web 界面使用。它位于 wss://api2.poloniex.com。唯一的问题是缺乏文档。一种方法是对 Web 界面的流量进行逆向工程。尽管可以在this 之类的代码 sn-ps 或讨论here 中找到一些糟糕的信息。

    【讨论】:

      【解决方案2】:

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

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

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

      希望这会有所帮助。

      【讨论】:

      • 你怎么知道1002通道的什么整数id映射到什么字符串货币对?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多