BitfinexとBitmexの板と約定履歴をwebsocketで取得する
node.jsを使ってます。
Bitfinex
const ws = require('ws')const w = new ws('wss://api.bitfinex.com/ws/2')
w.on('message', msg => console.log(msg))
let msg = JSON.stringify({ event: 'subscribe', channel: 'trades', symbol: 'tBTCUSD'})
w.on('open', () => w.send(msg))Bitmex
const ws = require('ws')const w = new ws('wss://www.bitmex.com/realtime?subscribe=trade:XBTUSD')
w.on('message', msg => console.log(msg))大体こんな感じでとれた。とりあえずBitmexの板情報をとってるんだけど、価格がJSONに入ってなくて、なんでだろうなーと思ってたら、下記に価格の計算方法が書いてあった。ビットフライヤーと全然仕組みが違う。
https://www.bitmex.com/app/restAPI — www.bitmex.com
ちなみに、約定履歴が、tradeで、板は、orderBookL2のようです。trade:XBTUSDとかやると、ビットコインの約定履歴とれる。約定履歴と板をwebsocketで取りたい場合は、node.jsだと下記みたいにすると取れる。
const ws = require('ws');const w = new ws('wss://www.bitmex.com/realtime');w.on('message', msg => onMessage(msg));const msg = JSON.stringify({ op: 'subscribe', args: ['trade:XBTUSD', 'orderBookL2:XBTUSD']});w.on('open', () => w.send(msg))
const onMessage = msg => { const data = JSON.parse(msg); switch(data.table) { case 'trade': { _executions(data); break; } case 'orderBookL2': { _board(data); break; } }}