FX・ビットコイン・オプションのシステムトレード開発と取引録

FXとビットコインのシステムトレードの開発録、オプション取引の履歴を書き連ねています。MT4, Pythonで開発しています。

Python システムトレード ビットコイン

ビットコイン取引所bitFlyerのAPIを使って板情報取得と注文処理を行ってみた

ビットコインAPIを使って板情報の取得と新規注文を行う

今回は、bitFlyerのAPIを使用して自分の口座の資産残高と
現在の板情報を取得、新規注文を出す処理を実装してみます。

APIを呼び出すプログラムと、それを呼び出して使うプログラムとに
分けて実装しました。

APIを呼び出すプログラム

まずはAPIを呼び出すプログラムです。
これは、こちらを参考に実装しました。

ほぼ参考サイトのままです。
ただ、以下のエラーが発生しました。

これはどうもPython2では発生しないけれども、
Python3になると発生するもののようです。
参考サイト

hmacのキーはbytesかbytearrayにしろということで、
self.api_secret」の部分を「bytes(self.api_secret.encode('ascii'))
に書き換えます。

キー部分のみを書き換えただけでは、以下のエラーを吐かれます。

メッセージ部分もエンコードするために「text」を
bytes(text.encode('ascii'))」に書き換えます。

該当の行を以下のようにすることでエラーは解消しました。

自分の口座の資産残高を取得する

「資産残高を取得」APIを呼び出すプログラムを実装します。

リクエストは「GET /v1/me/getbalance」です。

プログラムソースは以下のようになります。

レスポンスは以下のようになります。

板情報を取得する

次は板情報を取得します。

リクエストは「GET /v1/board」で、
クエリパラメータにproduct_code: "BTC_JPY", "FX_BTC_JPY"
または "ETH_BTC" を指定します。

プログラムは、pathの指定を以下に書き換えるだけです。

レスポンスは以下のようになります。

新規注文を行う

引き続いては新規注文を行います。

リクエストは「POST /v1/me/sendchildorder」で、
クエリパラメータに注文情報を渡します。

プログラムは以下のようになりました。

post_api_callを呼び出している部分が
注文処理を実行している箇所になります。

ビットコイン取引所bitFlyerのAPIを使って板情報取得と注文処理を行ってみた

スポンサードリンク

-Python, システムトレード, ビットコイン
-, , ,