見出し画像

AIの指示通りに株式トレードをやってみた 二値分類 ジャストアイデア編


AIの指示通りに株式トレードのバックテストを行った結果…

前回の記事では、日経平均株価の過去データを使用して、予測精度が74.0%のAIモデルの指示通りに株式トレードのバックテストを行った結果をお伝えしました。

2024年2月から4月の3カ月間で、1株単位での売買と仮定した場合に、1,778円の損失でした。

詳細は、下記の記事を参照ください。

バックテストの結果が不調に終わった要因

バックテストの結果が不調に終わった要因は、私が作成したAIモデルに問題があり、予測精度を株式トレードに活かしきれなかったためでした。

私が作成したAIモデルは、当日の日経平均株価の終値に対して、翌営業日の日経平均株価の終値が上がるか下がるかを予測するものです。

また、AIモデルの説明変数には、日経平均株価の4値(始値高値安値終値)に加えて、VIX指数を使用しています。

このため、私が作成したAIモデルの予測には、当日の日経平均株価の4値とVIX指数の確定が必須条件です。

  • 各数値が確定するスケジュール(時間は日本時間)

    • 当日の15:00に日経平均株価の4値が確定

    • 翌日の05:00(サマータイム) or 06:00以降にVIX指数が確定

このタイミングで、AIモデルの予測を知ることができるのですが、既に前日の終値で買い or 空売りを行うことは難しい状態です。

ちなみに、難しいとしたのは、状況によっては可能であり、それを利用した方法が前回の記事となります。

要するに、AIモデルの予測精度を実際の株式トレードに活かすことが難しいのです。

それならば、株式トレードができるようなAIモデルを作れば良いじゃないかということで、再検討を始めました。

しかし、現状、予測精度を上げることができていません。

そんな状況下で、ふと、あるアイデアを思いつきました。

今回は、そのジャストアイデアに対する結果を記事にすることにしました。

ジャストアイデアによる株式トレードのアルゴリズム

私のジャストアイデアによる株式トレードのアルゴリズムは、以下の通りです。

  • 株式トレードのアルゴリズム(買いの場合)

    • 当日に買いの成行注文(引け: 終値)を入れる

    • 確定した推論値が0.5以上(翌営業日の日経平均株価の終値が当日の終値より上がると予想)の場合は、翌営業日に成行注文(引け: 終値)で決済する

    • 確定した推論値が0.5未満(翌営業日の日経平均株価の終値が当日の終値より下がると予想)の場合は、翌営業日に成行注文(寄付: 始値)で決済する

  • 株式トレードのアルゴリズム(空売りの場合)

    • 当日に空売りの成行注文(引け: 終値)を入れる

    • 確定した推論値が0.5以上(翌営業日の日経平均株価の終値が当日の終値より上がると予想)の場合は、翌営業日に成行注文(寄付: 始値)で決済する

    • 確定した推論値が0.5未満(翌営業日の日経平均株価の終値が当日の終値より下がると予想)の場合は、翌営業日に成行注文(引け: 終値)で決済する

つまり、買いの場合であれば、次の通りです。

AIモデルの予測がどうなるか分からないけど、とりあえず、当日の終値で買っておきます。

翌営業日の朝にAIモデルの予測を確認し、もし、上がるとの予測であれば、その日の終値で決済します。

この場合は、利益となる確率が高くなります。

また、もし、下がるとの予測であれば、その日の始値で決済します。

この場合は、損失となる確率が高くなると予想されます。

ちなみに、下がるとの予測の場合に終値ではなく始値で決済する理由は、その方が損失が少なくなるだろうという私の勝手な推測によるものです。

空売りの場合は、買いの逆となります。

バックテストの結果

バックテストは、簡単化のため、下記のルールに従うものとします。

  • バックテストのルール

    • 売買は1株単位とする

    • 手数料や税金、等は考慮しない

学習済みAIモデルの推論値と日経平均株価の過去データを使用して、実際に株式トレードのバックテストを行った結果を以下に示します。

  • 各列の意味

    • 推論値

      • 学習済みAIモデルの推論値

      • 0.5以上の場合、翌営業日の日経平均株価の終値が当日の終値より上がると予想

      • 0.5未満の場合、翌営業日の日経平均株価の終値が当日の終値より下がると予想

    • (不)正解

      • 学習済みAIモデルの推論が実際に正解だったのか不正解だったのかを示す

    • 買い/売りEntry

      • 当日の終値(単位は円)

    • PL

      • エントリーした株価と当日の始値 or 終値に基づいて算出された株式トレードの損益を示す(単位は円)

買いの場合

AI 株式トレード 結果 買い
AI株式トレード結果(買いの場合)

3カ月間でのAI株式トレードの損益結果は、3,283円の利益でした。

空売りの場合

AI 株式トレード 結果 空売り
AI株式トレード結果(空売りの場合)

3カ月間でのAI株式トレードの損益結果は、221円の利益でした。

念のため、次の2パターンも確認しました。

  • パターン1: 当日の終値で買い、翌営業日の終値で売る

  • パターン2: 当日の終値で空売り、翌営業日の終値で買い戻す

パターン1(買い→売り)

AI 株式トレード 結果 パターン1
AI株式トレード結果(パターン1)

3カ月間でのAI株式トレードの損益結果は、2,394円の利益でした。

AIモデルの予測に基づいたバックテストの結果が3,283円の利益でしたので、AIモデルによって若干の収益の改善が図られたものと私は考えます。

パターン2(売り→買い)

AI 株式トレード 結果 パターン2
AI株式トレード結果(パターン2)

3カ月間でのAI株式トレードの損益結果は、2,394円の損失でした。

ちなみに、私はやってみるまで気がつきませんでしたが、パターン2は、パターン1の逆の結果となります。

AIモデルの予測に基づいたバックテストの結果が222円の利益でしたので、こちらもAIモデルによって収益の改善が図られたものと私は考えます。

また、応用編として、当日の終値で買いと空売りを同時に実行しておき、AIモデルの予測に基づいて、それぞれの建玉を処理することも可能です。

この場合、3カ月間のAI株式トレードの損益結果は、3,504円の利益(3283円 + 221円)となります。

個人的には、今回のジャストアイデアに基づく株式トレードは、AIモデルの予測精度を活かすことができているように感じています。

バックテスト向けに作成したExcelファイル

今回のバックテスト向けに作成したExcelファイルを以下に添付します(zip形式で圧縮しています)。


この記事が気に入ったらサポートをしてみませんか?