tokyo-stock-exchange
は東京証券取引所の証券コードを扱うPythonライブラリです。株式のコードや名称、分類情報に基づいて詳細なデータを照会する機能を提供します。
- 株式コードと企業名の相互変換
- 特定の株式の詳細情報取得
- 株式市場のカテゴリーに基づくデータ抽出
pip install tokyo-stock-exchange
東証証券コードデータに関しては毎月更新されるため自身でダウンロードしUTF8のCSV形式で配置し環境変数でパスを指定してください。データを指定しない場合はライブラリ内にある古いコード一覧が使用されます。 元データはSJISのエクセルのためGoogleスプレッドシートでUFT8のCSVにするのがおすすめです。
https://www.jpx.co.jp/markets/statistics-equities/misc/01.html
export TSE_LIST_DATA_PATH=./tokyo_stock_exchange/tse20240229.csv
from tokyo_stock_exchange import tse
# CSVファイルのパスを取得
csv_file_path = tse.csv_file_path
print(csv_file_path)
# CSVファイルの日付を取得
print(tse.get_file_date())
/home/penguin/.local/lib/python3.10/site-packages/tokyo_stock_exchange/tse.csv
20240329
from tokyo_stock_exchange import tse
# 株式コードによる企業名の取得
stock_name = tse.get_name_by_code("7832")
print(stock_name)
バンダイナムコホールディングス
# 企業名による株式コードの取得
stock_code = tse.get_code_by_name("バンダイナムコホールディングス")
print(stock_code)
7832
# 株式コードもしくは証券コードによる株式情報の取得
sotck_info = tse.get_stock_info("7203")
print(sotck_info[0], sotck_info[1])
sotck_info = tse.get_stock_info("トヨタ自動車")
print(sotck_info[0], sotck_info[1])
7203 トヨタ自動車
7203 トヨタ自動車
stock_name = tse.get_name_by_code("147A")
print(stock_name)
stock_code = tse.get_code_by_name("ソラコム")
print(stock_code)
sotck_info = tse.get_stock_info("147A")
print(sotck_info[0], sotck_info[1])
sotck_info = tse.get_stock_info("ソラコム")
print(sotck_info[0], sotck_info[1])
ソラコム
147A
147A ソラコム
147A ソラコム
# カテゴリーの出現回数を表示
tse.print_category_counts()
[市場・商品区分]
プライム(内国株式) = 1652
ETF・ETN = 349
グロース(内国株式) = 573
PRO Market = 102
スタンダード(内国株式) = 1607
プライム(外国株式) = 1
REIT・ベンチャーファンド・カントリーファンド・インフラファンド = 63
スタンダード(外国株式) = 2
グロース(外国株式) = 3
出資証券 = 2
[33業種区分]
水産・農林業 = 12
- = 414
医薬品 = 78
情報・通信業 = 620
陸運業 = 63
サービス業 = 557
建設業 = 161
~~~略
[規模区分]
TOPIX Small 2 = 1152
- = 2208
TOPIX Mid400 = 398
TOPIX Small 1 = 497
TOPIX Large70 = 69
TOPIX Core30 = 30
# 条件を満たす企業を検索し、出力
def single_category_task():
matching_items = tse.category_find("規模区分=TOPIX Core30")
for code, name in matching_items:
print(f"{name} ({code})")
# code に対して株価データ取得してグラフ化する処理などを追加
single_category_task()
セブン&アイ・ホールディングス (3382)
信越化学工業 (4063)
武田薬品工業 (4502)
アステラス製薬 (4503)
第一三共 (4568)
リクルートホールディングス (6098)
SMC (6273)
ダイキン工業 (6367)
日立製作所 (6501)
ニデック (6594)
ソニーグループ (6758)
キーエンス (6861)
ファナック (6954)
村田製作所 (6981)
トヨタ自動車 (7203)
本田技研工業 (7267)
HOYA (7741)
任天堂 (7974)
伊藤忠商事 (8001)
三井物産 (8031)
東京エレクトロン (8035)
三菱商事 (8058)
三菱UFJフィナンシャル・グループ (8306)
三井住友フィナンシャルグループ (8316)
みずほフィナンシャルグループ (8411)
東京海上ホールディングス (8766)
日本電信電話 (9432)
KDDI (9433)
ソフトバンク (9434)
ソフトバンクグループ (9984)
# 複数の条件を満たす企業を検索し、出力
def category_task():
matching_items = tse.category_find("規模区分=TOPIX Mid400", "33業種区分=陸運業")
for code, name in matching_items:
print(f"{name} ({code})")
# code に対して株価データ取得してグラフ化する処理などを追加
category_task()
東武鉄道 (9001)
相鉄ホールディングス (9003)
東急 (9005)
京浜急行電鉄 (9006)
小田急電鉄 (9007)
京王電鉄 (9008)
京成電鉄 (9009)
西武ホールディングス (9024)
西日本鉄道 (9031)
近鉄グループホールディングス (9041)
阪急阪神ホールディングス (9042)
南海電気鉄道 (9044)
京阪ホールディングス (9045)
名古屋鉄道 (9048)
ヤマトホールディングス (9064)
山九 (9065)
ニッコンホールディングス (9072)
セイノーホールディングス (9076)
九州旅客鉄道 (9142)
SGホールディングス (9143)
NIPPON EXPRESSホールディングス (9147)
このライブラリはMITライセンスのもとで公開されています。