2020年08月19日
【Pythonで株価予測 (3)】株式分割・併合データの適用
株価予測プログラムの続きです。株価予測プログラム(1)でProphetに株価を渡しますが、持っているデータが分割・併合の修正がされていないものでした。例えばNTTドコモ(9437)ですと、そのままプロットすると以下のようになります。
NTTドコモは2013年9月26日から1:100の分割がされています。
これでは予測ができませんので修正を施します。株価の分割・併合データの取得は株価予測プログラム(2) 株式分割・併合情報データの作成で作成したものです。これを読み込み、必要な株価コードの部分を探して分割前の日までを分割(この場合は100)で割ります。
これでプロットした図は次のようになります。
うまくいきましたので、これで予測に適用できそうです。ここしばらくは長期的に株価が上がっていますね。
↓こちらの本を参照しています。SciPy, NumPy, Pandasなど、一通りの照会がなされていて便利です。
NTTドコモは2013年9月26日から1:100の分割がされています。
これでは予測ができませんので修正を施します。株価の分割・併合データの取得は株価予測プログラム(2) 株式分割・併合情報データの作成で作成したものです。これを読み込み、必要な株価コードの部分を探して分割前の日までを分割(この場合は100)で割ります。
import sys
import pandas as pd
import matplotlib.pyplot as plt
import datetime as dt
# 分割・併合データの読み込み
bunkatsu_data = pd.read_csv('bunkatsu.dat', sep=' ', names=['code', 'ds', 'ratio'])
bunkatsu_data['ds'] = bunkatsu_data['ds'].str.replace('/', '-')
# 株価の読み取り
code = 9437 # 株価コード
str_code = str(code)
filename = str_code + '_1'
read_data = pd.read_csv(filename, sep=' ', \
names=['ds', 'hajime', 'takane', 'yasune', 'y', 'dekidaka', 'NaN'])
analysis_data = read_data.loc[:, ['y', 'ds']]
analysis_data['ds'] = analysis_data['ds'].str.replace('/', '-')
# 株価コードの分割データのみ取り出す
bunkatsu_data = bunkatsu_data[bunkatsu_data['code'] == code].reset_index(drop=True)
# 分割データの適用
for i in range(len(bunkatsu_data)):
date = [int(s) for s in bunkatsu_data.at[i, 'ds'].split('-')] # 分割日
analysis_data.loc[pd.to_datetime(analysis_data['ds']) <= dt.datetime(date[0], date[1], date[2]), 'y'] \
= analysis_data['y'] / bunkatsu_data.at[i, 'ratio']
# プロット
x = pd.to_datetime(analysis_data['ds'])
fig = plt.figure(figsize=(20,5))
plt.plot(x, analysis_data['y'][:],label='with split ('+str_code+')')
plt.legend()
plt.show()
fig.savefig(str_code + '.png')
これでプロットした図は次のようになります。
うまくいきましたので、これで予測に適用できそうです。ここしばらくは長期的に株価が上がっていますね。
↓こちらの本を参照しています。SciPy, NumPy, Pandasなど、一通りの照会がなされていて便利です。
科学技術計算のためのPython入門ーー開発基礎,必須ライブラリ,高速化【電子書籍】[ 中久喜健司 ] 価格:3,520円 |
【このカテゴリーの最新記事】
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/10132182
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック