見出し画像

明日の日経平均株価が陽線か陰線を予測するAIを作ってみたけど…


株式トレードに利用可能なAIを作ろう!!

今回の記事では、株式トレードに利用可能なAIを作る過程を紹介します。

作成するAIの仕様は、以下となります。

  • AIの仕様

    • 動作仕様

      • 当日までの株価、等に基づいて、翌営業日の株価のローソク足が陽線か、陰線かを予測する

    • 構造

      • 4層Affine構造

    • 説明変数

      • 日経平均株価

      • 日経平均株価 + その他

        • その他については、以下の通り

          • TOPIX

          • S&P500

          • FTSE100

          • 香港ハンセン株価指数

          • USD

          • VIX指数

          • 米10年金利

    • 目的変数

      • 陽線なら"1", 陰線なら"0"

      • 始値と終値が同値の場合は陰線とする

AI向けの学習データおよび評価データは、以前の記事で紹介したPythonプログラムにより作成しました。

Pythonプログラムについては、下記の記事を参照ください。

AIの構造

今回のAIの構造は、4層Affineとします。

4層 Affine構造 AIモデル
4層Affine構造のAIモデル

ただし、Input層のSizeパラメータ(上図では4)は、説明変数の個数により8に変更する場合もあります。

その他のパラメータは上図の通りで、変更されることはありません。

結果まとめ 説明変数の構成とAIの予測精度の関係

説明変数の構成とAIの予測精度の関係を表にしたものが、下記となります。

説明変数 予測精度 関係
説明変数の構成と予測精度の関係

最も予測精度が高かったのは、説明変数にS&P500とVIX指数を使用した場合の54.8%でした。

しかし、あまりにも低い予測精度であるため、正直驚いています。
Σ(゚д゚lll)ドコガインテリジェンス?

詳細は下記に記載しますが、今回の結論としては、説明変数にVIX指数を使用した場合が最も良い結果でした。

予測精度が同じ54.8%のS&P500は、AIの予測結果に偏りがあり、内容が良くありませんでした。

結果詳細 学習曲線と混同行列

以下に、各説明変数を使用した場合の学習曲線と混同行列を記載します。

日経平均株価のみ

下記は、説明変数に日経平均株価のみを使用した場合の学習曲線です。

学習曲線 日経平均株価
学習曲線(日経平均株価のみ)

ポイントとなるのはVALIDATION ERRORです。

基本的には、VALIDATION ERRORが低ければ低いほど予測精度が高くなります。

この条件では、VALIDATION ERRORの最小値は0.690254でした。

続いて、混同行列を以下に示します。

混同行列 日経平均株価
混同行列(日経平均株価のみ)
  • 混同行列に対する補足説明

    • y:label=0(D): 実際のローソク足が陰線であった場合を示す

    • y:label=1(U): 実際のローソク足が陽線であった場合を示す

    • y'=0: AIの予測が陰線であった場合を示す

    • y'=1: AIの予測が陽線であった場合を示す

上記の混同行列を見ると、y'=1の列にゼロが並んでいることが確認できます。

つまり、このケースでは、AIは常にローソク足が陰線であると予測していることになります。

二値分類の場合、発生確率はおよそ50%です。

このため、今回のようにAIの予測が一点張りとなることがたまにあります。

日経平均株価 + TOPIX

下記は、説明変数に日経平均株価およびTOPIXを使用した場合の学習曲線です。

学習曲線 日経平均株価 TOPIX
学習曲線(日経平均株価 + TOPIX)

この条件では、VALIDATION ERRORの最小値は0.691728でした。

続いて、混同行列を以下に示します。

混同行列 日経平均株価 TOPIX
混同行列(日経平均株価 + TOPIX)

このケースでも、y'=1の列にゼロが並んでいることが確認できます。

日経平均株価 + S&P500

下記は、説明変数に日経平均株価およびS&P500を使用した場合の学習曲線です。

学習曲線 日経平均株価 S&P500
学習曲線(日経平均株価 + S&P500)

この条件では、VALIDATION ERRORの最小値は0.687338でした。

続いて、混同行列を以下に示します。

混同行列 日経平均株価 S&P500
混同行列(日経平均株価 + S&P500)

このケースでは、y'=0およびy'=1の列にゼロ以外の数値が並んでいることから、AIが陰線、あるいは、陽線とする予測を行ったことが確認できます。

また、y:label=0(D)かつy'=0が27であるのに対して、y:label=0(D)かつy'=1が99と多くなっています。

これは、実際のローソク足が陰線である場合において、AIが正しく陰線と予測した回数が27であり、誤って陽線と予測した回数が99であることを意味しています。

一方で、実際のローソク足が陽線である場合は、正解が110, 誤りが14ですので、こちらは問題ありません。

以上の結果から、このAIは陰線を予測する精度が低いと考えられます。

日経平均株価 + FTSE100

下記は、説明変数に日経平均株価およびFTSE100を使用した場合の学習曲線です。

学習曲線 日経平均株価 FTSE100
学習曲線(日経平均株価 + FTSE100)

この条件では、VALIDATION ERRORの最小値は0.685979でした。

続いて、混同行列を以下に示します。

混同行列 日経平均株価 FTSE
混同行列(日経平均株価 + FTSE100)

このケースでは、陽線を誤って陰線と予測することが多いことが分かります。

日経平均株価 + 香港ハンセン株価指数

下記は、説明変数に日経平均株価および香港ハンセン株価指数を使用した場合の学習曲線です。

学習曲線 日経平均株価 香港ハンセン株価指数
学習曲線(日経平均株価 + 香港ハンセン株価指数)

この条件では、VALIDATION ERRORの最小値は0.691573でした。

続いて、混同行列を以下に示します。

混同行列 日経平均株価 香港ハンセン株価指数
混同行列(日経平均株価 + 香港ハンセン株価指数)

このケースでは、AIの予測が陰線の一点張りとなっています。

日経平均株価 + USD

下記は、説明変数に日経平均株価およびUSDを使用した場合の学習曲線です。

学習曲線 日経平均株価 USD
学習曲線(日経平均株価 + USD)

この条件では、VALIDATION ERRORの最小値は0.692376でした。

続いて、混同行列を以下に示します。

混同行列 日経平均株価 USD
混同行列(日経平均株価 + USD)

このケースでも、ほぼ、AIの予測が陰線の一点張りとなっています。

日経平均株価 + VIX指数

下記は、説明変数に日経平均株価およびVIX指数を使用した場合の学習曲線です。

学習曲線 日経平均株価 VIX指数
学習曲線(日経平均株価 + VIX指数)

この条件では、VALIDATION ERRORの最小値は0.688517でした。

続いて、混同行列を以下に示します。

混同行列 日経平均株価 VIX指数
混同行列(日経平均株価 + VIX指数)

このケースでは、AIの予測が割と陰線と陽線に均等に散らばっていることが確認できます。

着目すべきは、下記の2点です。

  • 実際のローソク足が陰線の場合に対して、AIの予測が陰線66, 陽線60で、陰線の方が多い

  • 実際のローソク足が陽線の場合に対して、AIの予測が陰線53, 陽線71で、陽線の方が多い

予測精度(Accuracy)としては、S&P500の54.8%と同じですが、AIの質? としては、こちらの方が上だと考えます。

日経平均株価 + 米10年金利

下記は、説明変数に日経平均株価および米10年金利を使用した場合の学習曲線です。

学習曲線 日経平均株価 米10年金利
学習曲線(日経平均株価 + 米10年金利)

この条件では、VALIDATION ERRORの最小値は0.691005でした。

続いて、混同行列を以下に示します。

混同行列 日経平均株価 米10年金利
混同行列(日経平均株価 + 米10年金利)

このケースでも、ほぼ、AIの予測が陰線の一点張りとなっています。

今後の課題

今後の課題は、間違いなく予測精度の低さです。

次回は、説明変数を日経平均株価およびVIX指数に固定し、予測精度の向上を図る検討を行いたいと思います。

いいなと思ったら応援しよう!