DEVGRU

プログラミングと競馬予想について書きます

coincheck の WebSocket API をNode.jsから使う。

一瞬落ちていたcoincheck の WebSocket API だが、 REST APIと違ってポーリングの必要がなく、システムトレードを行うためのデータ収集には欠かせない。

結構簡単なので、以下にメモがてらコードを記載する。

Node.js v7.3.0 で、npm -i ws している。

const WebSocket = require('ws');

function subscribe(channel, callback) {
  const ws = new WebSocket('wss://ws-api.coincheck.com/');

  ws.on('open', () => {
    ws.send(JSON.stringify({ type: 'subscribe', channel }));
  });

  ws.on('message', (data) => {
    callback(JSON.parse(data));
  });

  ws.on('close', () => {
    console.error(`coincheck ${channel} is disconnected`);
    process.exit(-1);
  });

  ws.on('error', () => {
    console.error(`coincheck ${channel} error`);
    process.exit(-1);
  });
}

上記関数は以下のように呼び出す。

subscribe('btc_jpy-trades', (d) => {
  /*
  d = [
    "ID",
    "取引ペア",
    "注文のレート",
    "注文での量",
    "注文方法"
  ]
  */
});

coincheck.com

(落ちていなければ)、上記のコードで売買履歴が取れるはず。

しかし、日付が入っていないのでいまいち使えないし、配列なのでフィールドが増やせない。 どうしてここのAPIはこんなに使いづらいのか。

(了)

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin

HTML5 Web標準API バイブル

HTML5 Web標準API バイブル

Node.js超入門

Node.js超入門