クリプト

Cryptowatch APIを使用した仮想通貨価格データの取得

nisshiy's icon'
  • nisshiy
  • 2018/05/02 20:08

はじめまして。nisshiy(にっしー)です。

はじめに

突然ですが、私は仮想通貨については素人です。詳しいことはよくわかっておりません。

一方、職業柄、Pythonを使ったデータ分析については、以前から学習を進めています。

ということで、Pythonを使ったデータ分析を通して、仮想通貨について勉強していきたいと思います。

今回やりたいこと

今回やりたいことは以下の通りです。

 1.仮想通貨の過去データ取得

 2.取得したデータよりチャートの描画

本当は、取得したデータから、時系列予測やディープラーニングとかで将来予測までしたいところですが、まあ、初っ端としてはこれくらいからはじめたいと思います。

環境

まず、私の環境は以下の通りです。

・OS:Windows 10 pro

・プログラミング言語:Python 3.6.3

・実行環境:Jupyter lab

ちなみに、PythonはAnacondaでインストールしています。

 実装

それでは、実装していきます。

今回はCryptowatchというサービスのAPIを使用していきたいと思います。

ちなみに、このCryptowatch、とても便利そうですね。チャート分析をするだけならこれだけでいけるんじゃないか、というレベルですね。

まず、コードを示します。

import requests
import json
import datetime as dt
import pandas as pd
import numpy as np
#データ取得期間を指定
startDate = dt.datetime.strptime('2018-4-1 0:00:00', '%Y-%m-%d %H:%M:%S')
endDate = dt.datetime.strptime('2018-4-30 23:59:59', '%Y-%m-%d %H:%M:%S')
startTimestamp = startDate.timestamp()
endTimestamp = endDate.timestamp()
#Cryptowatch APIを使用してbitflyerのbitcoinのデータ取得
query = {"periods": "3600", "after": str(int(startTimestamp)), "before": str(int(endTimestamp))}
res = json.loads(requests.get("https://api.cryptowat.ch/markets/bitflyer/btcfxjpy/ohlc", params=query).text)["result"]["3600"]
res = np.array(res)
#時間と各時間における終値のみを抽出
time_stamp = res[:, 0].reshape(len(res), )
time_stamp = np.vectorize(lambda x:dt.datetime.fromtimestamp(x))(time_stamp)
close_price = res[:, 4].reshape(len(res), )
#pandasのデータフレーム化
data = pd.DataFrame({'date':time_stamp,'close_price':close_price})
data = data[['date','close_price']]

このコードで、2018/4/1 0:00:00 ~ 2018/4/30 23:59:59までのbitcoinの終値を1時間ごとに抽出できます。

実行結果

Content image






あとは、これをグラフ化するだけです。

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
fig,ax = plt.subplots(figsize=(12,4))
ax.plot(data['date'],data['close_price'])
ax.set_xlabel('日付')
ax.set_ylabel('日本円')

 実行結果

Content image

1ヶ月間で40万も変動があるんですね。

寡聞にして、これが通常なのか異常なのか、判断がつきませんが。

それは、おいおい勉強していきたいと思います。

おわりに

今回はAPIを使用してbitcoinのデータを取得することができました。

今後は、取得したデータを使って、時系列予測やディープラーニングによる将来価格予測とかができたらいいな、と考えております。


(参考)

Prophetを用いた時系列解析によるビットコイン価格予測 - Qiita



公開日:2018/05/02
獲得ALIS:8.78
nisshiy's icon'
  • nisshiy
  • @nisshiy
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

Like token Tip token
30.03 ALIS
Eye catch
クリプト

バイナンスの信用取引(マージン取引)を徹底解説~アカウントの開設方法から証拠金計算例まで~

Like token Tip token
3.50 ALIS
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Like token Tip token
59.99 ALIS
Eye catch
クリプト

【第8回】あの仮想通貨はいま「テレグラム-TON/Gram」

Like token Tip token
69.90 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

UNISWAPでALISをETHに交換してみた

Like token Tip token
40.40 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

Like token Tip token
44.10 ALIS
Eye catch
クリプト

CoinList(コインリスト)の登録方法

Like token Tip token
15.55 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
クリプト

2021年1月以降バイナンスに上場した銘柄を140文字以内でざっくりレビュー(Twitter向け情報まとめ)

Like token Tip token
38.10 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

Like token Tip token
236.30 ALIS