読者です 読者をやめる 読者になる 読者になる

soy-curd's blog

The blog is written about maebashi or sake or beer or program. [https://twitter.com/soycurd1]

pythonのビットコイン取引ライブラリをasync/awaitで使えるようにした

coincheckというビットコイン取引所が存在していて、そこで公開されているアフィリエイトリンクを他人に踏ませることでビットコインを入手することができる。なので、coincheckが公開しているapiを使って記事を書き、ビットコインをアフィで稼ぐことにした。(coincheckに登録すると注文系のapiを使用することができるようになる)

何をしたか

最初はノンブロッキングが使いやすいnodeを選ぼうとしていたが、fxや株方面でのライブラリ、Pythonが充実しているっぽいので、Pythonを選んだ。

とりあえず先人がcoincheck apiPythonライブラリを公開していたので、それをasync/awaitを用いてノンブロッキングapiを叩けるように改造してみた。

github.com

環境

Python3.5

インストール手順

pip install aiohttp 
pip install git+https://github.com/soy-curd/aiocoincheck

サンプル

import asyncio
from coincheck import market

async def main():
    m1 = market.Market()
    result = await m1.ticker()  # await を使う場合はpython3.5以上必須
    print(result)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

{‘low’: 161305, ‘timestamp’: 1493830153, ‘volume’: ‘13704.78199805’, ‘bid’: 165964, ‘high’: 170000, ‘last’: 166024, ‘ask’: 166077}

例えばticker関数を用いると、最新のcoincheck取引所でのbid(買い)・ask(売り)等の情報を得ることができる。

補足

まだ試していないけれど、並列実行できるようになったので、売買戦略を複数並行で動かすときに、GILとかスレッドとか気にしなくてもよくなっているはず。async/awaitとaiohttpの組合せはまだ触り始めたばかりなので、今後ハマリどころがあったら追記する気がする。

他、使用方法は本家の

GitHub - kmn/coincheck: Coincheck API Library for Python

と、coincheckのapiドキュメントを眺めてください。

以下アフィリンク

簡単安心!ビットコイン取引所 coincheck

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