仮想通貨取引Zaif

どうも〜!マスターU(@Udemy11)です。

今日はビットコインの価格が500万円を超えてきてびっくりしているのですが、ステラがビットコインを決済手段として検討しているというのは、それだけすごいことなんでしょうね。

例えばGoogleやAppleが決済手段にビットコインやイーサリアムを使えるようにすると慣れば、ものすごい勢いて価格が上がってしまうんでしょうね。

今日は、仮想通貨取引所のZaifが提供しているAPIで遊んでみたいと思います。

Zaifとは

財布をもじったような呼び方のZaif(ザイフ)は、コインチェックのように、ビットコインをコインチェックから購入するのではなく、直接売り手と買い手を結びつける取引サービスをメインで行っている仮想通貨取引所です。

Zaif 仮想通貨取引所 API

どの仮想通貨取引所でもAPIを用意していますが、今回、そのAPIで何を取得できるのかチェックしていきます。

現物公開API

現物公開APIは、

  • 通貨情報の取得
  • 通貨ペア情報の取得
  • 現在の終値を取得
  • ティッカーの取得
  • 全ユーザー取引履歴の取得
  • 板情報の取得

などが取得できるAPIで、https://api.zaif.jp/api/1のあとに続けて個別の/currencies/btc/currency_pairs/btc_jpy/last_price/btc_jpyを付け加えてrequests.getすることでデータを取得することができます。

試しに次のコードを書いて、日本円とBTC(ビットコイン)の通貨ペアの情報を取得してみました。

import requests

coin = 'btc'

pairs_url = 'https://api.zaif.jp/api/1/currency_pairs/' + coin + '_jpy'
z_pair = requests.get(pairs_url)

for i in z_pair:
    item = i.decode()
    print(item)

出力結果

[{"seq": 0, "aux_unit_step": 5.0, "title": "BTC/JPY", "description": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3\u30fb\u65e5\u672c\u5186\u306e\u53d6\u5f15\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059", "id": 1, "currency_pair": "btc_jpy", "event_number": 0, "item_unit_min": 0.001, "is_token": false, "aux_unit_point": 0, "aux_unit_min": 5.0, "item_japanese": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3", "item_unit_step": 0.0001, "name": "BTC/JPY", "aux_japanese": "\u65e5\u672c\u5186"}]

ZaifのAPIドキュメントページにも取得できるデータの一覧は記載されているのですが、ちょっと意味がわからないんです。

\uから始まる部分はユニコードで書かれているデータなので、日本語だということはわかりますが、print出力すれば日本語で表示されると思っていたのですが、どうにもうまく日本語で出力されません。

decode('unicode-escape')とすれば、日本語にデコードできるという記事を見かけるものの、やってみるとエラーが起こってうまく表示できませんでした。

ちなみに普通に次のようにprint出力すると日本語が表示されます。

print('\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3\u30fb\u65e5\u672c\u5186\u306e\u53d6\u5f15\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059')

出力結果

ビットコイン・日本円の取引を行うことができます

いろいろと試してみたのですが、結局どのように活用したらいいのかわからず途中で挫折してしまいました。

Zaifのデータを活用して取引をしたり、自動取引プログラムを作るためには、【現物取引API】や【OAuth API】を活用する必要がありそうなのですが、最初の【現物公開API】の時点ですでに挫折してしまったので、APIをどのように活用するのかという基本的なところから勉強しなければいけないようです。

まとめ

今回出てきたAPIの他にも決済APIや信用取引APIなどがありますが、紹介したものを含めて、APIを活用したプログラムを作成するには、かなり高度なプログラミングのスキルが必要になります。

今回の私のように、どんなデータが取れるのかで躓いているようでは、自動取引のプログラムを作成するまでに何ヶ月もかかってしまいそうです。

自動取引のプログラムのいいところは、人間の感情のブレや感覚を完全に省いて取引ができるところなので、稼げる条件さえ設定できれば、自動で稼いでくれるようです。

ただ、そんな確実に稼げるプログラムが、そんな簡単に作れるわけではないので、まずは、APIでどんなデータが取得できて、どのように活用できるかを調べるところからスタートしたいとおもいます。

実は、Python学習は継続しているのですが、今日のエントリーはやめておこうかと挫折しかけました。

ただ、ワードプレスを開くと、なんとか記事を書き始めることができ、記事の連続投稿を継続することができました。

あとどのくらい続けられるかわかりませんが、もう少し継続して記事を書いてみようと思います。