APIを用いてbitFlyerの約定履歴をCSVファイルで取得する方法(Ruby)

このnoteでは、APIを用いて任意の期間(正確には、任意の「id間」)のBitFlyerの約定履歴をCSVファイルで取得するRubyのプログラムコードを提供しています。

このnoteは有料(300円)ですので、BitFlyerの約定履歴をCSVで取得したいけど、その方法を調べたり考えたりするのが面倒だと思っている人や簡単なAPIの使い方やプログラムの考え方を知りたい人向けです。

有料ではありますが、設定価格を低くしているのは、プログラムが何らかの原因で正常に作動しなかった場合のフォローやプログラムに間違いなどがあった場合に責任を負うことができない(間違いに気づいた場合などは、修正は行います)からです。その点はご了承下さい。

また、BitFlyerの約定履歴には、たまにデータの抜けなどもありますので、その点はご注意下さい。実際にプログラムを利用される際は、BitFlyerのAPI Documentation(https://lightning.bitflyer.com/docs/api)もご確認下さい。

本題の部分に入りますが、プログラムだけ知りたいと言う方は前半は読み飛ばして頂いて、プログラムの記述部分のみご参照下さい

BitFlyerの約定履歴は、APIを用いれば10〜20行程度のプログラムを書けば取得できます。ただし、1度のリクエストで取得できる約定履歴は500約定までという制限があるため、500約定を超える約定履歴は1度のリクエストでは取得できません。

BitFlyerには、API Playground という、プログラムを書くことなく、必要なパラメータを入力するだけで実際のAPIを利用することができる環境があります。約定履歴の場合、取得できる約定履歴の種類は、2019年9月末時点で[BTC現物、BTC_FX、BTC_先物(3限月分)、ETH現物、ETH_BTC、BCH_BTC]の8種類です。最初に取引の種類である[product_code]を指定します。次に1度のリクエストで取得する最大の約定数(最大500)である[count]を指定し、最後に取得したい約定の番号である[id]を指定します(指定するのは、[after]と[before]の2つ。[after]は、取得したい一番古い約定の番号[id](指定した[id]の約定は含まない)を指定。[before]は、取得したい一番新しいの番号[id](指定した[id]の約定は含まない)を指定)。

上記のように、取得したい約定数が少なければ(少ないリクエスト回数であれば)、API Playgroundで手動でリクエストを繰り返せば、取得したい約定履歴が取得できます。ただし、このnoteを執筆している2019年9月末時点で、1日の約定数は約130万約定ですので、1日分の約定を取得しようと思うと、130万約定÷500約定=2600回のリクエストが必要になります。

さすがに2600回手動でリクエストを繰り返すのは現実的ではないですし、取得したい約定履歴が1日以上であればなおさらです。そこで、私の作成したプログラムを利用頂ければ、取得したい約定の「種類」と取得したい約定履歴の「最初と最後のid(指定したidの約定は含まない)」を指定するだけで自動で約定履歴をCSVに出力してくれます。

実際のプログラムは下記です。

ここから先は

3,431字

¥ 300

この記事が気に入ったらサポートをしてみませんか?