現役エンジニア (メーカー勤務10年 → 某大手電機会社 勤務)
子供の頃RPGツクールに触れて独学でプログラミングを習得
AI研究、ゲーム、キャンプが生きがい
暑さも一段落したと思ったらまた暑くなってきて溶けそうなこの頃、
このブログのカテゴリで「IT技術」を作っている割にはIT技術の記事が無いな・・・と思っていまして
ネタ探しにごそごそ数年前いじっていた個人的に作ってたソフトを漁っていたら
ディープラーニングを利用して株価を予想しようとして半ばまで作っていたものがありました。
ちょうど良かったのでいい感じのところまで完成させてしまって
このブログの中で現実的に株価予測が可能かを検証してみようと思います!
注意点
ここではあくまでネットで公開されている文献を参考に個人的にいろいろがんばって
株価予測ができないかを試行錯誤している過程を記載しているだけとなります。
本ブログの株価の予想が外れたりしたことによって不利益等が生じた場合には
一切責任を持ちません。
株価予測できないもんかな~、と試行錯誤しているだけですので
そこらへんはよろしくお願いします!
参考情報
古めの文献ですが基本的に下記を参考にモデルを作成しています。
ニューラルネットに学習させるとき株価情報をどのように扱えばいいか考えられていて
すごく興味深いです。
「ニューラルネットを用いることによる 株価予測への有効性について」
参考文献ではディープラーニングを利用していませんが
データの特徴検出を除けば基本的に同じフローです。
ディープラーニングのモデル
この記事で説明しているディープラーニングのモデルは
畳み込みニューラルネットワーク(CNN)となっており下図の2層構造になってます。
入力データに関しては、文献によれば入力データは 2日間の株価変動率を用いるのが有効的と
示されているので、それにならって終値に対する10個の株価変動率値を用います。
それを各フィルタを通してニューラルネットに入力される320個の学習用データとなります。
また教師データは
- 株価変動率1.0超過:株価上昇確信度1、株価下降確信度0
- 株価変動率1.0以下:株価上昇確信度0、株価下降確信度1
としています。
ニューラルネットは中間層を2層、出力層のニューロンを2つ持っています。
それぞれ全結合されているごくごく標準的なものですね。
(中間層が2層ってディープラーニングと言えるんですかね・・・?)
最初の検証なので構造自体は簡単なものとなってます。
(簡単じゃないと扱える気がしない)
使用したデータ
今回学習に使用したデータは下記5銘柄の過去2年分の終値データとなります。
銘柄コード | 銘柄名 |
7065 | ユーピーアール |
7167 | めぶきフィナンシャルG |
7238 | 曙ブレーキ |
7453 | 良品計画 |
7458 | 第一興商 |
業種は「輸送用機械」に限定し、そこから銘柄を選んでいます。(銘柄コード7000~7499)
業種と銘柄選定は無作為で選んでいて意図はありません。
(参考文献によれば同じ業種からサンプリングすると予測精度が向上するとのことだったので。)
データをどう選ぶかも予測精度に影響が出そうですが
何はともあれまずは実験。
ディープラーニングによる予想と結果
ではこれらの学習データによる学習を1000[回]させたモデルを使って予想した内容を記載します。
とりあえず 2021/08/30~2021/09/03 の一週間分の終値の上昇/下降予測と結果を記載していきます。
結果は随時更新予定です!
出力にある確信度はまだ取り扱いが分かっていないので
データを集めて分析する必要がありそうです!
2021/08/30 の予想
【銘柄コード:7065】
⇒ 予測:下降 結果:下降 あたり!
【銘柄コード:7167】
⇒ 予測:上昇 結果:上昇 あたり!
【銘柄コード:7238】
⇒ 予測:下降 結果:上昇 はずれ
【銘柄コード:7453】
⇒ 予測:上昇 結果:上昇 あたり!
【銘柄コード:7458】
⇒ 予測:下降 結果:下降 あたり!
2021/08/31 の予想
【銘柄コード:7065】
⇒ 予測:下降 結果:下降 あたり!
【銘柄コード:7167】
⇒ 予測:上昇 結果:下降 はずれ
【銘柄コード:7238】
⇒ 予測:上昇 結果:下降 はずれ
【銘柄コード:7453】
⇒ 予測:下降 結果:下降 あたり!
【銘柄コード:7458】
⇒ 予測:下降 結果:下降 あたり!
2021/09/01 の予想
【銘柄コード:7065】
⇒ 予測:下降 結果:上昇 はずれ
【銘柄コード:7167】
⇒ 予測:上昇 結果:上昇 あたり!
【銘柄コード:7238】
⇒ 予測:下降 結果:上昇 はずれ
【銘柄コード:7453】
⇒ 予測:下降 結果:上昇 はずれ
【銘柄コード:7458】
⇒ 予測:上昇 結果:上昇 あたり!
2021/09/02 の予想
【銘柄コード:7065】
⇒ 予測:下降 結果:上昇 はずれ
【銘柄コード:7167】
⇒ 予測:下降 結果:下降 あたり!
【銘柄コード:7238】
⇒ 予測:上昇 結果:下降 はずれ
【銘柄コード:7453】
⇒ 予測:下降 結果:下降 あたり!
【銘柄コード:7458】
⇒ 予測:下降 結果:下降 あたり!
2021/09/03 の予想
【銘柄コード:7065】
⇒ 予測:下降 結果:上昇 はずれ
【銘柄コード:7167】
⇒ 予測:下降 結果:上昇 はずれ
【銘柄コード:7238】
⇒ 予測:下降 結果:下降 あたり!
【銘柄コード:7453】
⇒ 予測:下降 結果:上昇 はずれ
【銘柄コード:7458】
⇒ 予測:下降 結果:上昇 はずれ
1週間の終値上昇/下降予測の的中率
この1週間の結果をまとめると、
終値上昇/下降予測の的中率は 52[%] となりました!
サンプリングがたったの N=25 少ないですが株価予測の的中率は
大体50[%]に収束すると聞くのでそんなもんかなという感じですね。
やっぱりそう簡単には予測できなさそうです。
参考までに 上昇的中率は 約57[%]、下降的中率は 50[%] となりました。
ネットで他の人の予測結果を見てみるとやはり予測は難しっぽいです。
少しでもなにかを掴みたいなぁ・・・。
まとめ
この記事では
- ディープラーニングで株価予測の検証
- 構築したディープラーニングの構造
- 使用データや参考文献
についてまとめてみました!
もし株価予測ができるようになったら・・・。
すばらしいですねぇ~。(ゲス顔)
もう少し挑戦してみようと思います!
【2021.09.22 追記】 続きの記事を書きました!
コメント