2017-07-07 27 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