🌐

JQuants APIを用いて日本最大の株式分析コンペで準優勝した決算評価モデルを動かす方法

2022/09/16に公開

はじめに

こちらは先日行われたマケデコ(discord: https://discord.com/invite/xg6P5RXwaa)のキックオフイベントで行ったセッションの内容を補足するブログです。こちらマケデコ内でセッションに参加できないが、資料を公開してほしいというリクエストを受け、北山の発表部分について記載しました(UKIさんのAsk me anythingセッションは残念ながら公開予定はないです)。

https://mkdeco.connpass.com/event/259046/

本セッションでは、 J-Quants API ベータ版を使用して、J-Quantsファンダメンタルズ分析チャレンジで第2位を受賞されたUKIさんのモデルを動かしてみた という題名で、Notebookを実行してモデルを動かしました。本ブログではこの内容について、簡単な動かし方と一緒にどのような特性を持つモデルなのかを説明していきます。このようなトピックを多数扱っておりますので、ご興味あればDiscordコミュニティもぜひ覗いてみてください。
https://discord.com/invite/xg6P5RXwaa

今回動かすモデルについて

J-QuantsというJPX総研様が主催する、データを個人投資家に開放することでコンペやAPI活用の場所をつくるプロジェクトで2021年に開催した第一回/第二回でそれぞれ2位をとった伝説的なモデルをJQunats APIを用いて動かします。

[追記:記載忘れておりました!]モデルの詳しい説明はこちらです。個人的にはこの資料は世の中にあるさまざまなモデルの説明資料でもベストだとおもっています。それくらい良い資料です。
https://github.com/UKI000/JQuants-Forum/blob/main/jquants_uki.pdf

このモデルのすごいところは第一回コンペは前回の以下のブログに書いたとおり、あくまで決算後から20日以内の高値・安値を当てるモデルです。別にモデルはリターンに対して最適化しているわけではないので、このモデルがトレードをして勝てる保証というのは普通に考えたらなにもないわけです。
https://zenn.dev/gamella/articles/eaf7fe5a96bdf0

しかし、このモデルは第2回のライブでフォワードテストを行うトレーディングコンペでも準優勝してしまいました。これはいったいどういうことなのかをまず説明します。

株式のリターンをターゲットに利用しない手法

端的に言うと、株式のリターンそのものではなく、リターンに対して別のプロキシーを用いて収益を狙う方法というのは古来からある王道に属する投資手法です。というのも、リターンそのものを予測対象にするというのは、一見直接的にターゲットを設定しているように見えます。しかし、この手法を機械学習で利用すると、どうしても過学習しやすい、かつ学習期間と予測期間の環境の変化に弱くなる傾向があります。これはリターンというほぼランダムウォークに近いものを追いかける以上、大量のノイズやデータパターンの変化の中で、どうにかしてモデルがパターンを見つけてしまうことにより起きがちです。

この問題を防ぐために、かなり昔から、株式のリターンをターゲットにせず株価に対するプロキシーを設定して、そのプロキシーを予測するような様々なクオンツモデルが考案されてきました。例えば来季の営業利益を予測するモデルなどがそれに該当します。来季の営業利益が予測できれば、よい営業利益を出しそうな企業に投資することで株式のリターンを上げるアプローチです。これは、在庫・資本回転率に着目するようなモデルなど、様々な秘蔵モデルをそれぞれのアクティブファンドが持っていたりします。

つまり、株価に関係があると思われるプロキシーを予測することで収益を狙うアプローチの一種と考えることができるのです。この手法はもちろん欠点があります。それはプロキシー自体が陳腐化する可能性です。例えば一時期ROIやROAは内閣府などのレポートでも目標に利用され、とても注目されました。この時期ROIをプロキシーにしたモデルというのは高い収益率を誇りました。しかし、市場におけるテーマが移り変わると、ROIに着目した予測モデルというのは残念ながら効果が減衰していきました。

このモデルのすごさについて

今回のモデルは決算の良し悪しをプロキシーにして株価を予測しようというアプローチです。決算の良し悪しは決算発表日の終値からの高値で計算してますので、決算発表日の終値で購入することは決算時点では不可能なので、厳密にはトレード可能であることは保証されません。しかし、その分、決算の良し悪しという観点では極めて正確にその決算を評価することが出来、実際に発生した高値のランキングとモデルが予測した高値のランキングで相関係数0.5-0.6近辺で正解することができています。これは決算の評価モデルとしても非常に優秀です。

さて、このモデルが手元で動くと何がうれしいのでしょうか?

基本的には、このモデルはここまでの考え方を整理すると、いわゆる業績が重視される相場環境でワークすると思われます。業績が良いときに相場が伸びる時であれば、良い決算を探すことはリターンの源泉になりますので、逆にいわゆる金融相場ではワークしないとも考えられます。これは決算という単一の現象にフォーカスしている以上、どうしようもない制約です。

シンプルに直近100-200銘柄の決算で最も良かった銘柄を見るというような使い方も出来ますし、そもそもこの銘柄が良いスコアを過去にだしていたかという時間軸方向の利用もできます。また、決算が悪い銘柄はトレード対象から外すというネガティブスクリーニング的な利用方法も考えられます。決算という単一の現象にフォーカスしておりますので、とても使い勝手がよいモデルです。

モデルの基本的な動かし方

ちょっと余談が長くなりすぎましたが、ここからいよいよ本編に入ります。

JQuants APIの登録

まずはJQuants APIを登録し、リフレッシュトークンを取得する必要があります。ベータ終了後には、有料化を予定しているそうですが、現時点では無料で動かすことが出来ます。

https://jpx-jquants.com/#jquants-api

Google Colaboratoryで動かす

マケデコのDiscordに参加し、 分析共有 チャンネルに9月15日に記載したURLにサンプルのURLと動かし方をまとめさせていただきました。
https://discord.gg/xg6P5RXwaa

なお、このモデルを今度は毎日動かしたいと思ったらと、残念ながらGoogle Colaboratoryによる定期実行はColabo Pro+のような有料サービスとなります。ですので、Google Colaboratoryを毎日ブラウザから起動する方法があります。Colabo Pro+は月額5243円とかなり高額ですので、このあたりのNotebookの定期実行に関しては、なにか良い方法がないかコミュニティでも話したいと思っています。
https://colab.research.google.com/signup

モデルのパフォーマンスと活用方法

モデルの評価としては、JQuantsのコンペの評価方法と一緒で未来の高値に対する順位相関で評価してみます。

まず、2020年末迄の学習モデルを2021年の決算に適用し、毎日直近400銘柄の決算に対して高値の順位相関を計算すると平均で0.44の順位相関を引き続き達成しております。極めて安定的に決算の評価ができるモデルです。

2020年末迄の学習モデルを2021年の決算に適用し、毎日直近50銘柄の決算に対して高値の順位相関を計算すると平均で0.42の順位相関を達成。直近50銘柄でも同様の性能がでるのであれば、直近決算の評価だけでも利用できる可能性が示唆されています。

決算後の高値を予測して順位相関0.44/0.42がライブで安定的に出るというのは今後も 決算評価のモデル として安定的な結果期待できると想定されます。

良好な決算を発見できる前提に立った上で、本モデルをベースに以下のような拡張が考えられると思います。。

  • 良好な決算が織り込まれなかった銘柄の探索
    モデルが出した決算の予測が初日に織り込まれなかった場合、市場が良い決算を見逃したとみなして指値でエントリーを入れる

  • 高値予測 / 安値予測でリスク・リターンの最大の銘柄でトレード
    現状は高値予測・安値予測を行っているので、これをリスク・リターンで最大化させるロジックを組んで、シグナル化する

  • 良好な決算 x テクニカルのアンサンブル
    良い決算を見分けることができるようになったら、テクニカルモデルとアンサンブルでエントリーポイントを探す

このあたりは、ご興味あれば、ぜひDiscordコミュニティ内で活用方法について議論をできればと考えております

最後に

次回セミナーとしては、過去のJQuantsで作った株式分析チュートリアルを説明する初心者向けセミナーを考えています。

https://mkdeco.connpass.com/event/259946/

また、大好評だったUKIさんへのAsk me anythingは、次回はUKIさんからの指名でで為替/株/仮想通貨の予測モデルを作っているよしそさんへ実施予定です。こちらもご興味あれば、ご参加ください。

https://mkdeco.connpass.com/event/260785/

この株式分析チュートリアルは過去にsmlyさんなどのKaggle GMからもお褒めいただいたチュートリアルで、株式分析を行う様々ないろはを詰め込んでおりますので、ご興味あればぜひご登録ください!

https://twitter.com/smly/status/1355763675882168320

Discussion