1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ICP-USD / ICP-JPY データ取得の備忘録・改 (グーグルコラボ)

Last updated at Posted at 2024-03-10

以前行ったものをシンプルにした。

以前

グーグルコラボで実行した例。


今回

"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の使用も無料で可能です。特にデータサイエンスや機械学習のプロジェクトに非常に便利です。

基本的な使い方

  1. Google Colabにアクセス: Googleアカウントにログインした状態で、Google Colabにアクセスします。
  2. 新しいノートブックを作成: 「新しいノートブック」をクリックして新しいノートブックを開始します。または、Googleドライブ内で新しいノートブックを作成することもできます。
  3. コードの記述と実行: セルにPythonコードを記述し、セルを実行して結果を確認します。セルはコードセルとテキストセルがあり、テキストセルではMarkdown形式で文書を記述できます。
  4. ライブラリのインストール: 必要に応じて、!pip install!apt-get installを使用してライブラリをインストールします。
  5. ファイルの保存と共有: 編集したノートブックは自動的にGoogleドライブに保存されます。右上の「共有」ボタンから他のユーザーとノートブックを共有することも可能です。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?