bitFlyerのAPIを使ってみた-自動売買への道(1)

bitflyer-api

こんにちは、ビットコインが暴落していてもビットコインへの熱が冷めない龍権(@ryuken_biz)です。

僕はビットコイン取引に「bitFlyer」を使っているのですが、その中で「bitFlyer Lighting」というサービスを良く使っています。
この記事のトップに貼ってあるのが、「bitFlyer Lighting」の取引画面です。
チャート・板情報・口座残高・注文状況・取引状況が一画面で見れるので、取引がすごい楽です。

画面左側に隠れているメニューを開いて何気なく眺めていたら、「API」というサブメニューに目に止まりました。
API(Application Programming Interface)というのは、ソフトウェア同士がお互いにやり取りするためのインタフェース仕様のことです。
簡単にいうと、APIを通してプログラミングで自動売買ができるようになります。

実際昼仕事をしていると、取引画面をずっと見てられるわけでもないし、取引がかなり制限されます。
これに対してAPIを使って自動売買ができると、1日24時間取引ができるわけです。
これはAPIを使わないわけにはいかないと思って、早速試してみました。

「API Key」を取得しよう

APIキーがなくても動くAPIもあります。
例えば、板情報取得(売買したい値段情報)・取引所の状態(稼働中か停止中か)など、公になっている状態取得APIです。
これらのAPIは公になっているものを取得しているので、だれでも取得できることになっています。

その他のほとんどのAPIを利用するには、まず「API Key」を取得しないといけません。
このAPIキーは一人ひとりの会員に紐付いていて、あなたの口座を識別するためのものになります。
このAPIキーが漏洩した場合、第三者があなたになりすましてあなたの口座を自由に操作することができてしまいますので、大事に保管する必要があります。

では、「API Key」を取得してみましょう。
「API」サブメニューから「API」ページに遷移しましょう。
画面下部にある「新しいAPIキーを追加」をクリックします。

bitflyer-api1

「API Key」についての注意事項が表示されます。
必ず一読し、同意する場合は、「同意します」とクリックします。

bitflyer-api2

このAPIキーに与える権限を選択できます。
今回は自動売買用ですので、「資産」「トレード」の全項目のチェックを入れました。
「入出金」まで自動でするつもりはなかったので、チェックを外しました。
ラベルには分かりやすい文言を入れて、他のAPIキーと区別できるようにしましょう。
最後に、最下部の「OK」をクリックして確定してください(OKボタンが隠れて見えません)。

bitflyer-api3

新しいAPIキーが追加されました。

bitflyer-api4

APIを試してみよう

とりあえずAPIを試してみましょう。
とりあえず試す時は、別にプログラムを組まなくてもできます。
「API」ページの上部にある「API Playground」リンクをクリックして、「bitFlyer Lightning API Playground」ページに遷移してください。

bitflyer-api5

この画面上でAPIを一通り試すことができます。
試すといっても、すべてあなたの実口座に対してシグナルが送られますので、注文するAPIを試す時は気をつけてくださいね。
画面左側に使えるAPIがずらりと並んでいます。
APIの後に「Private」が付いているのは、「API Key」および「API Secret」が必要なAPIです。

まず、PublicなAPI(Privateではない方)を1つ試してみましょう。
一番分かりやすい「gethealth」を試してみます。
取引所の稼動状態を取得するAPIです。
画面左側のメニューから「GET /v1/gethealth」を選択し、「Submit」をクリックしてみます。
すると、画面右側の「Response」欄にレスポンスが表示されます。

bitflyer-api6

「”status”: “BUSY”」と表示されていますが、これは取引所に負荷がかかっている状態を示しています。
レスポンスの説明は、「API ドキュメント」で確認できます。

次に、「API Key」をセットしないで、PrivateAPIを試してみましょう。
資産残高取得(getbalance)を実行してみると、案の定エラーになっていますね。

bitflyer-api7

最後に、「API Key」と「API Secret」をセットしてPrivateAPIを試すとどうなるでしょうか。
最初に取得した「API Key」と「API Secret」を入力してから、再度実行してみましょう。
ここは公開できないので、一応伏せておきます。

bitflyer-api8

レスポンスが正常に返ってきましたね。
日本円の残高が2,331円、ビットコインの残高が0.58019509という具合です。
他にも、BCH(ビットコインキャッシュ)、ETH(イーサリアム)、ETC(イーサリアムクラシック)、LTC(ライトコイン)の残高が返ってきていました。

他のAPIも同じ要領で試すことができます。
後は、自動売買するプログラムを組めば、自動で仮想通貨を売買することができます。

ソースコードを書いて「bitFlyer」のAPIを試した記事もありますので、合わせてご覧ください。
関連記事:bitFlyerのAPIを使ったソースコードを実行してみた – 自動売買への道(2)