
AIの指示通りに株式トレードをやってみた 二値分類編
AIの指示通りに株式トレードのバックテストを行いました
ようやく予測精度が74.0%となるAIモデルを作成することができたので、その学習済みAIモデルの推論に従って、日経平均株価の過去データを使用した株式トレードのバックテストを行いました。
以下に、その手順を記載します。
過去データを使用したバックテストの手順
過去データを取得する
学習済みAIモデルの推論データを用意する
過去データと推論データに基づいてバックテストを行う
日経平均株価の過去データを使用した株式トレードのバックテストはExcelで行いました。
また、今回作成したExcelファイルは、本記事の最後に添付しています。
日経平均株価の過去データを取得する方法
日経平均株価の過去データを取得する方法は幾つかあります。
今回は、私が作成したPythonプログラムを使用して、日経平均株価の過去データをダウンロードし、csv形式でファイルに保存する方法を紹介します。
Pythonプログラムの詳細は、下記の記事を参照ください。
Pythonプログラムをfilename.pyというファイルに保存した場合、下記の通りに実行します。
> python filename.py --s 2024-2-1 --e 2024-4-30 --dl N225_20240201-20240430.csv
Start day: 2024-02-01
End day: 2024-04-30
[*********************100%%**********************] 1 of 1 completed
Output stock data to N225_20240201-20240430.csv
Done.
日経平均株価の過去データをダウンロードする期間を2024年2月1日から2024年4月30日としました。
また、日経平均株価の過去データは、N225_20240201-20240430.csvに保存されます。
N225_20240201-20240430.csvに保存された過去データ(一部抜粋)は、下記の通りです。

学習済みAIモデルの推論データを用意する方法
学習済みAIモデルの推論データを用意する方法は、下記の記事を参照ください。
推論データは、csv形式のファイルに保存します。
過去データと推論データに基づいてバックテストを行う
日経平均株価の過去データと学習済みAIモデルの推論データが用意できたら、下記のアルゴリズムに従ってExcel上でバックテストを行います。
株式トレードのアルゴリズム
当日の推論値が0.5以上(翌営業日の日経平均株価の終値が当日の終値より上がると予想)の場合
当日の日経平均株価の終値で翌営業日に買いの指値注文を入れる
買い注文が実行されたら、その日の終値で決済する
当日の推論値が0.5未満(翌営業日の日経平均株価の終値が当日の終値より下がると予想)の場合
当日の日経平均株価の終値で翌営業日に空売りの指値注文を入れる
空売り注文が実行されたら、その日の終値で決済する
上記の株式トレードのアルゴリズムに基づいた具体的なバックテストの処理方法は、次のようになります。
当日の推論値が0.5以上の場合、翌営業日の日経平均株価の安値が当日の日経平均株価の終値より安ければ、当日の終値で買うことができます。
また、当日の推論値が0.5未満の場合、翌営業日の日経平均株価の高値が当日の日経平均株価の終値より高ければ、当日の終値で空売りをすることができます。
今回のバックテストでは、簡単化のため、下記のルールに従うものとします。
バックテストのルール
売買は1株単位とする
手数料や税金、等は考慮しない
バックテストの結果
学習済みAIモデルの推論値と日経平均株価の過去データを使用して実際に株式トレードのバックテストを行った結果を以下に示します。
各列の意味
推論値
学習済みAIモデルの推論値
0.5以上の場合、翌営業日の日経平均株価の終値が当日の終値より上がると予想
0.5未満の場合、翌営業日の日経平均株価の終値が当日の終値より下がると予想
(不)正解
学習済みAIモデルの推論が実際に正解だったのか不正解だったのかを示す
Entry
学習済みAIモデルの推論値および株価の高値/安値に従い、買いまたは空売りでエントリーした株価を示す(単位は円)
PL
エントリーした株価と当日の終値に基づいて算出された株式トレードの損益を示す(単位は円)

3カ月間でのAI株式トレードの損益結果は、1,778円の損失でした。
当たり前ですが、100株単位でバックテストを行った場合は、177,800円の損失となります。
学習済みAIモデルの推論が正しかった場合にエントリーできた回数は16回、推論が誤っていた場合にエントリーできた回数は16回でした。
今回のAI株式トレードのアルゴリズムは、推論が正しかった場合でも必ずしもエントリーできるわけではないため、結果が損失となってしまいました。
こうなると、いくらAIモデルの予測精度を向上させても無駄になってしまいます。
従って、AIモデルの予測精度が生かされるバックテストの方法を考える必要があります。
最後に、今回のバックテストを行ったExcelファイルを以下に添付します(zip形式で圧縮しています)。