テクノロジーであそぼ!

プログラミング(Python)や投資、仮想通貨についての情報サイト。

Python × ZaifAPI 取引時間をハックするプログラム【取引編】

f:id:kichie_com:20171024230826p:plain
前回の続きです。
Python × ZaifAPI 取引時間をハックするプログラム【価格取得編】
前回は取引所から情報をとってこれたので、それを元に取引をしていこうと思います。

前回まで

# APIを使えるようにする
from zaifapi import ZaifPublicApi

zaif_public = ZaifPublicApi()


btc_jpy = zaif_public.last_price('btc_jpy')
xem_jpy = zaif_public.last_price('xem_jpy')
xem_jpy_price = zaif_public.last_price('xem_jpy')["last_price"]
#最後に取引されたBTC(Bitcoin)の値段を出力
print(btc_jpy)
#最後に取引されたXEM(NEM)の値段を出力
print(xem_jpy)
#最後に取引されたXEM(NEM)の値段だけを出力
print(xem_jpy_price)

このコードで値段を抽出することができたので、この値段を元に注文を出してみたいと思います。

注文の出し方

実際に注文を出す場合にはAPIキーというものを取得する必要があります。
このAPIキーは自分のアカウントを取得するためのシリアル番号だと思ってください。

APIキー取得の仕方

まずZaifにログインしてください。

その後、https://zaif.jp/api_keysへ行くとこのような画面になっているかと思います。
2段階認証をしていない場合は少し表示が変わるかもしれません。
f:id:kichie_com:20171021182132p:plain


そしてNameを入力します。
今回は「python_trade」としました
Permsは全てチェックを入れましよう。
そしたら「Createボタン」を押します。
f:id:kichie_com:20171021182141p:plain


これで見事完了です!
key
secret
が両方APIキーになります。
※この二つは個人情報なので絶対にネットにあげないようにしましょう
f:id:kichie_com:20171021182146p:plain

実際に実装しました

ここから先は実行すると実際に売買が行われますので、ご注意ください。

# APIを使えるようにする
from zaifapi import ZaifPublicApi

zaif_public = ZaifPublicApi()

btc_jpy = zaif_public.last_price('btc_jpy')['last_price']  ##ここも少し書き換えたよ

#########    追加した行 ここから    #########
from zaifapi import ZaifTradeApi

KEY = "Zaifで取得したkeyをコピペ"
SECRET = "Zaifで取得したsecretをコピペ"

zaif_trade = ZaifTradeApi(KEY,SECRET)
zaif_trade.trade(currency_pair="btc_jpy", action="bid", price=btc_jpy, amount=0.005)
print("買った値段:"+str(btc_jpy))
print("買った量:"+str(btc_amount)) # <- print(btc_jpy)を変更
#########    追加した行 ここまで    #########

.
.
.
注文のコードの書き方
zaif_trade.trades(currency_pair="取引する通貨ペア", action="買うか売るか(bidかask)", price="注文する値段", amount="注文する量")

実行結果

{'last_price': 692450.0}
ZaifApiError: insufficient funds

エラーが出ちゃいました。
資金が入っていませんでしたね。


資金を入れてもう一度。

ZaifApiError: invalid price parameter (634200.0)

値がinvaildらしい

小数点入っているのがダメみたいです。

エラーが出たので小数点を切り捨て、もう一度

実行コード
# APIを使えるようにする
from zaifapi import ZaifPublicApi
zaif_public = ZaifPublicApi() 
btc_jpy = int(zaif_public.last_price('btc_jpy')["last_price"]) #ここをint型へ変換したよ



from zaifapi import ZaifTradeApi
KEY = "Zaifで取得したkeyをコピペ"
SECRET = "Zaifで取得したsecretをコピペ"
zaif_trade = ZaifTradeApi(KEY,SECRET)
zaif_trade.trade(currency_pair="btc_jpy", action="bid", price=btc_jpy, amount=0.005)
print("買った値段:"+str(btc_jpy))
print("買った量:"+str(btc_amount))
実行結果
買った値段:639720
買った量:0.005

買えました!
f:id:kichie_com:20171024225104p:plain
ここから注文履歴を確認できます。https://zaif.jp/trade_log_btc_jpy/1



現場からは以上です!



Python × ZaifAPI 取引時間をハックするプログラム【資産情報取得編】