栗’s diary

Python勉強中。トレードに役立つようなTwitter bot開発中。暗号通貨の自動売買もやってみたい。

Zaif apiで勘違いしていた事

最近、ビットコインの自動売買botを稼働し出しましたが、どうもレポート(結果報告)の部分でおかしい挙動をすると昨日半日悩んでましたが、

trade — Zaif api document v1.1.1 ドキュメント

勘違いしてました。

「trade」で実際に取引所に発注するんですが、戻り値としてreceived, remains, order_id, fundsを返してくれます。このreceivedを使ってビットコインのポジション管理しようとしたんですが、どうにも挙動がおかしい。約定価格みたいなのを返してくる時がある。

receivedの詳細「今回の注文で約定した取引量」、この文言に騙されました。約定したビットコインの取引数量を常に返すものだと思ってました。しかし、売り("ask")の場合、receivedに返ってくるのは売却代金なんですよねー。確かにreceivedですからねー。でもねー...。┐(´д`)┌ヤレヤレ

 

 

coincheckのPythonライブラリを改良してみたよ

そういえば、不満のあったcoincheckのPythonライブラリ。

自分で機能追加して手元で使ってたものを、訳あって見よう見真似でsuzuki4さんのをForkしてGitHubにあげてみました。素人に毛の生えたようなもんなんで、何か不備があるかもしれませんがね...。

github.com

 

 関連記事:

yyy1980.hatenablog.com

 

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin

脱GAE

Twiiter botをやるにあたって、このブログでも書いてきましたがGAE(Google App Engine)をサーバー代わりに利用しています。GAEは無料で使え、管理しているのがGoogleなのでお手軽でいいのですが、反面いろいろ制限があり、これまで我慢してきました。一番大きいのはPythonサードパーティーが自由に使えない事(Pandas無理だからね)で、それ以外にもPythonが未だに2.7な事(有料版は3系いけるらしい。知らんけど。)、ログを残したりデータ保存したくても書き込み不可だったり(たぶん)と不自由してました。

Pythonの師匠であり、『PythonユーザのためのJupyter[実践]入門』(リンクはアフィ。私の。)の著者の一人でもある@drillerさん他何人かでPython勉強会やりつつレンタルサーバーを一つ使用してまして、それを個人利用してもいいよと言われて幾日か。今日(書いてるうちに日を跨いでしまったので昨日)、ようやく重い腰を上げ利用してみました。

drillerさんの教え通りにやればサクッとつぶやけました。

 定期的に呟くためにcron設定もサクッと...残念ながら少々手間取りました。Twitter APIが同じことを短時間で呟こうとすると制限するんですよね、忘れてました。

 時間入れてやれば動いてくれました。(ただ呟くだけで1秒以上遅れるんですね...)

 詳細は省きますが使用環境

・とあるサーバー

・Notepad++

・Git Bash

というわけで、GAEに頼らず独自サーバーを利用できるようになったので、botで出来る事の幅が広がりました。これからの拡張を生暖かく見守ってください。

最後にもう一度宣伝

 

暗号通貨取引所のAPIライブラリ(Python)あれこれ

ブログ、ご無沙汰してました。

ツイッターbotの機能拡充をさぼり、何をしていたかと言うと、機械学習プログラミングの本を読んだり、暗号通貨で遊んだり、飲んだり、飲んだり、飲んだりしていたわけですが...。

ツイッターbotに関しては技術的発展が出来そうなので、数か月以内には機能拡充してブログ書きたいと思っていますがどうでしょう。機械学習プログラミングに関しても記事まとめたいなと思っていますが、これもどうでしょう。予定は未定。

というわけで、今回は最近遊んでいる暗号通貨について、プログラミング発注が(自動売買とまでは言えないレベルで)出来たんで、実際に使用した取引所のAPIライブラリのご紹介をしたいと思います。

 

私の見ている国内取引所3社(Zaif、bitFlyer、Coincheck)、海外取引所2社(Poloniex、Bittrex)はマーケット情報やアカウント情報取得、および発注等のためのAPIを提供してくれています。(ところで、coincheckなんですか?Coincheckなんですか?)

APIって何ぞやって人は例えばこのリンク

https://api.bitflyer.jp/v1/board

を踏んでもらうと、bitFlyerのBitcoin/円のbid-askいわゆる板の情報が(見にくいですが)見れると思います。たぶん。読み込みにちょっと時間かかるかもね。

こんな感じで取引所が自社のマーケット情報を提供し外部から容易に取得できるようにしてくれており、例えばPythonを使って情報を取得し用途に応じて加工出来たりします。

でも、加工前の情報って大体みんな同じように取得してきてるわけで。そこで親切な人がみんなの無駄なコーディング時間を省くため、かどうかは知りませんが、ライブラリ化して公開してくれてたりします。未熟なプログラマーである私なんかは有難くそれを使わせてもらってます。というわけで、私が利用している各取引所のPythonライブラリとついでにAPIドキュメントをご紹介。(複数人が別々にライブラリ化してる場合もありますが、ここでは私が実際に使用したものを。)

 

GitHub - techbureau/zaifapi: zaifのAPIを簡単にコール出来るようにしました。

ZaifAPI ドキュメント — Zaif api document v1.1.1 ドキュメント

まだ、API自体が現物にしか対応してないんですよね。信用取引先物、AirFXには対応してません。素人考えでは簡単に対応出来そうなんですが違うんですかね。せめてポジションを把握する部分とかね...。中の人頑張って!

  • bitFlyer

GitHub - yagays/pybitflyer: Python wrapper for bitFlyer's REST API.

ビットコイン取引所【bitFlyer Lightning】

Python2.7ではエラー出ました。たぶんurllibの所で。(間違ってたらごめんなさい。指摘はコメントまで。)その点を除けば各種揃ったAPI及びライブラリなんじゃないかと。

  • Coincheck

GitHub - kmn/coincheck: Coincheck API Library for Python

取引所APIドキュメント | Coincheck(コインチェック)

これを作った人がどうやら現物にしか興味がないらしく、ライブラリも現物部分のみ。(間違ってたらごめんなさい。指摘はコメントまで。)APIレバレッジ取引にも対応しているので、見様見真似で追加したらうまく動いて感動しました!私のはGitHubとか恐れ多いので、誰かAPIをフル活用したライブラリを作ってくれませんかね(チラッ

bitFlyerの件がありPython3系でしか試してません。

 

以下は海外取引所のものですが、私自身まだとりあえず実行できた事を確認したばかりです。使いこなしてから記事書こうかとも思いましたが、その頃には書く気力がなくなっていることを懸念して、今の時点で執筆することにしました。使えねえなこいつってなった場合には追記で対応しようと思います。あしからず。

  • Poloniex

GitHub - s4w3d0ff/python-poloniex: Poloniex API wrapper for Python 2.7 & 3

Poloniex - Bitcoin/Digital Asset Exchange - API

これから試していくぞっと。

  • Bittrex

GitHub - ericsomdahl/python-bittrex: Python bindings for bittrex

Bittrex.com - Developer's Guide - Api

普通に使おうとするとエラー出ませんかね?bittrexフォルダ内の__init__.pyを削除してbittrex.pyを__init__.pyに改名したら動くようになった気が。(間違ってたらごめんなさい。指摘はコメントまで。)

これに関してはGitHubの世界を体感したというか。たぶんndriって人が最初ライブラリ作ったけど https://github.com/ndri/python-bittrex Python3系に対応してくれないから、別の人が追加修正したって事ですよね。素晴らしい。(Coincheckの方も...)

 

これらを使って各取引所のbid-ask情報を取得したり、口座の残高一覧を吐き出させたり、さらには想定以上の価格差が開いていたら市場間裁定を行う発注プログラムを作ってみました。市場間裁定プログラムは現状は手動実行ですが、サーバーで実行出来たら濡れ手に粟だなとか妄想してますが、注文が一部約定とか空振ったりした時の対応が面倒だったり適切な価格差とはみたいな所で保留中です。

 

そんじゃーね! それじゃまた。

 

最後にCoincheckのアフィリエイト置いときますね!ね!

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin