bitbank(ビットバンク)の公式APIの始め方(Python用コード)
- 公開日:2018/07/18
- 更新日:2018/10/19
- 投稿者:n bit
Pythonを使ってbitbank(ビットバンク)のAPIを利用する方法を解説します。bitbankではAPIを利用することで通常使用することのできないオーダーなども使うことができますのでbitbankをメイン取引所として利用する方はAPIも使えるようになっておくと便利です。
この記事は約 分で読めます。(文字)
bitbank(ビットバンク)の公式APIとは
仮想通貨の取引所の多くではAPI機能が用意されています。日本国内で人気の仮想通貨取引所ビットバンクでもAPIがあり、APIを利用することで取引所の利用をより便利にすることができます。
ビットバンクのAPIとは
APIと聞くとプログラムと身構えてしまう方も多いかもしれませんが、API自体は慣れてしまえばそんなに難しいものではありません。基本的には決まったURLでアクセスすることで指定のデータを取得することができます。
イメージとしては取得したいデータだけが置かれているホームページだと捉えておいても大丈夫です。取得したいデータが置かれているページのURLを直接入力してアクセスしているような感じです。
ビットバンクのAPIには大きく2種類のAPIが用意されています。1つは『パブリックAPI』、そしてもう一つは『プライベートAPI』です。1つ目のパブリックAPIは誰でもアクセスできるAPIです。もう一方の『プライベートAPI』はアクセスするために専用のAPIキーやシークレットが必要となります。
『プライベートAPI』を利用する場合は専用APIキーとシークレットを暗号化する必要がありますが、そのような細かな手続きに関してはビットバンクが公式に専用のライブラリを用意してくれているため、ライブラリをインストールしておけば全て自動でやってくれます。
ビットバンクAPIを使うと何ができるの
ビットバンクのAPIを使うことで具体的にどのようなことができるようになるのか見ていきましょう。
パブリックAPIの機能
パブリックAPIで利用することができる機能の一覧は下記の通りです。今は説明の列を流し読み程度で充分です。パブリックAPIを利用するとこのようなことが遠隔で利用できます。
関数 | 説明 | 引数 |
---|---|---|
get_ticker | 市場価格を取得 | pair |
get_depth | 板情報を取得 | pair |
get_transactions | 最新の全約定履歴を取得 または、 指定日の全約定履歴を取得 | pair, yyyymmdd=None |
get_candlestick | 指定日のロウソク足データを取得 | pair, candle_type, yyyymmdd |
プライベートAPIの機能
プライベートAPIで利用することができる機能の一覧は下記の通りです。
関数 | 説明 | 引数 |
---|---|---|
get_asset | 資産の一覧を取得 | |
get_orders | オーダー情報を取得 | pair, order_id |
get_active_orders | アクティブなオーダー情報を取得 | pair, options=None |
order | オーダーを入れる | pair, price, amount, side, order_type |
cancel_order | オーダーをキャンセルする | pair, order_id |
cancel_orders | 複数のオーダーをキャンセルする | pair, order_ids |
get_orders_info | 複数のオーダー情報を取得 | pair, order_ids |
get_trade_history | 約定履歴を取得 | pair, order_count |
get_withdraw_account | 出金アカウントを取得 | asset |
request_withdraw | 出金をリクエスト | asset, uuid, amount, token |
別のページで解説しますが、ビットバンクのオーダーの中にはロスカット向きの注文がありません。通常はチャートを追いかけながら手動で購入や利確、損切りなどを行う必要があり結構不便です。これらの問題もこのプライベートAPIの機能を活用することでクリアすることができます。
bitbankでAPIを使った損切り(ストップ成行)注文の入れ方は下記のページで解説しています。
bitbankでAPIを使った損切り(ストップ成行)注文(Python用コード)
残念ながらビットバンクでは標準の注文システムで損切り(ストップ成行)注文に対応していません。そこでAPIを使った損切り注文のシステムをPythonで記述しました。損切り注文の入れ方とPythonコードを紹介します。
Pythonを使ったbitbank(ビットバンク)公式APIの連携方法
それでは具体的にビットバンクの公式APIの連携方法を解説していきます。APIをコントロールするにはプログラミング言語が必要となりますがここではPythonを使って進めていきます。
ビットバンクからAPIキーとシークレットの取得
プライベートAPI利用時に必要となるAPIキーとシークレットを最初に取得します。ビットバンクにログインしたら左メニューの『API』をクリックしてください。
ログイン方法は下記のページで解説しています。
bitbank(ビットバンク)にログインする方法
bitbank(ビットバンク)にログインする手順を画像付きで解説します。このページでは2段階認証の設定を行っているユーザのビットバンクへのログイン方法を解説しています。
APIのページが表示されますので『APIキーの発行』のボタンをクリックします。
APIキー発行画面が表示されます。それぞれの項目に必要な情報を入力して『確認する』ボタンをクリックします。
- ラベル:任意
- 権限:参照、取引、出金(付与する権限を増やすほどリスクが高くなります)
設定内容に問題がなければ『発行する』ボタンをクリックします。
以下の画面が表示されれば設定完了です。
次に発行されたAPIキーとシークレットを表示させます。先ほど作成したAPIのラベル行にある『確認』ボタンをクリックします。
認証コードを入力し『確認する』ボタンをクリックしてください。
APIキーとシークレットが表示されますのでどこかにコピーしておいてください。シークレットに関しては下側の『表示』ボタンをクリックすることで表示されます。
これでAPIキーとシークレットの取得作業が完了です。
公式のビットバンクAPIライブラリーのインストール
APIキーとシークレットの取得が完了したら、次はビットバンクが用意してくれている公式ライブラリーのインストールです。ターミナルウインドウを起動し下記のコマンド入力してください。この1行だけでライブラリーのインストールは完了です。
$ pip install git+https://github.com/bitbankinc/python-bitbankcc.git
Cloud9でのビットバンク公式APIライブラリーのインストールコマンド
AWSのCloud9にビットバンク公式APIライブラリーをインストールする場合は以下のコマンドで実行できます。
$ sudo pip-3.6 install git+https://github.com/bitbankinc/python-bitbankcc.git
Pythonで公式ライブラリをインポートして利用する
先ほどインストールした公式ライブラリをPythonのコード内で利用するには最初にインポートする必要があります。インポートのためのコードは下記の1行です。APIのコードを書く前にこちらの1行を追記しておきましょう。
import python_bitbankcc
bitbank(ビットバンク)公式APIのPython基本コード
ビットバンク公式のAPIをPythonで利用する準備が整いましたので実際にPythonからAPI経由でデータを取得してみましょう。
パブリックAPIを利用して現在の相場の価格情報を、プライベートAPIを利用して現在の自分の資産状況を取得してみます。基本的なコードは以下のようになります。
import python_bitbankcc
class BitBankPubAPI:
def __init__(self):
self.pub = python_bitbankcc.public()
def get_ticker(self, pair):
try:
value = self.pub.get_ticker(pair)
return value
except Exception as e:
print(e)
return None
class BitBankPrvAPI:
def __init__(self):
API_KEY = 'BITBANK_API_KEY'
API_SECRET = 'BITBANK_API_SECRET'
self.prv = python_bitbankcc.private(API_KEY, API_SECRET)
def get_asset(self):
try:
value = self.prv.get_asset()
return value
except Exception as e:
print(e)
return None
def main():
pub_set = BitBankPubAPI()
prv_set = BitBankPrvAPI()
ticker = pub_set.get_ticker('btc_jpy')
print(ticker['last'])
asset_dict = prv_set.get_asset()
print(asset_dict['assets'])
if __name__ == '__main__':
main()
パブリックAPIを利用して現在の相場の価格情報
相場価格取得用のメインコードは下記の部分です。
class BitBankPubAPI:
def __init__(self):
self.pub = python_bitbankcc.public()
def get_ticker(self, pair):
try:
value = self.pub.get_ticker(pair)
return value
except Exception as e:
print(e)
return None
こちらの関数をメイン関数内で呼び出して結果をprint関数で出力しています。
def main():
pub_set = BitBankPubAPI()
ticker = pub_set.get_ticker('btc_jpy')
print(ticker['last'])
if __name__ == '__main__':
main()
出力結果
以下のように指定した通貨ペアの価格情報が返されます。
{
"success": 0,
"data": {
"sell": 売り注文の最安値,
"buy": 買い注文の最安値,
"high": 過去24時間以内の最高値,
"low": 過去24時間以内の最安値,
"last": 最終の価格,
"vol": 過去24時間の出来高,
"timestamp": 日時
}
}
プライベートAPIを利用して現在の自分の資産状況を取得
資産状況を取得するメインコードは下記の部分です。
class BitBankPrvAPI:
def __init__(self):
API_KEY = 'BITBANK_API_KEY'
API_SECRET = 'BITBANK_API_SECRET'
self.prv = python_bitbankcc.private(API_KEY, API_SECRET)
def get_asset(self):
try:
value = self.prv.get_asset()
return value
except Exception as e:
print(e)
return None
先ほどビットバンクから取得したAPIキーとシークレットを下記の部分に記述してください。
API_KEY = 'BITBANK_API_KEY'
API_SECRET = 'BITBANK_API_SECRET'
- BITBANK_API_KEY:APIキーに打ち替える
- BITBANK_API_SECRET:シークレットに打ち替える
こちらも価格情報と同じようにメイン関数内で呼び出して結果をprint関数で出力しています。
def main():
prv_set = BitBankPrvAPI()
asset_dict = prv_set.get_asset()
print(asset_dict['assets'])
if __name__ == '__main__':
main()
出力結果
出力結果は以下のようになります。すべての資産の値が個別に返されます。
{
"success": 0,
"data": {
"assets": [
{
"asset": 通貨ペア,
"amount_precision": 小数点の表示精度,
"onhand_amount": 全ての数量,
"locked_amount": 注文等でロックされている数量,
"free_amount": 利用可能な数量,
"withdrawal_fee": 引き出し手数料
}
]
}
}
今日のdot
ビットバンクのAPIでは、今回示したコードを元に下記の表のような機能を用意することができます。必要な機能をPyhonコードで用意して手動トレードのミスや負担を軽減しましょう。
またビットバンク用のbotを作成することも可能です。
パブリックAPIの機能
関数 | 説明 | 引数 |
---|---|---|
get_ticker | 市場価格を取得 | pair |
get_depth | 板情報を取得 | pair |
get_transactions | 最新の全約定履歴を取得 または、 指定日の全約定履歴を取得 | pair, yyyymmdd=None |
get_candlestick | 指定日のロウソク足データを取得 | pair, candle_type, yyyymmdd |
プライベートAPIの機能
関数 | 説明 | 引数 |
---|---|---|
get_asset | 資産の一覧を取得 | |
get_orders | オーダー情報を取得 | pair, order_id |
get_active_orders | アクティブなオーダー情報を取得 | pair, options=None |
order | オーダーを入れる | pair, price, amount, side, order_type |
cancel_order | オーダーをキャンセルする | pair, order_id |
cancel_orders | 複数のオーダーをキャンセルする | pair, order_ids |
get_orders_info | 複数のオーダー情報を取得 | pair, order_ids |
get_trade_history | 約定履歴を取得 | pair, order_count |
get_withdraw_account | 出金アカウントを取得 | asset |
request_withdraw | 出金をリクエスト | asset, uuid, amount, token |