【Python】bitbank APIを使って仮想通貨を自動売買する方法【初心者歓迎】
どうも、プログラミングの鬼シヨツ鬼です。
この記事では「Pythonで仮想通貨を自動売買できたらカッコいいんじゃないか」そう思った僕が、bitbank APIを使って仮想通貨自動売買装置を作ったときの経験をもとに、このAPIの使い方を書いています。
きっとこの記事にたどり着いたあなたも同じ感性の持ち主のはず。
一緒にかっこよくなりましょう
必要なもの
・bitbankアカウント(途中までは不要です)
・Pythonが動くPC
・なけなしの軍資金
初めの一歩
「API自体使うの初めてだぜ」って人は使い方が全く分からないと思うので、まずは簡単にAPIを体感するのがおすすめです。
プログラムではありませんが、以下のURLにアクセスしてみてください。
(bitbankのアカウント持っていないよって人でも大丈夫です)
https://public.bitbank.cc/btc_jpy/ticker
すると、下の写真のようなページなったと思います。
察しのいい人は気が付いたかもしれませんが、そう、実はこれ、あなたがURLにアクセスした瞬間のビットコインの取引値なんです!
あとは、これをPythonで取得してあげれば、プログラムに落とし込んで自動売買ができるはずです。
こうやってみると、割とイメージしやすく、そんなに難しくなく感じるのではないでしょうか。
Pythonに取り込む
それでは、上で人がURLに直接アクセスしていたことをPythonでやってみましょう。
以下のようなプログラムを書いてください。
#最新取引情報をPythonで表示するサンプルプログラム #必要なモジュールをインポート import python_bitbankcc # public API classのオブジェクトを取得 pub = python_bitbankcc.public() # PUBLIC情報取得 info = pub.get_ticker('btc_jpy') print(info)
実行すると、こんな感じにPythonで情報が取得できていることが確認できます。
自分の情報を取り込んでみる
先ほどは、現在のビットコインが取引されている情報でしたので、公開情報でした。
次は、APIキーを使って自分の資産情報を取得してみましょう。
※ここからはbitbank APIのキーを発行していることが条件です。また、自分のAPIキーを使って口座情報を扱っていくので、よく注意しながら自己責任で実施ください。最初のうちは口座に入れる資産は少なめのほうが安心です
以下のようなプログラムを書いてください。
#資産情報をPythonで表示するサンプルプログラム #必要なモジュールをインポート import python_bitbankcc #プライベートキー設定================================== # APIキー設定 API_KEY = "自分のAPIキーを入れる" API_SECRET = "自分のAPIシークレットキーを入れる" prv = python_bitbankcc.private(API_KEY, API_SECRET) #================================================= #初期状態取得======================================== # 資産情報を取ってくる(asset) value = prv.get_asset() # 資産情報を表示する print(value) #=================================================
実行すると、こんな感じにPythonで情報が取得できていることが確認できます。
一瞬文字ばっかりで抵抗感があるかもしれませんが、よく見てみれば意味は分かるはずです。例えば、下の図を見てください。jpyとなっているところは現金の情報ですが、100.0064円の資産を保有していることが分かります。
それぞれの意味合いは下記の通りです。
Name Type Description
asset string アセット名: jpy,btc, xrp, ltc, eth, mona, bcc, xlm, qtum
free_amount string 利用可能な量
amount_precision number 精度
onhand_amount string 保有量
locked_amount string ロックされている量
withdrawal_fee string or { under: string, over: string, threshold:string } for jpy 引き出し手数料
stop_deposit boolean 入金ステータス
stop_withdrawal boolean 出金ステータス
( bitbank API 公式ドキュメントより)
プログラムで買ってみる
bitbank APIを使えば、自動で売買の注文を出すことも可能です。
2021年3月現在、クアンタム(QTUM)という仮想通貨はキャンペーンで取引手数料がかからないので、試しに1クアンタムを10円の指値買い注文したいと思います。
以下のようなプログラムを書いてください。
#Pythonで10円/クアンタムの指値買い注文を出すサンプルプログラム #必要なモジュールをインポート import python_bitbankcc #プライベートキー設定================================== # APIキー設定 API_KEY = "自分のAPIキーを入れる" API_SECRET = "自分のAPIシークレットキーを入れる" prv = python_bitbankcc.private(API_KEY, API_SECRET) #================================================= #購入============================================== buy_amount = 1 #1クアンタム buy_price = 10 #10円の指値注文 # 購入処理 buy_info = prv.order("qtum_jpy",buy_price,str(buy_amount),"buy","limit") #注文状態表示 print(buy_info) #================================================
実行結果は以下のようになります。
現在の1クアンタムの取引価格は700円ほどですので、もちろん10円の指値注文では購入することはできませんが、ちゃんと注文自体はできていることが分かります。
プログラムで売ってみる
では、次に売り注文を出してみましょう。
売り注文を出すには仮想通貨を持っていないといけないので、「買ってみる」のサンプルプログラムを修正して買うか、bitbankのサイトから手動で買っておいてください。
下の例では、クアンタムを0.0142分を成行で売却しています。
##Pythonで手持ちのクアンタムを成行で発注するサンプルプログラム #必要なモジュールをインポート import python_bitbankcc #プライベートキー設定================================== # APIキー設定 API_KEY = "自分のAPIキーを入れる" API_SECRET = "自分のAPIシークレットキーを入れる" prv = python_bitbankcc.private(API_KEY, API_SECRET) #================================================= #売却============================================== sell_amount = 0.0142 #売却するクアンタムの量 sell_price = 9999 #今回は成行で注文するので使われない # 購入処理 sell_info = prv.order("qtum_jpy",sell_price,str(sell_amount),"sell","market") #注文状態表示 print(sell_info) #=================================================
結果は下のようになります。
ちなみに、コマンドプロンプトのほうの結果を見ると、statusがUNFILLED(未約定)となっていますが、これは注文を出した瞬間のタイミングの注文結果情報が返ってきているためです。実際には微量の成行注文ですので、この直後には約定済となります。