本記事では例えば、下図のように1年分の株価データをダウンロードして、グラフ化とcsvファイル化するコードの雛形を記載しました。

ライブラリのインストールは下記のようにpipで行います。
■本プログラム
from yahoo_finance_api2 import share
from yahoo_finance_api2.exceptions import YahooFinanceError
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
import datetime
now = datetime.datetime.now()
now = now.strftime("%y%m%d")
def main():
num = len(data_dict)
fig, ax = plt.subplots(figsize=(10, 6))
legend_list = []
i = 0
for mykey, company_name in data_dict.items():
company_code = str(mykey) + '.T'
my_share = share.Share(company_code)
try:
symbol_data = my_share.get_historical(share.PERIOD_TYPE_YEAR,
1,
share.FREQUENCY_TYPE_DAY,
1)
'''
symbol_data = my_share.get_historical(share.PERIOD_TYPE_DAY,
10,
share.FREQUENCY_TYPE_MINUTE,
5)
'''
df = pd.DataFrame(symbol_data.values(), index=symbol_data.keys()).T
df.timestamp = pd.to_datetime(df.timestamp, unit='ms')
df.index = pd.DatetimeIndex(df.timestamp, name='timestamp').tz_localize('UTC').tz_convert('Asia/Tokyo')
df.to_csv(now + "_" + str(mykey) + "_" + company_name + ".csv", index=False)
ax.plot(df.index, df.close, '.')
ax.grid(True)
ax.set_ylabel("Stock Price [Yen]")
legend_list.append(str(mykey) + " " + company_name)
if i == (num - 1):
ax.set_xlabel("Date")
except YahooFinanceError as e:
print(e.message)
pass
i += 1
ax.legend(labels= legend_list,
bbox_to_anchor=(1.05, 0.5, 0.5, .100),
borderaxespad=0.,
ncol=1,
mode="expand",
title="Company")
plt.rcParams['font.size'] = 18
plt.subplots_adjust(right=0.7)
plt.tight_layout()
fig_name = now + "_stock_price.png"
plt.savefig(fig_name)
if __name__ == '__main__':
data_dict = { 7201:'日産自動車',
7202:'いすゞ自動車',
7203:'トヨタ自動車',
7205:'日野自動車',
7211:'三菱自動車工業',
7261:'マツダ',
7267:'本田技研工業',
7269:'スズキ',
7270:'SUBARU',
7272:'ヤマハ発動機',
6902:'デンソー'}
main()
本プログラムを実行すると、下図のように株価データをcsvファイルでも保存します。

以上
<広告>
リンク