【Python金融データ】Bank of Canadaの使い方

投資・ファイナンス

Bank of Canada(カナダ銀行)はカナダの中央銀行です。
カナダ銀行は”Valet API”と呼ばれるWebAPIを公開しています。今回はこのWebAPIを利用してカナダ銀行のデータにアクセスしてみます。Valet APIを利用することで、為替レートや金融データを取得することができます。
Valet APIに関する公式ドキュメントはこちらになります。

pandas_datareaderを使ったデータ取得

pandas_datareaderを用いることで、比較的簡単にデータ取得が可能です。JPYCADの為替データを取得してみます。

import pandas_datareader as pdr

# JPY/CAD
data = pdr.bankofcanada.BankOfCanadaReader('FXJPYCAD').read()
data

APIの使い方

公式ドキュメントのページでは、取得したいデータを指定すると、それに対応するリクエストURLを取得できます。

API画面
少しスクロールするとURLを取得できますので、こちらをコピーします。
URL

import requests
url = 'https://www.bankofcanada.ca/valet/series/FXAUDCAD/json'
response = requests.get(url)
json = response.json()
json

このコードで、上記と同じ結果を得ることができます。
価格データを取得したいような場合には、
/observations/{seriesNames}/{format}
を用いると取得できます。

import pandas as pd
from io import StringIO
url = 'https://www.bankofcanada.ca/valet/observations/FXUSDCAD%2CFXEURCAD/json?start_date=2023-01-23&end_date=2023-07-19'

response = requests.get(url)
json = response.json()
json

Tickerの調べ方

各種データを取得するために必要なTicker情報はAPIで取得可能です。

import requests
import pandas as pd

# APIのルートURL
url = 'https://www.bankofcanada.ca/valet/lists/series'
response = requests.get(url)
json = response.json()

# pandas.DataFrameに整理
df_list = pd.DataFrame(json['series']).T

あるいは、こちらのページのcsvファイルで為替に関してはTickerを確認できそうです。

例えばCPIを探して、pandas_datareaderを使って取得してみます。

df_list[df_list['description'].str.contains('CPI')]
pdr.bankofcanada.BankOfCanadaReader('STATIC_INFLATIONCALC').read()

今回使用したコードはこちらのGoogleColabで確認できます。

タイトルとURLをコピーしました