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の部分も理解が足りないし、まだまだ勉強が必要そうです。
コメント