つたはすのブログ

獲得した知識をアウトプットしていきます

bitbank APIで仮想通貨を取引しよう(注文 編)

 この記事ではbitbankAPIで注文を出す方法を備忘録を兼ねて解説します。

 bitbank APIで注文を出すにはbitbankの口座を作成して「シークレットキー」を発行する必要があります。シークレットキーはマイページのAPIタブから発行・確認ができます。

注文を出す関数

注文を出す関数の使い方と引数

 注文を出すにはプライベートAPIのorder関数を使います。使い方は次の通りです。
 ※order関数に渡している変数を用意する必要あり

import python_bitbankcc

# KEYS
API_KEY    =" xxxxxxxxxxxxxxxxx" # APIキー
API_SECRET = "xxxxxxxxxxxxxxxx" # シークレットキー

# プライベートAPI
prv = python_bitbankcc.private(API_KEY, API_SECRET)

# 注文
order = prv.order(pair, amount, price, side, order_type)

 プライベートAPIを使用するにはAPIキーとシークレットキーを用意してpython_bitbankcc.privateに渡します。ただし、上記の例のようにAPIキーとシークレットキーをソースコードに書くのはお勧めしません。これを回避する方法はbitbank APIで仮想通貨を取引しよう(シークレットキー 編)で紹介しています。

 ここではプライベートAPIを変数prvに保持しています。そしてprvが持つクラスメソッドorderで注文を出しています。orderに渡す引数は次の通りです。

引数名 意味
pair 取引する通貨のペアを指定します。
例えばビットコインを日本円で取引するにはbtc_jpyを指定する。
指定できる値についてはドキュメントを参照してください。
amount 注文量を指定します。
price 注文単価を指定します。
side 売り注文なのか、買い注文なのかを指定します。
売り注文であれば「sell」を買い注文であれば「buy」を指定します。
order_type 指値注文なのか成行注文なのかを指定します。
指値注文であれば「limit」を成行注文であれば「market」を指定します。
指値注文と成行注文の意味については過去の記事を参照してください。

 私の環境ではAPIのバージョンが古いため指定できませんでしたが、PostOnly注文の指定もできるようです。

注文を出す関数の返り値

 次にこの関数の返り値を確認してみましょう。

order = prv.order(pair="xlm_jpy", price=61.0, amount=0.1, order_type="limit", side="buy")
print(order)

 ここではステラルーメンを0.1だけ、単価61円で指値買い注文を出しました。つまり、6.1円払って0.1xlmを買おうとしています。

 この買い注文の返り値をorderに格納して次の行で出力しています。今回は次のように出力されました。

{'order_id': 14062042287, 'pair': 'xlm_jpy', 'side': 'buy', 'type': 'limit', 'start_amount': '0.1000', 'remaining_amount': '0.1000', 'executed_amount': '0.0000', 'price': '61.000', 'average_price': '0.000', 'ordered_at': 1620008701853, 'status': 'UNFILLED', 'expire_at': 1635560701853, 'post_only': False}

 返り値は辞書型で注文に関する情報が出力されました。意味は次の通りです。

項目 意味
order_id 注文ID
pair 取引通貨ペア
side 売り注文か買い注文か
売り注文なら「buy」、買い注文なら「sell」
type 指値注文か成行注文か
指値注文なら「limit」、成行注文なら「market」
start_amount 注文数量
remaining_amount 未約定の数量
executed_amount 約定済み数量
price 注文価格
average_price 平均約定価格
order_at 注文日時(UnixTime)
status 注文ステータス
注文中:「UNFILLED」
一部約定済:「PARTIALLY_FILLED」
すべて約定済:「FULLY_FILLED」
取消済:「CANCELED_UNFILLED」
注文取消済(一部約定):「CANCELED_PARTIALLY_FILLED」
expire_at 有効期限(UnixTime)
post_only PostOnly注文かどうか