鳩がITをくらったような顔

ITでうんとこしょどっこいしょ

ZaifのAPIを使って現在価格を取り出してみよう

先日、仮想通貨が全面的に大下落しました。
その時にオンライン取引所のサーバが込み合い注文が通らない、あるいはページ自体閲覧できないできない状態となりました。買いのタイミングであれば損失はありませんが、売りのタイミングでこうなってしまうと大損害です。

そこで、今回はZaifAPIを使って現在価格などを取得してみようと思います。
最終的には取引もできたらと思いますが、現在ZaifではAPIキーに関してごちゃごちゃしているようなので未定です。

現在の価格を取り出す

現在価格を取り出すにはAPIキーは必要ありません。特定のURLを叩くだけで取得できます。

サンプルコードを見てみる

Zaifでサンプルコードが公開されているのでまずこちらを見てみましょう。

import requests
import json

response = requests.get('https://api.zaif.jp/api/1/last_price/btc_jpy')
if response.status_code != 200:
    raise Exception('return status code is {}'.format(response.status_code))
json.loads(response.text)


1,2行目は必要なライブラリのインポートです。インストールしていない場合はpipでインストールしておきます。

import requests
import json


3行目が円建てのビットコインの価格を取得している箇所です。GETメソッドで取得しています。
[currecy_pair]の部分に通貨を指定します。ビットコインの場合はbtc_jpyとなります。

response = requests.get('https://api.zaif.jp/api/1/last_price/[currecy_pair]')


4,5行目はレスポンスのHTMLステータスを見て成功以外のステータスの場合例外を発生させています。

6行目はレスポンスのボディ部分を取り出しています。json形式で返ってきます。

{"last_price": 130065.0}


下記のように書くと返ってきたjsonを辞書型でいいかんじに変換してくれます。あとはキーを指定すれば値を取得できます。

import requests
import json

response = requests.get('https://api.zaif.jp/api/1/last_price/btc_jpy')
if response.status_code != 200:
    raise Exception('return status code is {}'.format(response.status_code))
r = response.json()

print(r["last_price"])
130065.0

ビットコイン以外の価格を取り出す

ビットコイン以外の通貨を取り出すには[currecy_pair]にどのように指定すればいいのでしょうか。
取得できる通貨を調べてみます。

import requests
import json

response = requests.get('https://api.zaif.jp/api/1/currency_pairs/all')
r = response.json()

for i in range(len(r)):
    print(r[i]["currency_pair"])
cicc_btc
xem_btc
bitcrystals_btc
mona_btc
mosaic.cms_jpy
xem_jpy
sjcx_btc
jpyz_jpy
pepecash_btc
zaif_jpy
mona_jpy
bch_jpy
fscc_jpy
xcp_jpy
fscc_btc
cicc_jpy
pepecash_jpy
xcp_btc
erc20.cms_jpy
ncxc_jpy
bch_btc
eth_btc
btc_jpy
eth_jpy
zaif_btc
bitcrystals_jpy
sjcx_jpy
ncxc_btc


このように指定することで有効な通貨ペアをすべて取得できます。

response = requests.get('https://api.zaif.jp/api/1/currency_pairs/all')


現在、28ペアの価格が取得できるようなので、試しにXEMの価格を取得してみましょう。

import requests
import json

response = requests.get('https://api.zaif.jp/api/1/last_price/xem_jpy')
if response.status_code != 200:
    raise Exception('return status code is {}'.format(response.status_code))

print(response.json()["last_price"])
100.02

おわりに

このように、通貨の現在価格であればAPIキーも必要なく取得できます。
色々な通貨を指定して試してみてください。

あと、Nekoniumはじめました。もしよかったら投げ銭をお願いします。
f:id:ninebird:20180123205505p:plain

2018年もよろしくお願いいたします

皆様、あけましておめでとうございます。

目標は口に出してしまうとやる気がなくなるタイプなので、心に秘めて2018年惰性で頑張っていこうと思います。

今年もとりとめもない記事を書いていくとは思いますが、ブログおよび筆者共々どうぞよろしくお願い致します。

仮想通貨は簡単に掘れました-仮想通貨マイニング

巷でブームの仮想通貨。 仮想通貨はよく分からないけど欲しいな。

そんな人でも大丈夫。仮想通貨をマイニングしてみました。 パソコンさえあれば凄く簡単にできるので是非みなさんもマイニングしてみませんか?

メールアドレスだけを登録し、ソフトをインストールしてどの通貨をマイニングするか選択するだけの簡単操作です。

必要なもの

必要なものはこの2つ。実質1つです。

  1. パソコン
  2. メールアドレス(登録用)

以上です。個人情報や銀行口座は必要ありません

マイニングソフトを入手する

仮想通貨をマイニングするためにソフトを入手しましょう。 今回はMinerGateを使用します。

MinerGateに登録

MinerGateのサイトへアクセスします。サイトはこちらです。

minergate.com

画面右上の「Sign up」をクリックします。

f:id:ninebird:20171220010449p:plain

続いて、メールアドレスパスワード、確認用にもう一度パスワードを入力します。 「私はロボットではありません」にチェックをして「Sign up & start mining」をクリックします。

f:id:ninebird:20171220010721p:plain

登録は以上で完了です。簡単!

マイニングソフトをインストール

登録が完了すると次のような画面になります。 ご自身が使っているパソコンと同じバージョンのものを選択してソフトをダウンロードします。

Windows7以降で64bitの場合は上、32bitの場合は下を選択します。

f:id:ninebird:20171220011008p:plain

インストールは設定を変えずに進めて大丈夫です。

仮想通貨を掘ろう!

とりあえずマイニングしてみよう

さっそく仮想通貨をマイニングしていきましょう。 ソフトを起動すると初回はログインを求められます。

先ほど登録したメールアドレスを入力し、「Start mining」をクリックします。

f:id:ninebird:20171220011345p:plain

Start smart mining」というボタンが表示されます。

f:id:ninebird:20171220011505p:plain

このボタンを押すと、ご自身のパソコンと採掘量を鑑みて最適な通貨を選択して採掘を開始してくれます。

通貨を選択してマイニングする

もちろん自分で通貨を選択してマイニングすることもできます。 金槌のボタンをクリックするとマイニングできる通貨一覧が表示されます。

f:id:ninebird:20171220011953p:plain

ところで、マイニングする方法として2つあり、CPUとGPUを使う方法があります。

CPUは所謂Corei7などの中央演算処理装置。必ずどのパソコンにも搭載されているものです。 GPUはグラフィック専門の処理装置です。 ゲーミングパソコンには搭載されていますが、一般的なパソコンには搭載されていません。

ということで、CPUを使ってXMR(Monero)をマイニングしてみます。 使用するCPUのコア数を選択します。

f:id:ninebird:20171220012139p:plain

MAXで使ってしまうとパソコンが重くなるのでコアは1つは残しておきます。 コア数を選択したら「Start mining」をクリックします。

f:id:ninebird:20171220012251p:plain

マイニングがはじまりました。 「H/s」の数字は処理数なので数値が大きいほどマイニングできていることになります。

CPUとGPU両方でマイニングするとこのようになります。

f:id:ninebird:20171220012440p:plain

GPUが搭載されていない場合はボタンをクリックできません。 搭載されていても通貨によっては性能が足らず赤色でハイライトされる場合もあります。

おや?マイニングした記憶がない通貨がマイニングされてる?

マイニングしていると他の通貨も一緒にマイニングするものがあります。 例えばMoneroをマイニングしていると一緒にFantomCoinもマイニングされます。 これは一緒のアルゴリズムを使ってついでに他の通貨もマイニングしちゃおうということで自動でマイニングされます。

いくつマイニングしたか確認

いくつマイニングできたか確認するには、MinerGateのウェブサイトへ行き「Dashboard」をクリックします。 するとマイニングした仮想通貨の一覧が表示されます。

一番上のAccount statusのAccount balanceがマイニングした総量です。 数値はビットコインで換算して表示されているので、矢印マークをクリックするとドルなどに変更できます(実際に換金されたりはしません)。

Total minedもマイニングした総量ですが、こちらは未認証(後述)を含む総量です。

主な数値

通貨名の右にある数値

承認済みのマイニングした仮想通貨の総量です。 その右側の数値はビットコイン相当量です。単位をドルなどに変更できます。

Youの右にある数値

現在マイニング中のハッシュ数です。パソコンの性能が高いほどこの値が大きくなります。 マイニング中の場合ステータスはOnlineになります。

Unconfirmed

未承認のマイニングした仮想通貨の量です。単位はその通貨の単位です。 一定量マイニングすると認証され自身のものになります。 どれだけマイニングすれば認証されるかは各通貨によって異なります

Total mined

マイニングした仮想通貨の総量です。単位はその通貨の単位です。

Good shares

成功したマイニング数です。

Bad shares

失敗したマイニング数です。

以上

手順としては、MinerGateへメールアドレスを登録、ソフトをインストールしてボタンを押すだけという簡単なものでした。

採掘した通貨を換金するには一定量採掘する必要がありますが、その量を満たすまで時間がかかるのでコツコツと採掘する必要があります。

出金可能な量を採掘出来たら換金方法について記事を書こうと思います。それまでコツコツとパソコンに頑張ってもらおうと思います。