人工知能で株価を予測したい人へのヒント集(1):キリの良い数値という固定観念

machine-learning

機械学習システム、いわゆる人工知能(AI)を使って株価を予測したいという人は多いだろう。筆者もこの問題に取り組み始めてから久しく、様々な手法を試してきた。

このシリーズでは、「こうすれば成功する」といった方法を紹介することは無い。私を含め、そんな美味しい話を書いてくれる人はいないし、もしいたとしても大抵は嘘である。もし本当だったとしても公開された時点で、その情報は無に帰す。

しかし、「こうすると失敗する」といった例や「こういったアプローチで取り組むのは有効」といったヒントを提示することはできるし、今後参入する人にとっても有益だろう。

これから何度かに渡り、機械学習を使って株価を予測したい人に役立つヒント集となることを想定して執筆していく。初回は時間や株価などで語られる「キリの良い数値」についてだ。

時間や株価に「キリの良さ」は無い

機械学習を使って金融市場を見ていて強く思うのが、いかに人間が自分勝手に決めた尺度で数値を切り分けているかである。

やれ「ダウ平均株価が27,000ドルを超えた」だの「ドル円が109円付近の攻防」だの綺麗な数値で切り分けることが多い。これは人間が分かりやすいからであるが、物理現象として金融市場を捉えた場合、そのキリの良さには何の必然性も無い。

勿論、こうした「キリの良さ」を特徴量として利用することは可能であり、うまくケースもある。例えば「PERが20倍を超えた」といったイベントをカテゴリ変数として利用するなどである。こればシステムトレードなどにおけるトリガーにも実際に利用されているので、こうした「キリの良さ」をモデルに組み込むことでうまくケースもある。

しかし、これだけに囚われていては人間がやっているレベルに留まる。我々がやろうとしているのは「人間を超えるシステム」であり、人間が無意識に使っている尺度に縛られていてはモデルの可能性を狭めることになる。

実際のところは、ディープラーニングなどで自動的に特徴量を探してくれる時には、こうした制限を取っ払ってくれるのであるが、それでもデータを集めて前処理を行うのは人間の作業である。自由な発想でデータを集めて加工するには、固定観念を捨てるべき時もある。(いつも捨ててしまえと言っているのではない。)

144秒足があっても良い

相場の動きに関しては日足やら1分足やら人間に分かりやすく、かつ、短い期間については既に驚くべきほど研究されている。特に日足はデータも集めやすく、まず最初に取り組みやすい間隔でもあるので、やってみると分かるがなかなか成果は出ない。

昔は大量に金融データを集めるには、スクレイピングを行ったり、場合によっては購入したりといったことが必須だったが、今はPythonのpandas_readerというライブラリを使えば簡単である。例えばStooqからなら、以下の2行でトヨタ自動車の四本値と出来高を取得できる。こんな便利な時代にいきなり日単位で予測しようとするのはお勧めしない。

from pandas_datareader import data
toyota = data.DataReader("7203.JP", data_source="stooq")

スキャルピングの世界なら1分足とかが「入門」的な位置付けになろうが、そういったものも散々研究されている。機関投資家などはもっと短い間隔でのHFT(高頻度取引)を活発に行っているので、計算資源が無い投資家がそっちに勝負を挑んでも勝つのは非常に難しいだろう。

「144秒足」というのはあくまでも例示(これも筆者からすればキリの良い数字である)だが、APIが提供してくれるチャートタイプに囚われないでデータを区切れば、未だ研究が進んでいない時間区分があるかもしれない。データの集め方や加工に工夫は必要だが、そこに多様性は生まれるし、後発であってもチャンスはある。

また、時間区分自体を学習させることも可能だし、強化学習などの手法であれば、時間の区切り自体をパラメータ化することもできる。やりすぎると計算資源が足りないが、どう工夫するかは人間の仕事である。

Pythonライブラリを学習したい人へ

ちなみにPythonで機械学習をする上で避けては通れないのが、上でも紹介したような数多のライブラリである。『Pythonデータサイエンスハンドブック』は多くの実例とともに多くのライブラリの解説がされていて筆者も辞書替わりに重宝している。

Jake VanderPlas著、菊池彰訳(2018)『Pythonデータサイエンスハンドブック
――Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習』オライリージャパン

次回:人工知能で株価を予測したい人へのヒント集(2):ノイズがノイズだとは限らない

       

この記事の著者 HAL について

金融・マーケティング分野の機械学習システム開発や導入支援が専門。SlofiAでは主に海外情勢に関する記事、金融工学や機械学習に関する記事を担当。

HAL の記事一覧 SlofiAのtwitterアカウント@slofia_finance