以前行ったものをシンプルにした。
以前
- ICP-USD / ICP-JPY データ取得の備忘録
https://hide.ac/articles/OBUA_JwNC
グーグルコラボで実行した例。
今回
"ICP-USD価格と為替レートを利用してICP-JPYを計算するPythonチュートリアル"
はじめに:
暗号通貨市場は、その急速な変動とグローバルな性質から、多くの投資家や研究者にとって魅力的な研究対象となっています。このブログでは、特定の暗号通貨であるInternet Computer (ICP)のUSD価格データと、USD-JPYおよびEUR-USDの為替レートデータを用いて、ICPのJPY価格を計算する方法について、Pythonを使って詳しく解説します。
ステップ1: 必要なライブラリのインストールとインポート
まず、このチュートリアルで使用するPythonライブラリをインストールし、インポートします。主にhistoric_crypto
ライブラリを使ってICP-USDの価格データを取得し、pandas_datareader
ライブラリで為替レートデータを取得します。
!pip install historic_crypto
from Historic_Crypto import HistoricalData
import pandas as pd
from datetime import datetime
import pandas_datareader.data as web
from google.colab import files
ステップ2: ICP-USDの価格データの取得
HistoricalData
クラスを使用して、指定された期間のICP-USDの価格データを取得します。この例では、2020年5月10日から現在までのデータを取得しています。
start_date = '2020-05-10-00-00'
end_date = datetime.now().strftime('%Y-%m-%d-%H-%M')
icp_data = HistoricalData('ICP-USD', 86400, start_date, end_date).retrieve_data()
ステップ3: 為替レートデータの取得
pandas_datareader
ライブラリを使って、USDJPYとEURUSDの為替レートデータを取得します。
df_rates = web.DataReader(['DEXJPUS', 'DEXUSEU'], 'fred', start='2020-05-10')
ステップ4: データの統合とICP-JPYの計算
取得したICP-USD価格データと為替レートデータを統合し、ICPのJPY価格を計算します。
df = pd.DataFrame(icp_data)
df.reset_index(inplace=True)
df.rename(columns={'index': 'time', 'close': 'close(ICP-USD)'}, inplace=True)
df['time'] = pd.to_datetime(df['time']).dt.strftime('%Y-%m-%d')
df_merged = pd.merge(df, df_rates, how='left', on='time')
df_merged['ICP-JPY'] = df_merged['close(ICP-USD)'] * df_merged['DEXJPUS']
ステップ5: 日付の連続性を確保し、データの補完
データが存在する最終日までの日付の連続性を保証し、欠損データを前方で補完します。
last_date = min(df_merged['time'].max(), df_rates['time'].max())
date_range = pd.date_range(start=df_merged['time'].min(), end=last_date)
df_merged.set_index('time', inplace=True)
df_merged.index = pd.to_datetime(df_merged.index)
df_final = df_merged.reindex(date_range).rename_axis('time').reset_index()
df_final['time'] = df_final['time'].dt.strftime('%Y-%m-%d')
df_final.fillna(method='ffill', inplace=True)
ステップ6: 結果の保存とダウンロード
最終的なデータフレームをCSVファイルとして保存し、ダウンロードします。
filename = 'ICP_data_' + datetime.now().strftime('%Y-%m-%d
') + '.csv'
df_final.to_csv(filename, index=False)
files.download(filename)
完全なコード:
完全なコードを示します。
# 必要なライブラリのインストール
!pip install historic_crypto
# 必要なライブラリのインポート
from Historic_Crypto import HistoricalData
import pandas as pd
from datetime import datetime
import pandas_datareader.data as web
from google.colab import files
# ICP-USDの過去データ取得
start_date = '2020-05-10-00-00' # ICPの取引開始日
end_date = datetime.now().strftime('%Y-%m-%d-%H-%M') # 現在の日付と時刻
icp_data = HistoricalData('ICP-USD', 86400, start_date, end_date).retrieve_data()
# ICP-USDデータフレームの作成
df_icp = pd.DataFrame(icp_data)
df_icp.reset_index(inplace=True)
df_icp.rename(columns={'index': 'time', 'close': 'close(ICP-USD)'}, inplace=True)
df_icp['time'] = pd.to_datetime(df_icp['time']).dt.strftime('%Y-%m-%d')
# 為替レートデータの取得
df_rates = web.DataReader(['DEXJPUS', 'DEXUSEU'], 'fred', start='2020-05-10')
df_rates.reset_index(inplace=True)
df_rates.rename(columns={'DATE': 'time'}, inplace=True)
df_rates['time'] = pd.to_datetime(df_rates['time']).dt.strftime('%Y-%m-%d')
# ICP-USDと為替レートの統合
df_merged = pd.merge(df_icp, df_rates, how='left', on='time')
# ICP-JPYの計算
df_merged['ICP-JPY'] = df_merged['close(ICP-USD)'] * df_merged['DEXJPUS']
# データが存在する最後の日までの日付範囲を作成
last_date = min(df_merged['time'].max(), df_rates['time'].max())
date_range = pd.date_range(start=df_merged['time'].min(), end=last_date)
df_merged.set_index('time', inplace=True)
df_merged.index = pd.to_datetime(df_merged.index)
# 日付の連続性を保証し、データが存在しない日は含めない
df_final = df_merged.reindex(date_range).rename_axis('time').reset_index()
df_final['time'] = df_final['time'].dt.strftime('%Y-%m-%d')
# 欠損データを前方で埋める
df_final.fillna(method='ffill', inplace=True)
# 指定されたカラムだけを選択してCSVファイルとして保存し、ダウンロード
filename = 'ICP_data_' + datetime.now().strftime('%Y-%m-%d') + '.csv'
df_final[['time', 'close(ICP-USD)', 'ICP-JPY']].to_csv(filename, index=False)
files.download(filename)
# 結果の表示
print(df_final[['time', 'close(ICP-USD)', 'ICP-JPY']].head(10))
print(df_final[['time', 'close(ICP-USD)', 'ICP-JPY']].tail(10))
補足:グーグルコラボの使い方
グーグルコラボ Google Colabの使い方について説明
Google Colabの使い方
Google Colaboratory、通称Google Colabは、ブラウザ上でPythonを書いて実行できる無料のJupyterノートブック環境です。Googleドライブと密接に統合されており、GPUやTPUの使用も無料で可能です。特にデータサイエンスや機械学習のプロジェクトに非常に便利です。
基本的な使い方
- Google Colabにアクセス: Googleアカウントにログインした状態で、Google Colabにアクセスします。
- 新しいノートブックを作成: 「新しいノートブック」をクリックして新しいノートブックを開始します。または、Googleドライブ内で新しいノートブックを作成することもできます。
- コードの記述と実行: セルにPythonコードを記述し、セルを実行して結果を確認します。セルはコードセルとテキストセルがあり、テキストセルではMarkdown形式で文書を記述できます。
-
ライブラリのインストール: 必要に応じて、
!pip install
や!apt-get install
を使用してライブラリをインストールします。 - ファイルの保存と共有: 編集したノートブックは自動的にGoogleドライブに保存されます。右上の「共有」ボタンから他のユーザーとノートブックを共有することも可能です。