はじめに
どうにか工夫して、Deep Learningを使った株価予測をやってみたいと考えてこの記事を書くことにしました。
この記事では、株価予測に使うデータを「yahoo finance」からプログラムでダウンロードしてくることを目的に書いています。
ちなみに、どういったモデルで株価を予測するのかについてはまだ未定で、これから考えて行きたいと思っています。いいアイディアがやオススメの手法がある方は教えていただけるとありがたいです。
では、やっていきたいと思います。
対象データ
今回の入手先は、「yahoo finance」です。
対象は、カブサポから上場銘柄一覧のcsvファイルがダウンロードできるので、その中の東証一部に絞ってデータを取ってきたいと思います。
ダウンロードできる期間は、2010〜現在までです。
コード
import requests
import io
import re
import pandas as pd
cols = ['Id', 'Date', 'Open', 'High', 'Low', 'Close', 'Adj_Close', 'Volume']
stock_data = pd.DataFrame(columns=cols)
code_list = pd.read_csv('stock_code_list.csv') # カブサポから入手したファイル
code_list = code_list[code_list['市場名'] == '東証1部']['銘柄コード']
for code in code_list:
url = 'https://query1.finance.yahoo.com/v7/finance/download/{}.T?period1=1262304000&period2=1589241600&interval=1d&events=history'.format(code)
res = requests.get(url)
if res.status_code != 200:
print('NotFound:', code)
else:
stock = pd.read_csv(io.StringIO(res.text))
stock['Id'] = code
stock_data = pd.concat([stock_data, stock], ignore_index=True, sort=False, keys=cols)
print('OK:', code)
これで、ダウンロードできました。
データサイズは約500万行ありました。
おわりに
これでデータを入手できたので、次は予測アプローチを考えて行きたいと思います。
個人的には、ただ翌日の株価が上がるか下がるかとかではなく、もっと個人投資家向けに
上昇トレンドや下降トレンドを検知するようなプログラムができたらなと考えています。
また、定性データも加えられたら精度も上がるかもと考えています。
いいアイディアがあればください、、、
こんな感じで、ちょこちょこ書いていきたいと思います。