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に入ってなくて、なんでだろうなーと思ってたら、下記に価格の計算方法が書いてあった。ビットフライヤーと全然仕組みが違う。
ちなみに、約定履歴が、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; } } }