株やFXのシステムトレードや、仮想通貨BOTの作成のためにはAPIの使用は必須です。WEB上に公開されているオープンの価格データを随時取得しなければ、簡単にはシステム化をする事ができません。

最近では(特に仮想通貨に関しては)、市場データ・価格データ取得のAPIが豊富で、BOT作成がサクサク進みます。APIにも様々なものがありますが、今回は特に、各取引所で提供しているAPIサービスに目を向けてみたいと思います。

各取引所で提供するAPIでは、我々ユーザのアカウント情報、取引情報などを取得できます。ここまでAPIが活用しやすい状況だと、むしろAPIを使った取引をしてよ~と言っている様にも思えます。

そんな前置きはさておき、APIを使用する際に最低限覚えておきたい事について解説致します。

パブリックAPIとプライベートAPIについて

さて、取引所などで提供するAPIは2種類存在します。

1つがパブリックAPI、2つ目がプライベートAPIです。用途によって、どちらを使えば良いかが異なりますので、まずこの2つについてご紹介します。

パブリックAPI

パブリックAPIとはアカウントを取得していなくとも使用ができるAPIです。いわゆるオープンAPIです。

例えばbitFlyerが持っている価格データ、取引データなどを取得したいと思った場合、bitFlyerのアカウントを持っている人でなければ使用ができないと思われがちです。でも、実はパブリックAPIであれば誰でも使用する事ができます。

※これは取引所によって仕様が異なるので、随時確認は必要です

bitFlyerで売買されている通貨のチャート情報などは、bitFlyerのサイトにアクセスすれば誰でも閲覧する事ができますよね。※アカウントを取得しなければ閲覧できないケースもありますが。。。基本的には、それと全く同じです。ですから、仮にアカウントを取得していなくとも閲覧できる情報はパブリックAPIとして取得できる可能性があると思っていいと思います。

プライベートAPI

こちらはアカウントを取得しているユーザだけが使用できるAPIになります。

取引情報や口座の情報などに誰でもアクセスできるとなれば、それは大問題です。勝手に売買されるなって事になったらニュースものですね。ですから、プライベートAPIの場合は必ず事前にアカウントを取得してAPIキー、パスワードなどを発行してもらわなければなりません。

当然ですが、プライベートAPIで取得できる情報は、個人のアカウント情報だけです。自分自身の売買や口座情報だけは取得ができます。この辺りは、株、FX、仮想通貨のアカウント、はたまたメールサービスと全く同じです。

パブリックAPIとは逆に、各サービスのアカウントを取得しなければ閲覧できない情報は、パブリックAPIで取得する事はまず不可能で、プライベートAPIであれば取得できる可能性があると思っていいと思います。※例えプライベートAPIであっても、どんな情報でも取得ができる訳ではありません。その辺りは仕様書を確認して情報取得しましょう。

実際に取引所のAPIを使ってみる

では実際に取引所で公開されているAPIを使ってみましょう。APIを使用する時はコードを書かなければならないと思っている方もいますが、コードを書かなくともAPIは使用できます。

bitFlyerのAPIを触ってみよう

まずは日本では最も有名なbitflyerのAPIを使用してみましょう。APIを使用する時はまずbitFlyerのサイトからどの様なAPIがあるかを確認します。

bitFlyerで公開されているAPIを見てみましょう。トップページからAPIのページに進むと以下の様な画面になり、各種APIの内容を確認できます。

利用できるAPIにはいくつか種類があります。

・bitFlyer Lightning API

・chain Flyer

・bitFlyer Lightning API Playgroud

・Echo API

いきなり色々なAPIがあるなと思うかもしれませんが、とりあえず使用するAPIの事だけ学んでおけばOKです。目的に合わせて使用するAPIを選択しましょう。

とりあえずパブリックAPIとして使用可能である「bitFlyer Lightning」を使用してみましょう。板情報やTicker情報などBOT作成に必要な情報がこのAPIで取得できる様です。ちなみに、bitFlyer Lightningのページに進むと以下の様な仕様情報が表示されます。

■bitFlyer Lightning APIのURL

「https://lightning.bitflyer.com/docs?lang=ja」

画面には全て表示していませんが、仕様に関する情報がズラーと並んでいます。これらの全てを把握する事は難しいので、必要な部分を中心に見てみましょう。

bitFlyerのAPIで板情報を取得してみよう!

bitFlyer Lightning APIの仕様を見てみると、板情報を取得できる事が分かります。板情報のリクエストは以下の様になっている様です。

ここに「GET /v1/getboard」との記載がありますので、bitFlyer APIを呼び出す場合のリクエストを発行しましょう。

bitFlyer APIの場合はまず「https://api.bitflyer.jp/」にアクセスする事でリクエストを発行できます。このURLに板情報を取得するリクエスト文を足して、実際に発行するリクエストURLを作成する事ができます。

まず、実際のリクエストURLを見てみましょう。

■リクエストURL

■実行結果(長いので途中まで)

見事にJSON形式でbitFlyerの板情報の取得する事ができました。実際はコードを書いてここから値を取得して編集すべきなのですが、とりあえずは結果を取得できました。

Ticker情報を取得してみよう!

次はTicker情報を取得しましょう。同じ様に仕様を確認してみると、Ticker情報を取得する場合は、「GET /v1/getticker(GET /v1/ticker)」を使用して情報取得ができます。

※この辺りは板情報を取得する際と同じです。

先ほどと同じ様に「https://api.bitflyer.jp/」に繋げてこのリクエストを作成し、ブラウザ上で発行してみましょう。

■リクエストURL

■実行結果

[text]{"product_code":"BTC_JPY","timestamp":"2018-08-15T04:53:47.877","tick_id":2731965,"best_bid":706400.0,"best_ask":706403.0,"best_bid_size":0.5781,"best_ask_size":0.0026,"total_bid_depth":1786.26632783,"total_ask_depth":2190.16517098,"ltp":706400.0,"volume":408742.53182922,"volume_by_product":10118.81469348}[/text]

APIへの結果(1行)が帰ってきましたね。通貨の情報やタイムスタンプ、気配値といったトレードに必要な情報を一気に取得できましたね。

このリクエストURLは、BOT作成をする場合は、Ticker情報は今後何度も使う事になると思います。簡単なので覚えておいて下さいね。

パブリックAPIもプライベートAPIも使い方を覚えてしまえば簡単

今回はbitFlyerのパブリックAPIを実際に使ってみましたが、当然プライベートAPIも使う事ができます。そしてプライベートAPIの使い方もほぼ同じなので簡単です。※APIキーなどが別途必要にはなります。

実際に仮想通貨のBOTを作成する際はPythonなどでデータを編集する必要がありますが、まずはAPIにリクエストを投げる。そして、その結果を取得する。という部分まで把握ができればOKです。

今回確認した板情報や気配値の情報は、経験のある人であれば、これらの値を見ただけで、今は買う時か、売る時か、待つ時か、という判断ができるのですが、素人の方はなかなか難しいものです。これらのデータの分析はコンピュータが大得意です。そこにトレードをシステム化、BOT化する価値があると思います。