メモ書き的なもの
yahoo_finance_api2を利用するのでインストール。
銘柄コードを網羅したいのでここからダウンロード。同じく日経平均のデータも。
import sys
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from yahoo_finance_api2 import share
from yahoo_finance_api2.exceptions import YahooFinanceError
data_j = pd.read_csv('./data/data_j.csv',encoding='shift-jis')
nikkei225 = pd.read_csv('./data/data_j.csv',encoding='shift-jis')
codes = data_j['コード'].unique()
stock_info = None
for code in codes:
sharedata = share.Share(f'{code}.T')
symbol_data=None
symbol_data = sharedata.get_historical(share.PERIOD_TYPE_YEAR,
1,
share.FREQUENCY_TYPE_DAY,
1)
tmp = pd.DataFrame(symbol_data)
if len(tmp) >0 :
tmp.loc[:,'code'] = code
stock_info = pd.concat([stock_info,tmp],axis=0)
引数の説明
PERIOD_TYPE_YEAR , 1 ・・・ 取得する期間の単位と期間を示す。例では実行日付から1年前までを取ってくる。
(DAY、WEEK、MONTHがあるらしい。)
FREQUENCY_TYPE_DAY , 1 ・・・ 取得するデータの頻度を示す。例では1日1レコードになるようにとってくる。
(MINUTE、DAY、MONTH、YEARがあるらしい)
これを実行すると
・open(始値)
・high(高値)
・low (低値)
・close(終値)
・code(銘柄コード)
・datetime(日付)
が得られる。