収益化へのステップ

【 pandas datareader 】 株価・コモディディー・FXデータを、日足・週足・月足で取得する方法 まとめ

【 pandas_datareader 】 株価・コモディディー・FXデータを、日足・週足・月足で取得する方法 まとめ

Pythonのpandasライブラリーを使用して、

  • 株価、コモディティー(金、ビットコインなど)、FXデータ(USDJPYなど)を
  • 無料で
  • Pythonの学習入門者でも、容易に取得できる方法

をご紹介します。

ライブラリ「pandasと、pandas datareader」を使用します。

インストール方法を紹介した後に、具体的な使い方を解説しています。

ライブラリのインストール方法

  • pandas
  • pandas datareader

の順番で紹介していきます。

pipを使用した方法をご紹介します。

pipの詳細を知りたい方は、下記をご参照ください。

【Python】pipの使い型入門 - コマンドライン、Anaconda、PyCharmからの操作方法を解説 -
【Python】pipの使い方入門 - コマンドライン、Anaconda、PyCharmからの操作方法を解説 -Python入門者を対象に、pipの使い型を解説した記事です。 コマンドライン、Anaconda、PyCharmからの操作方法を、わかりやすく解説しました。 ...

pandasのインストール方法

pip install pandas

pandas_datareaderのインストール方法

pip install pandas_datareader

Pythonによる、 金融データの取得方法

まずは下記の金融データを、日足で取得する方法をご紹介します。

  • [ 株価 ] データ
  • [ コモディティー ] データ
  • [ FX ] データ

その後

  • 週足、月足

を取得する方法を記しています。

必要なライブラリのimport

import datetime

import pandas as pd
from pandas_datareader import data

[ 株価 ] データの取得方法

コードの紹介

# データ 取得期間の設定
# 終了日 (仮に今日とする)
end = datetime.datetime.today()

# 開始日 (365日前とする)
start = (pd.Period(end, 'D') - 365).start_time

# データ収集 (TickerをSPYとする)
df = data.get_data_yahoo('SPY', end=end, start=start)

上記コードのTickerを変更すれば、各種データが取得可能です。

例えば、下記のようなTickerが挙げられます。

  • QQQ
  • DIA

結果

DataFrame型で取得できます。

# dfの表示結果

                  High         Low        Open       Close       Volume   Adj Close
Date                                                                               
2020-12-30  373.100006  371.570007  372.339996  371.989990   49455300.0  367.094330
2020-12-31  374.660004  371.230011  371.779999  373.880005   78520700.0  368.959442
2021-01-04  375.450012  364.820007  375.309998  368.790009  110210800.0  363.936401
2021-01-05  372.500000  368.049988  368.100006  371.329987   66426200.0  366.442963
2021-01-06  376.980011  369.119995  369.709991  373.549988  107997700.0  368.633789

[ コモディディー(金、ビットコイン 等) ] データの取得方法

上記コードのTickerを、変更するだけです。

金のETF(GLD)を取得するケースで、記載しています。

コードの紹介

# データ 取得期間の設定
# 終了日 (仮に今日とする)
end = datetime.datetime.today()

# 開始日 (365日前とする)
start = (pd.Period(end, 'D') - 365).start_time

# データ収集 (Tickerを金とする)
df = data.get_data_yahoo('GLD', end=end, start=start)

結果は、「[ 株価 ] データの取得方法」の章をご参照下さい。

他にも、下記のようなTickerが挙げられます。

  • 銀:SLV
  • プラチナ:PPLT
  • ビットコイン:BTC-USD

[ FX(ドル円 等) ] データの取得方法

コードの紹介

# データ 取得期間の設定
# 終了日 (仮に今日とする)
end = datetime.datetime.today()

# 開始日 (365日前とする)
start = (pd.Period(end, 'D') - 365).start_time

# データ収集 (Tickerを日本円とする)
df = data.get_data_yahoo('USDJPY=X', end=end, start=start)

結果は、「[ 株価 ] データの取得方法」の章をご参照下さい。

他にも、下記のようなTickerが挙げられます。

  • ユーロ:EURJPY=X
  • ポンド:GBPJPY=X
  • オーストラリアドル:AUDJPY=X

日足 週足 月足 データを収集する方法

下記コードに、週足、月足で、取得する方法を記します。

コードの紹介

 

# データ 取得期間の設定
# 終了日 (仮に今日とする)
end = datetime.datetime.today()

# 開始日 (365日前とする)
start = (pd.Period(end, 'D') - 365).start_time

# データ収集 (TickerをSPYとする)
# 週足の場合
df = data.get_data_yahoo('SPY', end=end, start=start, interval='w')

# 月足の場合
df = data.get_data_yahoo('SPY', end=end, start=start, interval='m')

結果は、「[ 株価 ] データの取得方法」の章をご参照下さい。

まとめ

pandas dataframeを使用して

  • 株価、コモディティー、FXデータを
  • 日足、週足、月足で

取得する方法をご紹介しました。

売買アルゴ用の、学習データ等に活用できると思います。

もしアルゴが完成した際は、その「アルゴ」を、試してみたくなると思います。

ビットコインの自動取引に興味がありましたら、下記が役に立てると思います。

この記事を読めば、bitFlyerの自動取引システムを、Pythonにて作る事が可能となります。

あわせて、どうぞ。

bitFlyerのAPIを使用して、Pythonにより自動取引システムを作る
bitFlyerのAPIを使用して、Pythonにより自動取引システムを作るbitFlyerのAPIを使用して、Pythonにより自動取引システムを作り方を、わかりやすく紹介した記事です。...