Upgrade to Pro — share decks privately, control downloads, hide ads and more …

pycon2016_zaif

6dbe360915689b269ab4fa510743762b?s=47 英 谷口
August 28, 2016

 pycon2016_zaif

6dbe360915689b269ab4fa510743762b?s=128

英 谷口

August 28, 2016
Tweet

Transcript

  1. Pythonで簡単に仮想通貨の 取引ができるようにしてみた

  2. 自己紹介 名前:谷口 英 @horobi_genger

  3. 所属:テックビューロ Zaif   仮想通貨取引所 Zaica 仮想通貨・トークン発行支援サービス mijin  プライベートブロックチェーンプラットホーム Fintech

  4. 所属:テックビューロ Fintech

  5. 仮想通貨とは? 特定の国家による価値の保証 を持たない通貨のこと。 @wikipedia

  6. メリット 国に依存しない 管理コストが安い

  7. Zaif(仮想通貨取引所)

  8. APIが公開されている

  9. 本題 Pythonで簡単に仮想通貨の 取引をする方法

  10. 1.Zaifアカウント作成 2.キー生成 3.環境構築 4.実行

  11. 1.Zaifアカウント作成

  12. 2.キー生成

  13. 3.環境構築 pyvenv(virtualenv) zaif source zaif/bin/activate pip install zaifapi

  14. 4.実行 >>from zaifapi.impl import ZaifPublicApi, ZaifPrivateApi >>#ビットコインと日本円の終値を取得 >>zaif = ZaifPublicApi()

    >>print(zaif.last_price('btc_jpy')) {'last_price': 58370.0} >>#残高などのアカウント情報を取得 >>zaif = ZaifPrivateApi(key, secret) >>print(zaif.get_info()) {'funds': {'jpy': 1.321, 'btc': 0.1635, 'mona': 0.0, 'xem': 0.0}, 'server_time': 1472393161, 'open_orders': 0, 'rights': {'trade': 1, 'withdraw': 1, 'info': 1}, 'deposit': {'jpy': 1.321, 'btc': 0.1635, 'mona': 0.0, 'xem': 0.0}, 'trade_count': 0}
  15. requestsって便利 import requests #getの場合 response = requests.get(self.__API_URL.format(func_name, currency_pair)) if response.status_code

    != 200: raise Exception('return status code is {}'.format(response.status_code)) res = json.loads(response.text) return res #postの場合 response = requests.post(self.__API_URL, data=params, headers=header) if response.status_code != 200: raise Exception('return status code is {}'.format(response.status_code)) res = json.loads(response.text) return res
  16. cerberusって便利 import cerberus param = { 'from_num': 10, 'currency_pair': 'btc_jpy'

    } SCHEMA = { 'from_num': { 'type': 'integer' }, 'currency_pair': { 'type': 'string', 'allowed': ['btc_jpy', 'xem_jpy', 'mona_jpy', 'mona_btc'] } } v = cerberus.Validator(SCHEMA) if v.validate(param) is False raise Exception()
  17. http://qiita.com/Akira-Taniguchi/items/e52930c881adc6ecfe07

  18. https://github.com/Akira-Taniguchi/zaifapi