Mtgox

使用 Mt.Gox 流媒體 API 訂閱市場深度更新

  • July 17, 2013

我想使用流 API <https://en.bitcoin.it/wiki/MtGox/API/Streaming>訂閱市場深度更新。我只想接收特定符號(例如 EUR)或所有符號的深度更新。所以我連接到 wss://websocket.mtgox.com 並發送命令

{
    "type": "depth",
    "op": "mtgox.subscribe" 
}

我期待收到所有符號的深度更新。但它只向我發送 BTCUSD 的更新。儘管帶有參數 “type” = “trades” 的相同訂閱命令會發送所有交易品種的交易(不僅是 BTCUSD)。這有點令人困惑。

在 API 文件中提到了貨幣參數:websocket.mtgox.com:80/mtgox?Currency=EUR,但在連接到此 websocket 後,我也會收到程式碼更新。但我不需要股票更新。

問題是我如何才能只接收特定程式碼的市場深度更新?(或所有符號)

這是我的做法node.js

var events = require('events');
var io = require('socket.io-client');

var MTGOX = function(){
   var self = this;
   var socket = io.connect('https://socketio.mtgox.com/mtgox');   

   socket.on('message', function(data){

       var message = data;

       if( message.private == "depth"){
           self.emit('depth', data.depth);    
       } else if( message.private == "ticker" ){
           self.emit('ticker', data.ticker);
       } else if( message.private == "trade" ){
           self.emit('trade', data.trade);
       }

   });
};

MTGOX.prototype.__proto__ = events.EventEmitter.prototype;

然後我只聽depth事件。當我第一次解決這個問題時,我發現這個項目很有幫助。

在 Java 中,您可以使用XChange庫,該庫通過統一的 API 為一系列交換提供此數據和其他數據。

引用自:https://bitcoin.stackexchange.com/questions/12223