【Python/jsm】日本企業の株価データを銘柄ごとに取得

Pythonを用いて日本で上場している企業の株価データを取得する方法とソースコードについて紹介します。

jsmで日本企業の株価取得

Pythonでは、jsmモジュールで日本の証券取引所に上場している株価を取得できます。
得られる株価データの単位は円です。

書式 get_stock(銘柄, 開始日, 終了日)
返り値 指定した銘柄の開始~終了日の株価(終値、始値、高値、安値)

jsmモジュールのインストール方法

ソースコード(Python3)

サンプルプログラムのソースコードです。

#-*- coding:utf-8 -*-
import jsm
import datetime

# 株価のデータ取得(銘柄コード, 開始日, 終了日)
def get_stock(code, start_date, end_date):
    # 期間設定
    year, month, day = start_date.split("-")
    start = datetime.date(int(year), int(month), int(day))
    year, month, day = end_date.split("-") 
    end = datetime.date(int(year), int(month), int(day))
    # 株価データ取得
    q = jsm.Quotes()
    target = q.get_historical_prices(code, jsm.DAILY, start_date = start, end_date = end)
    # 項目ごとにリストに格納して返す
    date = [data.date for data in target]
    open = [data.open for data in target]
    close = [data.close for data in target]
    high = [data.high for data in target]
    low = [data.low for data in target]

    return [date, open, close, high, low]

def main():
    # 株価の取得(銘柄コード, 開始日, 終了日)
    code = 7203 # トヨタ自動車の銘柄コード
    data = get_stock(code, '2017-3-23', '2017-3-27')
    
    # 取得したデータの表示
    print("日付\t始値\t終値\t高値\t安値")
    for date, open, close, high, low in list(zip(*data)):
        print(date.strftime("%m/%d"), "\t", open, "\t", close, "\t", high, "\t", low)
    
if __name__ == "__main__":
    main()

実行結果

サンプルプログラムの実行結果です。
2017年3月23~27日の株価データを取得して表示しています。

日付    始値    終値    高値    安値
03/27    6150    6158    6180    6136
03/24    6163    6229    6232    6145
03/23    6132    6160    6175    6100
関連記事
1 【Python】株価分析・予測
2 【Pandas入門】データ分析のサンプル集
3 Python入門 サンプル集
Python
技術雑記

コメント

タイトルとURLをコピーしました