得屋(FP2級 × AIエンジニアのブログ)

FP資格を持つAIエンジニアならではの、お得情報をお届けします

MENU

株価予想AIの作り方 データ準備編 株価データの収集~その2

f:id:mycrofton:20200912101142j:plain

目次


株価予想AIのためのデータを準備しよう

株価予想AIを作るためのデータ準備編です。

 

データ準備として、過去の株価データの収集(その2)について解説します。

株価データの収集(その1)の続きになりますので、その1をご覧になっていない方は、その1から見ていただくことをお勧めします。

 

mycrofton.hatenablog.com

 

また、株価予想AIの作り方全般については、過去記事にまとめていますので、ご確認ください。

 

mycrofton.hatenablog.com

 

プログラムを変更して好きな証券コードの株価を取得してみる

その1で作成したプログラムを変更して、自分の好きな証券コードの株価を取得してみましょう。

作成したプログラムは、以下のものでした。

 

import pandas as pd
import pandas_datareader.data as web

# stooqから指定された証券コードの株価データを取得
def get_stock_data(code):
    code_data = str(code) + '.JP'
    data = web.DataReader(code_data, 'stooq').dropna()
    data = data.sort_index() # 最新データがトップに出るので日付でソート
    return data

# 指定された株価データをcsvとして出力
def save_csv(code, data):
    filename = './data/csv/' + str(code) + '.csv'
    data.to_csv(filename, sep=',')

# main
def main():
    codes = [9997] #証券コードを指定する
    for code in codes:
        data = get_stock_data(code)
        save_csv(code, data)

if __name__ == '__main__':
    main()

このプログラムで証券コードを指定している部分は、

codes = [9997] #証券コードを指定する

という部分です。この例では、証券コード9997の銘柄を指定して株価を取得しています。

もうお分かりかもしれませんが、自分の好きな証券コードの株価を取得するためには、ここの数字を好きな証券コードに書き換えてあげるだけです。

たとえば、ソニー株式会社の過去の株価データを取得したい場合は、ソニー証券コードである"6758"に書き換えて挙げるだけです。

念のため、書き換えたコードを記載すると以下のようになります。

 

import pandas as pd
import pandas_datareader.data as web

# stooqから指定された証券コードの株価データを取得
def get_stock_data(code):
    code_data = str(code) + '.JP'
    data = web.DataReader(code_data, 'stooq').dropna()
    data = data.sort_index() # 最新データがトップに出るので日付でソート
    return data

# 指定された株価データをcsvとして出力
def save_csv(code, data):
    filename = './data/csv/' + str(code) + '.csv'
    data.to_csv(filename, sep=',')

# main
def main():
    codes = [6758] #ソニー株式会社の証券コードに変更した
    for code in codes:
        data = get_stock_data(code)
        save_csv(code, data)

if __name__ == '__main__':
    main()

好きな証券コードに書き換えたら、その1で実施したように、プログラムを実行してみましょう。

コマンドプロンプトを起動して、

python getdata.py」と入力するだけですね。

プログラムの実行方法については、その1にまとめてあるので、忘れてしまった方は、ご確認ください。

 

mycrofton.hatenablog.com

 

複数の証券コードのデータを取得してみる

これで、好きな証券コードの過去の株価データを取得できるようになりました。でも証券コードを1つずつ変更するのは面倒ですよね。

そこで、複数の証券コードの株価データを取得する方法についてもまとめておきます。

実は、証券コードを指定した以下のコードには複数の証券コードを指定することができます。

codes = [9997] #証券コードを指定する

指定する方法は、"証券コード1", "証券コード2"のように、[]のなかの数値(=証券コード)をカンマ ( , ) で区切って入力するだけです。

例を見てみましょう。ソニー株式会社とイオン株式会社の過去の株価データを取得する例を考えます。

ソニー株式会社の証券コードは"6758"、イオン株式会社証券コードは"8267"ですので、

codes = [6758, 8267] #証券コードを指定する

と変更します。

証券コードの変更ができたら、再度プログラムを実行してみましょう。

ソニー株式会社の株価データが 6758.csvイオン株式会社の株価データが 8267.csvとして取得できたのではないでしょうか。

ここでは、2社の株価データを取得しましたが、3社以上も証券コードを指定することで対応可能です。

基本的なプログラムの変更方法は以上になります。皆さんの興味に合わせて、証券コードを変更し、実際に株価を取得してみてください。

次回に向けて

次回は、株価データの収集(その3)として、取得した株価データから株価チャート(ローソク足チャート)をプログラムを使って作成する方法を紹介する予定です。次回紹介予定のローソク足チャートができたら、いよいよAIに勉強をしてもらおうと思いますので楽しみにしてください。