WindowsにPython(Anaconda)をインストールして、米国株や海外ETFの価格・配当を取得する方法
サクソバンク証券でこれまで投資していなかったETFも保有するようになりましたので、価格や分配金の確認とかいろいろと簡略化できないかなと考えていました。
iシェアーズMSCIスイスETF(EWL)を購入しました - 関東在住福岡人のまったり投資日記
アメリカ中心に投資をしていますが、今年以降は個人的には面白いと考えてる国にも投資を行う方針です。その1つが「スイス」ですね。産業として金融業も強いですし、通貨もドル以外でユーロでもない強い通貨を持ってます。...
ということでサクソバンクで投資をしようと決めていた3月に本を買って4月からちまちまやってます。
プログラムを書ける人間ではありませんので、簡略化しかした文でいかに欲しい情報が取れるかということを優先でやってます。
とりあえずインストールから取得まで一通りできましたのでまとめてみました。
コーディングこうした方がいいとか、わたしPythonのプロとか、もっと他に取得方法あるという方は是非当方までご連絡・ご指導をお願いします。
Anacondaをインストールする
PythonをWindows上ではAnacondaがいいかなと思いまして、以下のサイトからダウンロードしてきました。
Anacondaダウンロード
わたしが検証した環境は、Windows10 64bit、Python 3.7、Anaconda 2019.03のインストーラです。
株価の取得に必要なpandas-datareaderをインストールする
ただ、デフォルトでは株価が取得できないため、「pandas-dataread」をインストールする必要があります。
まずインストールされたAnaconda navigatorで「Environment」を選びます。

右上で「Not installed」、検索で「pandas」を選んで「pandas-dataread」を選んで右下緑の「Apply」を押してインストールします。インストールが成功すると検索結果から消えます。

株価を取得して表示する、csv形式で出力する
株価を取得する環境が整いましたので、実際にプログラムを動かしてみます。
他のサイトを見て作ったプログラムが以下の通り。
Anacondaのpromptを起動して、以下のようにコマンド叩くと各ETFや米国株の4/9~4/15までの終値の価格の値が出力されます。import pandas as pd
import datetime as dt
import numpy as np
import pandas_datareader.data as web
start = dt.date(2019,4,10)
end = dt.date(2019,4,15)
tickerList = ['VT','BND','AMZN','VTI','JNJ','KO','VIG','VYM']
for i in tickerList:
stock = web.DataReader(i,'yahoo',start,end)
print(i,stock.loc[:,'Adj Close'])
stock2 = web.DataReader(tickerList,'yahoo',start,end)
stock2.to_csv("data.csv")

ちなみに最後の行でcsvに出力した結果は以下の通り。1日の高値なども出力されます。

配当の取得にはfix-yahoo-financeがあるといい
ただ、これだと配当が取れないのでいろいろと調べていましたが、どうやら「fix-yahoo-finance」というのがあるといいようです。
Anaconda navigatorでは出てこないので、Anacondaのプロンプトを起動して「pip install fix-yahoo-finance」と入力します。

インストールすると以下のようなプログラムが動作するようになります。
BNDの配当を取得してみると以下の通りで四捨五入してはありますが、ちゃんとした値が取れました。import pandas_datareader.data as pdr
import fix_yahoo_finance as yf
yf.pdr_override() # <== that's all it takes :-)
print(pdr.get_data_yahoo("BND", start="2007-01-01", end="2018-04-30", as_panel=False, group_by="ticker", auto_adjust=False, actions="only"))

ST Cap GainとLT Cap Gainは出力されないようですが、株式分割?と分配金が出力されてます。
注意点としてはGoogle financeのようにAPIの変更で取得できなる可能性がある
情報が取れるようになりましたので、情報を加工したり計算すると分布とかも見ることができるでしょうし、グラフプロットも可能でしょう。
昨年まではGoogle Financeも使えたようですが、APIの変更で値が取れなくなったようです。
yahooはfix-yahoo-financeがありますので大丈夫だとは思いますが、同じリスクはあるでしょうね。
APIの変更はAmazonもあって、ヨメレバのデフォルトが楽天になっちゃったりしましたし。
ともあれ作業の効率化していろいろとやりたいこともありますし、競馬の情報が取れるならばそれを使っていろいろとやっていきたいと考えています。
株価に関しては自作している人が結構いるようですし、パンローリングから書籍は定期的に出てるようです。
ただ、書籍に関しては情報が古い場合があるので、最新のものはGoogleで検索したりする必要はあるでしょうね。
Python3という意味では以下の本も参考になるかもしれません。


フォローする Follow @garboflash
更新情報を受け取る

- 関連記事
-
- 平成の終わりに高値を更新していくNASDAQやS&P500のこの先の懸念点
- スイスETF(EWL)に投資をしたので、組み入れトップのネスレ(NSRGY,NESN)について調べてみた
- WindowsにPython(Anaconda)をインストールして、米国株や海外ETFの価格・配当を取得する方法
- サブスクリプション型ビジネスの代表格のアドビシステムズ(ADBE)
- ひふみ投信が一番投資している米国株はオーリーズ・バーゲン・アウトレット・ホールディングス(OLLI)