心ゆく日並

辛さを辛味に、苦しみを苦味に転じら れればこの日々も味わい深い

AI Python プログラム

機械学習で日経平均株価の予測できるか

更新日:

quiitaに

TensorFlowを投資につかうまで 衝撃のサンプル編 (1)
日経平均株価の予測をTensorFlowで機械学習させ精度の向上を試みた 62%から68%位になった

と言う面白い記事が載っていたので私なりに日経平均株価を予測するAIを考えてみました。

元ネタからの変更点はインデックスと株価を予測する切り口。

学習させるインデックスをいかに変更。

元ネタのインデックス
日経平均株価,Japan
Hang Seng, Hong Kong
DAX, German
Dow, US
S&P 500, US
Shanghai Composite Index (China)
BOVESPA, Brazil

今回使用したインデックス
N225:日経平均株価,Japan
DJI:ダウ平均株価,US
GSPC:S&P 500,US
IXIC:NASDAQ,US

日本を含む世界の株価はアメリカの株価で動くので、アメリカの株価のみに絞りました。

また、元ネタの株価予想はすべて終値を使って機械学習をさせていました。

しかし、その分析方法だと前々日のアメリカ市場までしか登録できず、儲かる株価予想が難しい(日本市場はアメリカ市場が始まる前に終わっているので、前日のアメリカ市場を見ずに株式を購入しないといけない)。

私は前日のアメリカ市場を見て、日経平均株価で儲けるシステムを作りたかったので、ダウ平均株価、S&P 500、NASDAQは当日終値−前日終値で計算、日経平均株価は終値−始値で計算しました。

修正箇所はgetClosing()の以下の2箇所です。

closing[index] = df["Close"]

を

if index == "^N225" :
closing[index] = df["Close"] - df["Open"]
else :
closing[index] = df["Close"].diff()

また、前日の誤差で計算するため、正規化のロジックを以下のように変更しました。

closing[index] = closing[index] / max(closing[index])
closing[index] = np.log(closing[index] / closing[index].shift())

を

xmean = closing[index].mean(axis=0)
xstd = np.std(closing[index], axis=0)
closing[index] = (closing[index]-xmean)/xstd

 

後のロジックは元と同じです。

計算期間はできるだけ長期で計算したかったので1990/01/02から2019/07/31にしました。
その結果


600 0.53569055
1200 0.5361886
1800 0.5365206
2400 0.53917664
3000 0.54000664
Accuracy = 0.48374253483742535

600 0.5360226
1200 0.5380146
1800 0.53884465
2400 0.54100263
3000 0.5469788
Accuracy = 0.47577969475779697

全然だめだ〜

tensorflowの部分も理解が足りないし、まだまだ勉強が必要そうです。

 







お・す・す・め・!

1

目次1 マコトのプロフィール1.1 自己紹介1.2 タイトルの由来1.3 サブタイトルの由来1.4 趣味1.5 ほしいも ...

-AI, Python, プログラム

Copyright© 心ゆく日並 , 2019 AllRights Reserved.