コアダンプの数だけ強くなれるよ

見習いエンジニアの備忘log

FREDから日経平均株価を取得してみる(Python)

最近は仮想通貨の取引所が公開しているAPIを使い販売レートを取得したりビットコインを購入したり出来ることを知り色々遊んでいました。

ふと、日経平均株価(N225)とか他の経済情報を収集してデータを分析できたら面白いのでは?と思ったので情報を取得する方法が無いかと思い探してみました。

今回はLinuxでPython3を使って日経平均株価を取得します。

日経平均株価の情報源


ちょっと調べたところFREDという米国のセントルイス連邦準備銀行が運営する経済統計に関するデータベースから取得することができるようです。

YahooやGoogleからも取得出来そうですが、取得禁止だったり非公式だったりと渋り気味でした。


情報源 N225の取得 備考
Yahooファイナンス × APIなし、スクレイピング禁止
Google ファイナンス APIはあるが非公式
FRED


FREDとは

  • セントルイス連銀(ミズーリ州セントルイスにある連邦準備銀行の1つ)が運営する経済データのデータベース
  • 米国経済に関する統計データを公開している。
  • 日経225の平均株価を取得可能。


経済情報を取得するライブラリ


経済情報の収集は各所で公開されているAPIを使うかスクレイピング、クローリングによって行うことが出来ますが自分で実装するのは少々面倒です。

Pythonではそういったデータ収集のためのライブラリであるpandas-datareaderを使うことで簡単に情報が取ってこれます。

インストールはpipで行います。

$ sudo /usr/local/bin/pip3 install pandas-datareader


日経平均株価の取得


ライブラリのインストールが出来たので早速取得してみます。

情報はDataReaderを使って取ってこれます。 開始日と終了日は省略可能です。

DataReader("銘柄", "情報源", "開始日", "終了日")


とりあえず、前日の値をとってみます。

# 日経平均株価を取得する(n225.py)

#!/usr/local/bin/python3

from pandas_datareader import data as web

n225 = web.DataReader("NIKKEI225", "fred", "2017/10/27")

print(n225)


$ /usr/local/bin/python3 n225.py
            NIKKEI225
DATE
2017-10-27   22008.45


こんな結果が得られました。値が合ってるかGoogle先生に聞いてみましょう。

f:id:segmentation-fault:20171028124936p:plain



ちゃんと一致してますね!

あとは色々とデータを集めてきてオレオレ分析してみたいと思います。