wilki.space Blog

ビットコイン自動売買など仮想通貨まわりを中心にシステムトレード関係のお話をいろいろと

Bitflyerの約定履歴を取得する

テクニカルチャートを描くためには価格を取得する必要があります。

いわゆる始値、終値、高値、安値ってやつですね。 Tickerという形で情報提供されてたりしますが、1分、5分、1時間など複数の時間軸で集計したい場合は生の価格情報をデータとして取得する必要がありますね。

BitflyerのAPIの種類

APIにはPublic APIとPrivate APIの2つがあります。 Publicな方は価格情報など公開されている情報の取得で、Privateな方は口座残高、注文実施などアカウントに紐付く情報の参照、更新系のAPIとなっています。 Privateな方を叩くためにはAPIキーなどの設定が必要になります。

今回は価格の取得になるのでPublicなAPIを使います。

約定履歴の取得

Bitflyerの約定履歴は

https://api.bitflyer.jp/v1/getexecutions

にアクセスすると得られます。パラメータとして、product_codeを利用できます。デフォルトではビットコインの約定履歴が取得できますが、ビットコインFXや先物の約定履歴も取得できます。

ビットコイン以外の約定履歴を取得したい場合は以下の手順で行います。

1. プロダクトコードを取得する

https://api.bitflyer.jp/v1/getmarkets

にアクセスすると、BitflyerのAPIで扱えるプロダクトのコードを取得することができます。 例えば、ビットコインFXだったら「FX_BTC_JPY」というものがそれです。 他にも、イーサ/ビットコインや先物なんかもありますね。

2. 約定履歴APIのパラメータにプロダクトコードを付ける

例えばビットコインFXの約定履歴を取得する場合は、

https://api.bitflyer.jp/v1/getexecutions?product_code=FX_BTC_JPY

となります。

あとはこの返ってきたJSONをパースしてDBとかに保存してやればいいですね。

Javascriptでローソク足を描いてみる

Javascriptでチャートを描くにはいくつかのライブラリがあります。自分でイチから描いてしまってもいいのですが、結構大変なのでこの辺はライブラリ使いたいところですね。 有名どころ(?)は以下2つかなーと思います。

jqPlot

これはjQueryプラグインですね、いわゆるテクニカルチャート用のライブラリというよりもグラフ描画ライブラリでその中にローソク足やいかり足チャートも入ってますよって感じのものになります。

jqPlotのメリット

  • jQueryプラグインなので、jQueryに慣れ親しんだ人にも使いやすい
  • テクニカルチャート以外のグラフ描画もやりやすいので独自にグラフを作成しやすい

jqPlotのデメリット

  • その他のチャート分析のグラフなどを描くためには独自で描画する必要がある

jqPlot Charts and Graphs for jQuery

TechanJS

こちらはD3.jsベースのライブラリになります。テクニカルチャートの色んな描画についてのやり方がまとめられているので、本格的にグラフ描画を実施したい場合にはこちらがオススメです。

TechanJSのメリット

  • 各種チャート分析に対応しているのでいろんな分析を行いやすい
  • D3.jsを用いてその他のグラフ描画も行うことができる

TechanJSのデメリット

  • D3.jsベースになるので、少し学習コストが高い

techanjs.org

双方良し悪しありますが、チャート分析ツールを独自で作成する場合には個人的にはTechanJSをオススメします。 D3.jsに関する知識が必要になってきますが、その分いろいろ拡張性も高くキレイなチャートを作成することができます。

このブログについて

このブログでは、システムトレードに関することを更新してきます。

  • プログラミングは多少わかるけど金融系の知識はあんまりない
  • 最近仮想通貨などに興味をもっている
  • 金融とITの分野に興味がある

という人にとって興味深い内容を書いていけたらなーって思っています。