アフィリエイト広告を利用しています

広告

posted by fanblog

2020年08月11日

【Pythonで株価予測 (1)】Pythonの勉強がてら、株価予測プログラムを作ってみる

pythonは全く使っていませんが、さすがにそろそろ覚えないと色々と不都合が生じてきました。
そこで、pythonの勉強がてら、株価予想のプログラムを作ってみます。というか、色々なウェブサイトから引っ張ってきて、貼り付けているだけですが。

時系列予想のライブラリとしては、Prophetを使います。
持っているデータはこんな感じ。綜合警備保障(2331)です。
2006/1/4 1810 1822 1806 1815 74000
2006/1/5 1830 1834 1810 1815 314000
2006/1/6 1845 1859 1835 1847 317900
:
2020/8/5 5010 5040 4970 5020 171600
2020/8/6 4970 5010 4940 4960 160600
2020/8/7 4975 5050 4975 5010 119500

左から、日付、始値、高値、安値、終値、出来高です。最後に空白がはいっているため、pandasで読み込んだ際、NaNの列が出来てしまいます。使うのは日付と終値だけです。

import os
import sys
import pandasas pd
from fbprophet import Prophet
import matplotlib.pyplotas plt

code = str(2331)
read_data = pd.read_csv('data/'+code, sep=' ', \
names=['ds', 'hajime', 'takane', 'yasune', 'y', 'dekidaka', 'NaN'])

# 直近500日ぐらいのデータを使用する
analysis_data = read_data.loc[:, ['y', 'ds']].iloc[-500:, :].reset_index()
analysis_data['ds'= analysis_data['ds'].str.replace('/', '-')

Maximum_value = analysis_data['y'].max()
analysis_data['cap'] = Maximum_value

model = Prophet(growth='logistic')
model.fit(analysis_data)
future = model.make_future_dataframe(periods=60, freq = 'd')
future['cap'] = Maximum_value
future = future[ future['ds'].dt.weekday < 5 ]
forecast = model.predict(future)

# 図を作成
fig = plt.figure(figsize=(20,5))
plt.plot(forecast['yhat'][:],label='Prediction ('+code+')')
plt.plot(analysis_data['y'][:],label='True ('+code+')')
plt.legend()
fig.savefig(code + '.png')

# 直近30日の平均株価に対し、予想値の上昇率を計算
Mean = analysis_data['y'].iloc[-30:].mean()
Fct_value = forecast['yhat'].iat[-1]
Rate = (Fct_value - Mean)/Mean*100
output_string = code+': ' \
+str(int(Mean))+' -> ' + str(int(Fct_value)) + ' (' + str(int(Rate)) + '%)'
if Rate > 10.0:
print('!!! ', output_string)
elif Rate > 5.0:
print('!! ', output_string)
else:
print(output_string)

2331.png
うーん、予想できているのか、いないのか。8月中はパッとしないが、9月から上がるのかな。

自分で作っているデータは出来高0の日は終値が0となっていたり(そんな銘柄は無視してもよいかとも思いますが)、株式分割・併合で不連続が生じてしまっていますので、それを修正する処理を今後加えたいと思います。











この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/10110258
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
ファン
検索
<< 2024年10月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
プロフィール
2日ぼうずさんの画像
2日ぼうず
プロフィール
日別アーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。