機械学習の株式投資で10億円を目指す!

機械学習によるデイトレ株式投資(シストレ、システムトレード)で10億円の資産形成を企んでいます。機械学習、データサイエンス、AI(人工知能)のアルゴリズムを駆使したら株式市場(マーケット)に勝つことは出来るのか?

機械学習による株式株価予測〜改善ポイント

先月末の営業日から機械学習による株価予測で実際の株は買っていません。
まだまだ機械学習で当てれているかというと到底当てれておらず、
もし今のまま機械学習が出した推論に基づき株を購入したとしても単なる半丁博打を
やっているのと変わらず、また株価特有のランダム性から逃れられずギャンブルみたい
なもんになります。

では、完全に諦めたのかというとそういうわけでもなく、いくつかのアイデアを実装
してみたりしています。

機械学習による株式株価予測〜改善ポイント

クラスタリングによる教師データの選択

よく機械学習エンジニアが「もっとデータがあれば」と言いますが、そのような話を
聞くたびに私はちょっと違うかなと違和感を感じます。「もっと妥当で良いデータが
あれば」ならもう少し理解しますが、そんな都合の良いデータが機械学習のために
準備してあるかというと大半の場合そんなことありません。そんな時に私はきまって
「じゃぁ、あと何件くらいデータが必要なの?」と聞くと、大体のエンジニアは答え
られません。とりあえず多ければ多いほど良いというだけで、そんなのは割と当たり
前の話だったりします。統計的、確率的に解釈してこういうデータがこのくらい用意
出来たらこのくらいの推論は可能になりそう。としないといけないと思っています。

前置きが長くなりましたが、今まで2017年くらいからの過去データをドンで学習させ
ていたのですが、そもそも日によって値動きのパターンって変わるのではないかと思
い、また前日のアメリカ株との相関が強いことから、それらの値を利用してクラスタ
リングして学習する過去データを選択しようと考えました。

実装としてはscikit-learnのKMeans方を用いてアメリカ株と日経225の伸び率から
4つへクラスタリングを行いました。このクラスタリングされた数値と同じ日のみ
から学習を行います。

結果としてはスコアは上がったっぽいです。「ぽい」というのは後に書くバックテスト
の話にも関わるのですが、正確にトレース出来ていません。ちゃんと差分を管理して
これをやったからこうなったというのを数値で追えないとダメです。

ランダムフォレストによる株価上昇の予測

ランダムフォレストというのは決定木系のアルゴリズムの一種で機械学習系のアルゴ
リズムで特に分類問題で頻繁に使われます。私もランダムフォレスト大好きで大半の
分類問題はランダムフォレストでやっとけば何となく推論できるじゃろ、というノリ
で使っています。

その何となく高精度に分類できるランダムフォレストを用いて翌日の株価が上がるか
下がるかを予測することにしました。始値から終値が上がっているか、下がっている
かの二値分類です。

さらにそこからランダムフォレストが上がると推論したものに対して今まで使って
いたLassoの推論結果と付き合わせてどちらも同じ推論を行なっているかを検証し
同じ推論を行なっていれば買おうという発想です。ランダムフォレストは二値分類
しているので、幾らで買うかというのが無いのでそこをLassoによる回帰で解決する
という目的もあります。

機械学習の推論結果を高めるテクニックとしましてアンサンブル学習というのがあり
まして、通常は複数モデルによるVoting(選挙)を行なって当たりの確率を上げる方法
があるのですが、今回のこの手法もアンサンブル学習の1種になるかなと思っています。

結果なのですが、現在、検証中です。混同行列(Confusion Matrix)という評価手法を
使ってTrue PositiveとFalse Positiveの件数を比較しています。今回の場合は他の
指標はあまり考慮せずTrue Positiveを増やしFalse Positiveを減らす。それだけです。

バックテスト環境の充実化

機械学習による株価予測で実はここが一番重要なのではないかと思っています。

株式投資を行う上で過去データから予測を行うのは人間がやっても機械がやっても
重要なことだと思うのですが、機械がやると過去の試行が容易にどれだけでも出来る
ことになります。

改善アイデア→モデルへの組み込み→バックテスト→評価

このサイクルを回して確率を上げていくことが重要です。

一応、今バックテスト出来るようにして答え合わせを行なっているのですが、
過去データ2021年1月、2021年2月に対して行うだけで数時間のバッチ処理となって
しまいます。またきちんと記録できておらず、行なった改善とスコアをトレースする
仕組みを構築していく必要があると考えています。

上記のような改善を行なっているのですが、過去データに対するシミュレーション
結果としてはマイナスとなってしまいます。クラスタ数やクラスタ化する要素の選択
などはまだチューニングの余地はあると考えています。

やはり機械学習による株価予測は容易ではないです。
心が折れそうですが、もう少しやってみようと思います。

*当ブログに掲載している情報はあくまで個人的な株式運用の記録であり、これらの
 情報を用いていかなる損失が発生しても責任は負いません。投資は自己責任で。