この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ビットバンクが提供しているAPIには、認証なしで利用できるPublic APIと認証が必要なPrivate APIがあります。
Public APIは、各通貨の板情報や約定情報、ローソク足データなどが取得できます。
Private APIは、資産状況の確認をしたり、注文を出したりすることができます。このPrivate APIを利用することで仮想通貨の自動売買を行うことができます。
Private APIを利用するには、まずAPIキーを発行する必要があるので、ビットバンクのAPIキーの発行方法について解説してから、APIの使い方についても触れていきます。
なお、実際に注文を出す際は、口座に入金をしておいてください。
はじめて入金する場合は、「はじめてのご入金プログラム」でキャンペーンにエントリーしてから10,000円以上入金すると、現金1,000円がもらえます。忘れずにキャンペーンにエントリーしましょう。
ビットバンクのAPIキーの発行方法
認証方法は、生体認証を選択しています。二段階認証コードの場合は、内容が多少異なります。
APIキーの確認方法
万が一、APIキーとシークレットが漏洩した場合には、第三者に操作される可能性のあるので取り扱いは気を付けましょう。
このAPIキーとシークレットは、プログラムを記述する際に必要となります。
APIを操作するライブラリをインストール
ビットバンクのAPIを使用するには、python_bitbankccというライブラリを使用するのが便利です。python_bitbankccの詳細は、こちらをご覧ください。
Windowsの方はコマンドプロンプトで下記のコードを実行してください。
pip install git+https://github.com/bitbankinc/python-bitbankcc.git
もしくは、PyCharmを使用している方は、画面の左下にあるターミナルからでもコードを実行してインストールできます。
Public APIの使い方
GitHubのコードをそのまま引用しますが、以下のコードを実行することでPublic APIの各データを取得することができます。
import json
import python_bitbankcc
# public API classのオブジェクトを取得
pub = python_bitbankcc.public()
# PUBLIC TEST
value = pub.get_ticker(
'btc_jpy' # ペア
)
print(json.dumps(value))
value = pub.get_depth(
'btc_jpy' # ペア
)
print(json.dumps(value))
value = pub.get_transactions(
'btc_jpy' # ペア
)
print(json.dumps(value))
# 同じメソッドを日にち指定で
value = pub.get_transactions(
'btc_jpy', # ペア
'20170313' # YYYYMMDD 型の日付
)
print(json.dumps(value))
value = pub.get_candlestick(
'btc_jpy', # ペア
'1hour', # タイプ
'20170313' # YYYYMMDD 型の日付
)
print(json.dumps(value))
value = pub.get_circuit_break_info(
'btc_jpy' # ペア
)
print(json.dumps(value))
Private APIで注文を出すプログラムの解説
Private APIでは様々な事ができますが、例として新規注文の出し方について解説します。以下が新規注文を出すサンプルコードです。
import time
import json
import python_bitbankcc
API_KEY = 'YOUR_API_KEY'
API_SECRET = 'YOUR_API_SECRET'
config = {
'auth_method': int(time.time() * 1000),
'time_window': 5000,
}
prv = python_bitbankcc.private(API_KEY, API_SECRET, config=config)
value = prv.order(
'btc_jpy', # ペア
'131594', # 価格 (成行注文の場合は None にする)
'0.0001', # 注文枚数
'buy', # 注文サイド (buy|sell)
'limit', # 注文タイプ (limit|market|stop|stop_limit)
# 以降は任意の引数
True # post_only 注文、デフォは False, None も可能で Falseと同じ挙動
)
print(json.dumps(value))
それでは具体的にコードの解説をします。
importするライブラリ
import time
import json
import python_bitbankcc
まず最初に、必要なライブラリをインポートします。
まず、time
は現在時刻を取得するためのライブラリです。
次に、json
は注文後の返答をJSON形式に変換するためにのライブラリです。JSONとは「JavaScript Object Notation」の略で、軽量なテキストベースのデータ交換フォーマットです。
最後にpython_bitbankcc
は、先程インポートしたビットバンクのAPIを操作するライブラリです。
必要な変数を定義する
API_KEY = 'YOUR_API_KEY'
API_SECRET = 'YOUR_API_SECRET'
config = {
'auth_method': int(time.time() * 1000),
'time_window': 5000,
}
prv = python_bitbankcc.private(API_KEY, API_SECRET, config=config)
API_KEY
とAPI_SECRET
は、先ほど作成したAPIキーとAPIシークレットに書き換えてください。注意点として「’」は残してください。
python_bitbankcc.private(API_KEY, API_SECRET, config=config)
は、Private APIの認証情報をpython_bitbankcc
のメソッドで作成しています。
注文に必要なパラメータを入力と注文の実行
value = prv.order(
'btc_jpy', # ペア
'131594', # 価格 (成行注文の場合は None にする)
'0.0001', # 注文枚数
'buy', # 注文サイド (buy|sell)
'limit', # 注文タイプ (limit|market|stop|stop_limit)
# 以降は任意の引数
True # post_only 注文、デフォは False, None も可能で Falseと同じ挙動
)
prv.order
のパラメーターを変更することで注文の内容を設定できます。
設定項目はコメントで書かれている通りです。この場合は、0.0001BTCのビットコインを131594円で買いで指値注文が出されます。価格はデフォルトのままなので、必要に応じて変更してください。また、注文タイプはそれぞれlimit(指値注文)、marke(成行注文)、stop(逆指値注文)、stop_limit(ストップリミット注文)となります。
この一文で新規注文まで実行されます。
返答の表示
print(json.dumps(value))
新規注文が実行されると返答があるので、それを表示させます。
注文に問題が無ければ次のような返答があります。
{
"success": 1,
"data": {
"order_id": 0,
"pair": "string",
"side": "string",
"position_side": "string",
"type": "string",
"start_amount": "string",
"remaining_amount": "string",
"executed_amount": "string",
"price": "string",
"post_only": false,
"user_cancelable": true,
"average_price": "string",
"ordered_at": 0,
"expire_at": 0,
"trigger_price": "string",
"status": "string"
}
}
しかし、何かしらの不具合があるとエラーコードが返ってくるので、公式のエラーコード一覧から原因を調べて、対処してもらえるようにお願いします。
おわりに
以上でAPIキーの発行方法とAPIの使い方について解説は終わりです。
自動売買botを作成するには、APIの仕様を理解する必要があります。まずはPublic APIから確認をして、Private APIで注文を出すことにもチャレンジしてみてください。
また実際に利用する際は、APIキーやAPIシークレットが漏洩しないように十分に注意して管理をしましょう。