金融商品取引業者 関東財務局長(金商)第1960号/加入協会 一般社団法人 日本投資顧問業協会 会員番号 012-02323GogoJungleトップへ
icon 一覧
GogoJungleへ
記事作成

マイページを見る
ログアウト
あとで読む0
お気に入り0
購入済み0
記事作成
GogoJungleトップGogoJungleトップ
カート
お知らせ
ご利用ガイド
きむ公
2020/10/20 20:53
公開: 2020/10/20 20:53
更新: 2021/04/08 15:35
icon
連載
きむ公の株式投資あれこれ
米国株投資家向けの記事です。 プログラミング×投資の話題が多いかも?

【コピペOK】Pythonで米国株の株価データを取得してリターンを比較する方法

株式

・気になっている銘柄の株価データをパパッと比較したい

・Python で金融データの分析をやってみたい

・自分が購入した個別株の株価の長期推移を知りたい


こういった方向けに記事を書いていきます。


今回作るのは

ユーザーが指定した期間に指定した複数の米国個別株にどれくらい値動きがあったかをグラフで比較するPythonコード

です。


要するに欲しい株価データの推移を可視化するプログラムですね。


自動売買 bot を作るにせよ、何らかのテクニカル分析をするにせよ株価データがなければ始まりません。

Python初心者にとってはとりあえずまずはじめに触れておいて損はないプログラムです。


例えば「2020年1月1日から2020年10月12日のGAFAMの株価推移の比較が欲しいなあ」と思ったとします。

そんな時はこのプログラムを実行すればこんな感じの画像が生成されます。




GAFAMの中ではこの期間中 Amazon が一番株価を伸ばしていたことがすぐにわかります。


これを生成するコードが下記です。


import pandas_datareader.data as web
import datetime as datetime
import matplotlib.pyplot as plt
import pandas as pd


#データ期間と銘柄(ティッカーシンボル)を指定する

start=datetime.datetime(2020,1,1)
end =datetime.datetime(2020,10,12)

tickers = ["AAPL","FB","GOOGL","AMZN","MSFT"]


print("データ取得を開始します。デフォルトの取得先はyahoo financeです")

print("取得期間: "+str(start)+" ----> "+str(end))


all_data = web.DataReader(tickers,

'yahoo',

start=start,

end=end)


print("データ取得が完了しました")


print("結果をまとめています")


#今回は調整済み終値のみ使うので、改めてdfに格納

df = all_data["Adj Close"]


#リターンを計算

df=df/df.iloc[0]


#日付の列を加える

df["Date"] = all_data.index

print(df.dtypes)

df.set_index(["Date"],inplace=True)


#リターンの大きい銘柄順に並び替える

df=df.sort_values(df.index[-1],axis=1,ascending=False)


#プロット
pd.set_option("display.max_rows",None)

df.plot()


#画像保存

plt.savefig("result.png")

#数値データ保存
df.to_csv("result.csv")


print("完了しました。")

print("result.pngに各銘柄の株価推移グラフを、result.csvに数値データを書き込みました")



初めの方にあるstart,endで調査したい期間を指定し、tickersで興味がある銘柄のティッカーシンボルを入力してください。 

この二つを書き換えるだけですぐに動くはずです。


(コピペして色々改造して遊んでみるとpandasに対する理解が深まるかもです)



注)

1. モジュールが見つかりません的なエラーが出るときは、pipで適宜インストールするとオッケーです。 

2. AttributeError: 'numpy.datetime64' object has no attribute 'toordinal'

というエラーが出る場合はmatplotlibのバージョンが古いのかもしれません。最新版をインストールしてやってみてください

3. 将来的にyahooファイナンスの仕様が変更されると、このコードは上手く動かなくなる可能性があります。


普段は株式投資ブログやnoteで投資に関する記事を書いています。

よろしければ一度見てみてください(^^)b

×
コメント
ログインして投稿する
コメントを削除します。
よろしいですか?
この記事の作者
きむ公
きむ公
この記事の連載
きむ公の株式投資あれこれ
米国株投資家向けの記事です。 プログラミング×投資の話題が多いかも?
連載の人気記事
【コピペOK】Pythonで米国株の株価データを取得してリターンを比較する方法
・気になっている銘柄の株価データをパパッと比較したい・Python で金融データの分析をやってみたい・自分が購入した個別株の株価の長期推移を知りたいこういった方向けに記事を書いていきます。今回作るのは
すべて見る
  • ご利用ガイド
    よくあるご質問(FAQ)
    お支払方法について

  • 会社案内
    利用規約
    媒体資料
    開発依頼
    パートナー募集

  • 特定商取引方法に基づく表記
    採用情報

商号 株式会社ゴゴジャン
金融商品取引業の登録番号 関東財務局長(金商)第1960号
加入協会 一般社団法人 日本投資顧問業協会
商号 株式会社ゴゴジャン
金融商品取引業の登録番号
関東財務局長(金商)第1960号
加入協会 一般社団法人
日本投資顧問業協会
金融庁日本投資顧問業協会証券・金融商品あっせん相談センター証券取引等監視委員会

Copyright © 2025 GogoJungle Inc. All Rights Reserved.