HiÐΞClassic

ICP-USD / ICP-JPY データ取得の備忘録

SHOGAKU
a year ago
ICP-USD データの取得Historic_Cryptoという名前のPythonパッケージを使用期間設定データ確認ICP-USD グラフ化ICP-USD データ (CSV) をGoogle DriveへICP-JPY データの取得FREDからUSD-JPYを取得ICP-JPYに変換ICP-JPY グラフデータ整理ここで保存しても良いかな、という人向け全部載せておこうというデータGoogleドライブへデータ保存

Google Colaboratory で実施した例です

Google Colaboratory → https://colab.research.google.com/?hl=ja#


ICP-USD データの取得


Historic_Cryptoという名前のPythonパッケージを使用

このパッケージは、暗号通貨のライブデータを取得するためのAPIを提供するもの

!pip install historic_crypto
from Historic_Crypto import LiveCryptoData
from Historic_Crypto import HistoricalData
new = LiveCryptoData('ICP-USD').return_data()

「LiveCryptoData」クラスを使用して、「ICP-USD」という暗号通貨ペアのライブデータを取得しています。
「return_data()」メソッドを呼び出すことで、このデータを取得する

ICP以外も取得できます。以下参照
https://pypi.org/project/Historic-Crypto/


期間設定

start_date = '2020-01-01-00-00' # 開始日
end_date = '2024-01-01-00-00' # 終了日(任意)
new = HistoricalData('ICP-USD', 86400, start_date, end_date).retrieve_data()

「HistoricalData」クラスを使用して、「ICP-USD」という暗号通貨ペアのデータを取得しています。
「86400」は、1日を秒単位で表したものであり、このような時間間隔でデータを取得することを指示しています。
「retrieve_data()」メソッドを呼び出すことで、このデータを取得することができます。

データ確認

import pandas as pd

# convert the returned data to a pandas dataframe
df = pd.DataFrame(new)

print(df)


ICP-USD グラフ化

取得したデータをグラフで見ると以下のような感じ

import matplotlib.pyplot as plt

plt.plot(df.index, df['close'])
plt.xlabel('Time')
plt.ylabel('USD Close Price')
plt.title('ICP-USD')
plt.xticks(rotation=45)
plt.grid(True)

plt.show()


ICP-USD データ (CSV) をGoogle Driveへ

もし、ここでもう保存したい人がいたらのために書いておきます

# Google Driveへ保管

df.to_csv('ICP-USD.csv')

from google.colab import drive
drive.mount('/content/drive')

df.to_csv('/content/drive/My Drive/ICP-USD.csv')

こんなデータ


ICP-JPY データの取得

引き続き、ICP-JPYデータ取得


FREDからUSD-JPYを取得

「pandas_datareader」を使って「Federal Reserve Economic Data」(FRED)と呼ばれるデータベースから「DEXUSEU」(ユーロ/米ドル為替レート)と「DEXJPUS」(米ドル/日本円為替レート)のデータを取得し、「df_JPY」という名前のデータフレームに格納。

# データ取得に使うライブラリをimport
import pandas_datareader.data as web
import pandas as pd

# 2020-5-1から現在までのデータを取得する
df_JPY = web.DataReader(['DEXUSEU','DEXJPUS'],'fred',start='2020-05-01')

# 表示される列の名前を変更
df_JPY.columns = ['EURUSD','USDJPY']

# 時間インデックスを列に追加する
df_JPY['time'] = df_JPY.index

print(df_JPY.head(10))
print(df_JPY.tail(10))


ICP-JPYに変換

# ICP-JPYに変換
df['ICP-JPY'] = df['close'] * df_JPY['USDJPY']

print(df['ICP-JPY'].head(10))
print(df['ICP-JPY'].tail(10))

価格の差!


ICP-JPY グラフ

import matplotlib.pyplot as plt
df['ICP-JPY'].plot()

plt.xlabel('Time')
plt.ylabel('JPY Price')
plt.title('ICP-JPY')
plt.grid(True)

plt.show()


データ整理

# 列名を変更する
df.rename(columns={'low':'low(ICP-USD)', 'high':'high(ICP-USD)', 'open':'open(ICP-USD)', 'close':'close(ICP-USD)', 'volume':'volume(ICP-USD)'}, inplace=True)

# 時間インデックスを列に追加する
df['time'] = df.index

# CSVファイルとして保存する
df.to_csv('ICP_data.csv', index=False)

print(df.head(10))
print(df.tail(10))


ここで保存しても良いかな、という人向け

Googleドライブへ保存

from google.colab import drive
drive.mount('/content/drive')

df.to_csv('/content/drive/My Drive/ICP-JPY.csv', index=False)


全部載せておこうというデータ

# EURUSD、USDJPY 追加
df.rename(columns={'time':'df_time'}, inplace=True)
df = pd.merge(df, df_JPY, left_on='df_time', right_on='time', how='left')

# 列削除
df.drop(['df_time', 'volume(ICP-USD)'], axis=1, inplace=True)

print(df.head(10))
print(df.tail(10))


Googleドライブへデータ保存

from google.colab import drive
drive.mount('/content/drive')

df.to_csv('/content/drive/My Drive/ICP-JPY-USD-EUR.csv', index=False)


備忘録、以上

今度はトランザクションデータ使って、税金計算しやすくできれば。


コメント
いいね
投げ銭
最新順
人気順
SHOGAKU
a year ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン