pythonを使って株価情報を取得する

5月 6, 2023

こちらを参考にしました。

https://relaxing-living-life.com/114/

日経225の株価を取得する

日経に属する企業の株価を取得します。

※2023年3月18日現在の情報です。

後述の「nikkei225.tsv」の株価情報をもとに、各会社の株価情報を抽出するコードとなっています。

また、過去に記録したデータファイルに新しいデータも追加して保存する形のコードとなっています。

import pandas_datareader.data as web
from datetime import datetime, timedelta
import pandas as pd
import os

def main():
    #今日の年月日を取得
    nowDate = datetime
    #取得期間を指定
    #今日の20日前から
    start = (nowDate.now() - timedelta(20)).strftime('%Y-%m-%d')
    #今日までの情報
    end = nowDate.now().strftime('%Y-%m-%d')
    #株式一覧ファイルを取得
    stock_list = open('nikkei225.tsv', 'r').read().split('\n')[1:]
    #会社ごとに株価を取得
    for item in stock_list:
        #株番号を抽出
        stock_num = item.split('\t')[0]
        #ファイル名を設定
        kabu_file = stock_num+'.JP'
        #既存の株価ファイル(dataframe)を読み込む場合
        if os.path.exists(kabu_file):
            existing_df = pd.read_csv(kabu_file)
            #読み込んだ後にdatetime型に変換する必要がある
            existing_df['Date'] = pd.to_datetime(existing_df['Date'])
            existing_df = existing_df.set_index("Date")
        #既存の株価ファイルがない場合
        else:
            print('ファイルが存在しません')
        #データをstooqから指定の株番号、期間の株価を読み込む
        df = web.DataReader(stock_num+'.JP', 'stooq', start, end)
        #既存の株価ファイル(dataframe)を読み込んだ場合
        if os.path.exists(kabu_file):
            #ファイルから読み込んだ既存の株価データと結合する
            concat_df = pd.concat([df, existing_df[~existing_df.index.isin(df.index)]])
        #既存の株価ファイルがない場合
        else:
            concat_df = df
        #更新した情報をファイルに書き込む
        concat_df.to_csv(stock_num+'.JP')
銘柄コード	名称	業種
1332	日本水産	水産
1605	INPEX	鉱業
1721	コムシスホールディングス	建設
1801	大成建設	建設
1802	大林組	建設
1803	清水建設	建設
1808	長谷工コーポレーション	建設
1812	鹿島建設	建設
1925	大和ハウス工業	建設
1928	積水ハウス	建設
1963	日揮ホールディングス	建設
2002	日清製粉グループ本社	食品
2269	明治ホールディングス	食品
2282	日本ハム	食品
2413	エムスリー	サービス
2432	ディー・エヌ・エー	サービス
2501	サッポロホールディングス	食品
2502	アサヒグループホールディングス	食品
2503	キリンホールディングス	食品
2531	宝ホールディングス	食品
2768	双日	商社
2801	キッコーマン	食品
2802	味の素	食品
2871	ニチレイ	食品
2914	日本たばこ産業	食品
3086	J.フロント リテイリング	小売業
3099	三越伊勢丹ホールディングス	小売業
3101	東洋紡	繊維
3289	東急不動産ホールディングス	不動産
3382	セブン&アイ・ホールディングス	小売業
3401	帝人	繊維
3402	東レ	繊維
3405	クラレ	化学
3407	旭化成	化学
3436	SUMCO	非鉄・金属
3659	ネクソン	サービス
3861	王子ホールディングス	パルプ・紙
3863	日本製紙	パルプ・紙
4004	昭和電工	化学
4005	住友化学	化学
4021	日産化学	化学
4042	東ソー	化学
4043	トクヤマ	化学
4061	デンカ	化学
4063	信越化学工業	化学
4151	協和キリン	医薬品
4183	三井化学	化学
4188	三菱ケミカルグループ	化学
4208	UBE	化学
4324	電通グループ	サービス
4452	花王	化学
4502	武田薬品工業	医薬品
4503	アステラス製薬	医薬品
4506	住友ファーマ	医薬品
4507	塩野義製薬	医薬品
4519	中外製薬	医薬品
4523	エーザイ	医薬品
4543	テルモ	精密機器
4568	第一三共	医薬品
4578	大塚ホールディングス	医薬品
4631	DIC	化学
4689	Zホールディングス	サービス
4704	トレンドマイクロ	サービス
4751	サイバーエージェント	サービス
4755	楽天グループ	サービス
4901	富士フイルムホールディングス	化学
4902	コニカミノルタ	精密機器
4911	資生堂	化学
5019	出光興産	石油
5020	ENEOSホールディングス	石油
5101	横浜ゴム	ゴム
5108	ブリヂストン	ゴム
5201	AGC	窯業
5202	日本板硝子	窯業
5214	日本電気硝子	窯業
5232	住友大阪セメント	窯業
5233	太平洋セメント	窯業
5301	東海カーボン	窯業
5332	TOTO	窯業
5333	日本碍子	窯業
5401	日本製鉄	鉄鋼
5406	神戸製鋼所	鉄鋼
5411	ジェイ エフ イー ホールディングス	鉄鋼
5541	大平洋金属	鉄鋼
5631	日本製鋼所	機械
5703	日本軽金属ホールディングス	非鉄・金属
5706	三井金属鉱業	非鉄・金属
5707	東邦亜鉛	非鉄・金属
5711	三菱マテリアル	非鉄・金属
5713	住友金属鉱山	非鉄・金属
5714	DOWAホールディングス	非鉄・金属
5801	古河電気工業	非鉄・金属
5802	住友電気工業	非鉄・金属
5803	フジクラ	非鉄・金属
5831	しずおかフィナンシャルグループ	銀行
6098	リクルートホールディングス	サービス
6103	オークマ	機械
6113	アマダ	機械
6178	日本郵政	サービス
6273	SMC	機械
6301	小松製作所	機械
6302	住友重機械工業	機械
6305	日立建機	機械
6326	クボタ	機械
6361	荏原製作所	機械
6367	ダイキン工業	機械
6471	日本精工	機械
6472	NTN	機械
6473	ジェイテクト	機械
6479	ミネベアミツミ	電気機器
6501	日立製作所	電気機器
6503	三菱電機	電気機器
6504	富士電機	電気機器
6506	安川電機	電気機器
6594	日本電産	電気機器
6645	オムロン	電気機器
6674	ジーエス・ユアサ コーポレーション	電気機器
6701	日本電気	電気機器
6702	富士通	電気機器
6724	セイコーエプソン	電気機器
6752	パナソニックホールディングス	電気機器
6753	シャープ	電気機器
6758	ソニーグループ	電気機器
6762	TDK	電気機器
6770	アルプスアルパイン	電気機器
6841	横河電機	電気機器
6857	アドバンテスト	電気機器
6861	キーエンス	電気機器
6902	デンソー	電気機器
6952	カシオ計算機	電気機器
6954	ファナック	電気機器
6971	京セラ	電気機器
6976	太陽誘電	電気機器
6981	村田製作所	電気機器
6988	日東電工	化学
7003	三井E&Sホールディングス	造船
7004	日立造船	機械
7011	三菱重工業	機械
7012	川崎重工業	造船
7013	IHI	機械
7186	コンコルディア・フィナンシャルグループ	銀行
7201	日産自動車	自動車
7202	いすゞ自動車	自動車
7203	トヨタ自動車	自動車
7205	日野自動車	自動車
7211	三菱自動車工業	自動車
7261	マツダ	自動車
7267	本田技研工業	自動車
7269	スズキ	自動車
7270	SUBARU	自動車
7272	ヤマハ発動機	自動車
7731	ニコン	精密機器
7733	オリンパス	精密機器
7735	SCREENホールディングス	電気機器
7741	HOYA	精密機器
7751	キヤノン	電気機器
7752	リコー	電気機器
7762	シチズン時計	精密機器
7832	バンダイナムコホールディングス	その他製造
7911	凸版印刷	その他製造
7912	大日本印刷	その他製造
7951	ヤマハ	その他製造
7974	任天堂	その他製品
8001	伊藤忠商事	商社
8002	丸紅	商社
8015	豊田通商	商社
8031	三井物産	商社
8035	東京エレクトロン	電気機器
8053	住友商事	商社
8058	三菱商事	商社
8233	高島屋	小売業
8252	丸井グループ	小売業
8253	クレディセゾン	その他金融
8267	イオン	小売業
8304	あおぞら銀行	銀行
8306	三菱UFJフィナンシャル・グループ	銀行
8308	りそなホールディングス	銀行
8309	三井住友トラスト・ホールディングス	銀行
8316	三井住友フィナンシャルグループ	銀行
8331	千葉銀行	銀行
8354	ふくおかフィナンシャルグループ	銀行
8411	みずほフィナンシャルグループ	銀行
8591	オリックス	その他金融
8601	大和証券グループ本社	証券
8604	野村ホールディングス	証券
8628	松井証券	証券
8630	SOMPOホールディングス	保険
8697	日本取引所グループ	その他金融
8725	MS&ADインシュアランスグループホールディングス	保険
8750	第一生命ホールディングス	保険
8766	東京海上ホールディングス	保険
8795	T&Dホールディングス	保険
8801	三井不動産	不動産
8802	三菱地所	不動産
8804	東京建物	不動産
8830	住友不動産	不動産
9001	東武鉄道	鉄道・バス
9005	東急	鉄道・バス
9007	小田急電鉄	鉄道・バス
9008	京王電鉄	鉄道・バス
9009	京成電鉄	鉄道・バス
9020	東日本旅客鉄道	鉄道・バス
9021	西日本旅客鉄道	鉄道・バス
9022	東海旅客鉄道	鉄道・バス
9064	ヤマトホールディングス	陸運
9101	日本郵船	海運
9104	商船三井	海運
9107	川崎汽船	海運
9147	NIPPON EXPRESSホールディングス	陸運
9202	ANAホールディングス	空運
9301	三菱倉庫	倉庫
9432	日本電信電話	通信
9433	KDDI	通信
9434	ソフトバンク	通信
9501	東京電力ホールディングス	電力
9502	中部電力	電力
9503	関西電力	電力
9531	東京瓦斯	ガス
9532	大阪瓦斯	ガス
9602	東宝	サービス
9613	エヌ・ティ・ティ・データ	通信
9735	セコム	サービス
9766	コナミホールディングス	サービス
9983	ファーストリテイリング	小売業
9984	ソフトバンクグループ	通信

アメリカ株を取得する

アメリカ株を取得する場合も日本株の場合とほとんど同じです。(web.DataReaderで銘柄コードを入力するときに「.JP」をつけないだけ)

import pandas_datareader.data as web
from datetime import datetime, timedelta
import pandas as pd
import os

def main():
    #今日の年月日を取得
    nowDate = datetime
    #取得期間を指定
    #今日の20日前から
    start = (nowDate.now() - timedelta(20)).strftime('%Y-%m-%d')
    #今日までの情報
    end = nowDate.now().strftime('%Y-%m-%d')
    #株式一覧ファイルを取得 「NASDAQ100.tsv」or「DAU.tsv」
    stock_list = open('NASDAQ100.tsv', 'r').read().split('\n')[1:]
    #会社ごとに株価を取得
    for item in stock_list:
        #株番号を抽出
        stock_num = item.split('\t')[0]
        #ファイル名を設定
        kabu_file = stock_num+'.US'
        #既存の株価ファイル(dataframe)を読み込む場合
        if os.path.exists(kabu_file):
            existing_df = pd.read_csv(kabu_file)
            #読み込んだ後にdatetime型に変換する必要がある
            existing_df['Date'] = pd.to_datetime(existing_df['Date'])
            existing_df = existing_df.set_index("Date")
        #既存の株価ファイルがない場合
        else:
            print('ファイルが存在しません')
        #データをstooqから指定の株番号、期間の株価を読み込む
        df = web.DataReader(stock_num, 'stooq', start, end)
        #既存の株価ファイル(dataframe)を読み込んだ場合
        if os.path.exists(kabu_file):
            #ファイルから読み込んだ既存の株価データと結合する
            concat_df = pd.concat([df, existing_df[~existing_df.index.isin(df.index)]])
        #既存の株価ファイルがない場合
        else:
            concat_df = df
        #更新した情報をファイルに書き込む
        concat_df.to_csv(stock_num+'.US')

2023年4月23日時点のNASDAQ100の銘柄一覧はこちら。

ティッカー	銘柄
ABNB	エアビーアンドビー
ADBE	アドビ
ADI	アナログ・デバイセズ
ADP	オートマチック・データ・プロセシング(ADP)
ADSK	オートデスク
AEP	アメリカン・エレクトリック・パワー
ALGN	アライン・テクノロジー
AMAT	アプライド・マテリアルズ
AMD	アドバンスト・マイクロ・デバイセズ(AMD)
AMGN	アムジェン
ANSS	アンシス
ASML	ASMLホールディング
ATVI	アクティビジョン・ブリザード
AVGO	ブロードコム
AZN	アストラゼネカ
BIIB	バイオジェン
BKNG	ブッキング・ホールディングス
BKR	ベーカー・ヒューズ
CDNS	ケイデンス・デザイン・システムズ
CEG	コンステレーション・エナジー
CHTR	チャーター・コミュニケーションズ
CMCSA	コムキャスト
COST	コストコホールセール
CPRT	コパート
CRWD	クラウドストライク・ホールディングス
CSCO	シスコシステムズ
CSGP	コスター・グループ
CSX	CSX
CTAS	シンタス
CTSH	コグニザント・テクノロジー・ソリューションズ
DDOG	データドッグ
DLTR	ダラー・ツリー
DXCM	デクスコム
EA	エレクトロニック・アーツ
EBAY	イーベイ
ENPH	エンフェーズ・エナジー
EXC	エクセロン
FANG	ダイアモンドバック・エナジー
FAST	ファスナル
FISV	ファイサーブ
FTNT	フォーティネット
GFS	グローバルファウンドリーズ
GILD	ギリアド・サイエンシズ
GOOG	アルファベット(クラスC)
GOOGL	アルファベット(クラスA)
HON	ハネウェルインターナショナル
IDXX	アイデックスラボラトリーズ
ILMN	イルミナ
INTC	インテル
INTU	インテュイット
ISRG	インテュイティブサージカル
JD	JDドットコム
KDP	キューリグ・ドクターペッパー
KHC	クラフト・ハインツ
KLAC	KLA
LCID	ルーシッド・グループ
LRCX	ラムリサーチ
LULU	ルルレモン・アスレティカ
MAR	マリオット・インターナショナル
MCHP	マイクロチップ・テクノロジー
MDLZ	モンデリーズ・インターナショナル
MELI	メルカドリブレ
META	メタ・プラットフォームズ
MNST	モンスタービバレッジ
MRNA	モデルナ
MRVL	マーベル・テクノロジー・グループ
MU	マイクロン・テクノロジー
NFLX	ネットフリックス
NVDA	エヌビディア
NXPI	エヌエックスピー・セミコンダクターズ
ODFL	オールド・ドミニオン・フレイト・ライン
ORLY	オライリー・オートモーティブ
PANW	パロアルトネットワークス
PAYX	ペイチェックス
PCAR	パッカー
PDD	ピンドゥオドゥオ
PEP	ペプシコ
PYPL	ペイパル・ホールディングス
QCOM	クアルコム
REGN	リジェネロン・ファーマシューティカルズ
RIVN	リビアン・オートモーティブ
ROST	ロス・ストアーズ
SBUX	スターバックス
SGEN	シージェン
SIRI	シリウスXMホールディングス
SNPS	シノプシス
TEAM	アトラシアン
TMUS	TモバイルUS
TXN	テキサス・インスツルメンツ
VRSK	ベリスク・アナリティクス
VRTX	バーテックス・ファーマシューティカルズ
WBA	ウォルグリーン・ブーツ・アライアンス
WBD	ワーナー・ブラザース・ディスカバリー
WDAY	ワークデイ
XEL	エクセル・エナジー
ZM	ズーム・ビデオ・コミュニケーションズ
ZS	ゼットスケーラー

2023年4月23日時点のダウ工業株価の銘柄一覧はこちら。

ティッカー	銘柄	業種
AAPL	アップル	インターネット/デジタル家電製品
AMGN	アムジェン	バイオ医薬品
AXP	アメリカン・エキスプレス	クレジットカード
BA	ボーイング	航空宇宙機器
CAT	キャタピラー	建設機器・鉱山用機械
CRM	セールスフォース	クラウドベース顧客関係管理システム
CSCO	シスコシステムズ	コンピュータ/ネットワーク機器
CVX	シェブロン	石油 & ガス
DIS	ウォルト・ディズニー	エンターテイメント
DOW	ダウ	総合化学メーカー
GS	ゴールドマン・サックス・グループ	投資銀行
HD	ホーム・デポ	ホームセンター
HON	ハネウェル・インターナショナル	電子制御システム/自動化機器
IBM	IBM	情報システムサービス
INTC	インテル	半導体
JNJ	ジョンソン・エンド・ジョンソン(J&J)	製薬・医療機器/ヘルスケア
JPM	JPモルガン・チェース・アンド・カンパニー	銀行
KO	コカ・コーラ	清涼飲料
MCD	マクドナルド	ファーストフードチェーン
MMM	3M	化学・電気素材メーカー
MRK	メルク	製薬
MSFT	マイクロソフト	アプリケーションソフトウェア
NKE	ナイキ	スポーツ用品
PG	プロクター・アンド・ギャンブル(P&G)	一般消費財メーカー
TRV	トラベラーズ	損害保険
UNH	ユナイテッドヘルス・グループ	医療保険/医療サービス
V	ビザ	クレジットカード
VZ	ベライゾン・コミュニケーションズ	通信技術ソリューション
WBA	ウォルグリーン・ブーツ・アライアンス	ドラッグストア/健康サービス
WMT	ウォルマート	ディスカウントストアチェーン