Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JPX Tokyo Stock Exchange Prediction Award Ceremony 解法総評

tomo
November 09, 2022

JPX Tokyo Stock Exchange Prediction Award Ceremony 解法総評

JPX Tokyo Stock Exchange Prediction Award Ceremonyで発表した解法総評です。

tomo

November 09, 2022
Tweet

More Decks by tomo

Other Decks in Research

Transcript

  1. 解法総評 Alpacaで入賞者(9位の方は資料が未提出)の手法を確認させていただき、分類を実施致し ました。我々目線で興味深かったアプローチをご紹介させていただきます。 2 解法の種別 該当するユーザー 総評 シンプルなモデル 1位 2位

    3位 6位 7位 8位 今回のコンペでもっとも多かった解法。この時期にワー クした特徴量に対して強い相関を持つモデルになって いたと考えております。 完全に問題をハック 4位 Kaggleというプラットフォームの特性を上手く利用した アプローチ。正直、これはやられたと思いました。 クオンツ的なアプローチ 5位 10位 日本株のマーケットに対する新しいアプローチとして評 価できる手法です。今回は重点的に紹介します。また、 今後マケデコのイベントでもとりあげてみたいと考えて おります。
  2. コンペの問題設定 1. モデルは毎営業日(t)に、その営業日までの終値(C_t)等のデータを入力データとして、翌営 業日の終値(C_t+1)から翌々営業日の終値(C_t+2)までの変化率(r_t+1)の上位200銘柄と 下位200銘柄を予測します。 r_t+1 = (C_t+2 - C_t+1)

    / (C_t+1) 2. 予測した上位200銘柄に対して1から200位までにそれぞれ2から1の線形のウェイトをそれ ぞれの変化率に対して掛けたものの総和を計算しこれをS_upとします。 3. 予測した下位200銘柄に対して下位1から200位までにそれぞれ2から1の線形のウェイトを それぞれの変化率に対して掛けたものの総和を計算しこれをS_downとします。 4. S_upからS_downを引いた結果をR_dayとし「デイリースプレッドリターン」と呼ぶことに します。 5. デイリースプレッドリターンをpublic/private期間中、毎営業日計算し、当該期間の時系列 として取得します。デイリースプレッドリターンの時系列の平均/標準偏差をスコアとしま す。 a. スコア計算式(xはpublic/private期間の営業日): Average(R_day1-dayx) / STD(R_day1-dayx) 6. private期間の最大のスコアを獲得したカグラーが勝利となります。 3
  3. シンプルなモデルのアプローチの紹介 今回上位入賞のモデルは総じてシンプルなモデルが多かった。本イベントで紹介されなかったいくつか の解法を紹介します。 7位の方の特徴量 - 33業種ごとにモデルを学習させた - 特徴量は前営業日のOpen/High/Low/Closeのみ 33業種ごとにモデルを作成。特徴量は足元のOHLCのみ。学習するのか興味深いアプローチでちょっと 掘ってみたいと感じました。

    8位の方の特徴量 - 前営業日のOpenCloseのリターン - 10/30/50営業日のボラティリティ - 3/5/10営業日のCloseのSMA - 3/5/10/30営業日のReturn Inportanceが高いのは、3/5/10/30営業日のReturnと前営業日のOpenClose Return。 なお、実装は非常にこなれており、かなり試行錯誤の結果、このモデルに到達したことがわかります。 4
  4. クオンツモデルの概要 モデル: 勾配ブースト決定木 目的関数: 数式1のスコアを数式2に改変して利用することが最も最適なスコアとなることを発見 特徴量 - 銘柄コード - 株価自体のクロスセクションなランキング

    - 各銘柄の前2日間のリターン(これがもっとも優位な特徴量)、そのユニバースの平均 - 長期のリターン・ラグ(131取引日のヒストリカル価格リターン、25日ラグ)、そのユニバースの平均 - 過去11取引日の一日平均出来高をクロスセクションでランキング - 過去231取引日の日次リターンの標準偏差 トレーニング方法 - 1年分の学習データで次の1ヶ月を予測この1ヶ月のデータを可能な 限り多く作り、各月のコンペのスコアを計測 - 特徴量をパラメータにして、もっとも安定的に高い平均スコアを出 すモデルを選択。アンサンブルは顕著な効果は観測されなかった モデルの特徴 - 学習時にスコアの両端(top250/bottom250)のみを利用、これがもっとも効果が高いトリックになった - オプションデータのインプライド・ボラティリティは市場の平均だったため上手く特徴量として活用できなかっ たが、ここがまさに掘る価値があるところだった 7 数式1 数式2
  5. もう一つの面白いアプローチ 目標のシャープレシオ(コンペのメトリクス)を決め、ラグに対する多項式から銘柄をシミュレーションで選択す るアプローチ モデルを開発前に各日毎に 100000 回の株式の配分シミュレーションを行い、スプレッドリターンの値を変化 シャープレシオの分布を計算し、最高のシャープレシオを生み出す目標値(0.4程度)を特定 8 目標スプレッドリーターンを特定したところで、以下のような方法で投資する銘柄を選択 1.

    予測日付の各銘柄について、過去n日間のラグ(n=3,4,5,6,7)のデータを取得 2. 各ラグに対して、予測日付の2日後を予測する単純な1次多項式を計算し、決定係数を計算 3. 異なるラグに対して2で計算した決定係数で重み付けを行い、平均化を行って多項式を決める 4. 10000回のシミュレーションを行い、目標に近い値となった銘柄を選択