前回は、候補銘柄をどうAIに渡すかについて書きました。

市況データやランキング情報をそのまま投げるのではなく、AIが読みやすい形に整理する。
選べる候補の範囲を決める。
良い候補がなければ、無理に選ばず見送りもできるようにする。

ここまで作って、ようやくAIに観察対象の候補を出してもらえるようになりました。

ただ、ここで終わってしまうと、ただの一回きりのAI回答です。

画面にAIの答えが表示されて、
「なるほど、今日はこういう判断か」
と思って終わり。

これでは、あとから検証できません。

株シミュレーターとしてやりたかったのは、AIの答えを見ることだけではありません。
その判断が、その後どうなったのかを毎日残すことでした。

なので次に作ったのが、AIの選定結果を保存して、あとから確認できる仕組みです。

まず保存したかったのは、AIが何を返したかです。

観察対象にした銘柄があるのか。
見送りなのか。
見送りなら、どういう理由なのか。
候補の中から選ばれているのか。
返ってきた形式は正しいのか。

AIは便利ですが、毎回こちらの期待通りの形で返してくれるとは限りません。

たとえば、候補にない銘柄を出してしまう。
複数銘柄を返してしまう。
理由だけを書いて、必要な項目が抜けている。
JSONとして保存したいのに、普通の文章が混ざっている。

こういうことが起きる可能性があります。

そこで、AIの回答をそのまま信用して保存するのではなく、保存前にチェックするようにしました。

選ばれた銘柄が候補リストの中にあるか。
最大1銘柄というルールを守っているか。
見送りの場合の扱いは正しいか。
保存に必要な項目がそろっているか。

このチェックを通ったものだけを、有効な結果として扱います。

もし形式がおかしければ、無理に成功扱いにはしません。
あとから見たときに「この日はAI回答が不正だった」と分かるようにしておく方が、検証としては正直です。

次に考えたのは、日ごとの運用ログです。

AIの回答そのものを保存するだけでは、まだ少し足りません。

その日が、観察対象ありの日だったのか。
見送りの日だったのか。
候補はいくつあったのか。
実際に採用した銘柄はいくつだったのか。
仮想売買として見たときの買値、売値、損益はどうだったのか。

こういう情報を日付ごとにまとめて見られるようにしました。

最初は、手入力で運用結果を残すような形も考えました。
でも、毎日続けることを考えると、手入力が多い仕組みは続きません。

できるだけAIの結果と取得済みデータをつなげて、
日次の記録として自動的に残る形にしたかったのです。

そこで、日ごとの親データと、その中の明細データを分けて保存するようにしました。

親データには、その日の状態を保存します。
観察対象ありなのか、見送りなのか。
候補数や採用数はどうだったのか。
損益の合計はどうだったのか。
補足メモはあるのか。

明細データには、実際に観察対象になった銘柄の情報を保存します。
銘柄コード、銘柄名、買った想定価格、売った想定価格、株数、損益、結果などです。

こうしておくと、あとから一覧で見たときにかなり分かりやすくなります。

日ごとの流れを見ることもできるし、
特定の日の詳細を見ることもできる。
見送りの日も、何もなかった日として消えずに残る。

この「見送りの日も残す」というのは、けっこう大事でした。

勝った日や負けた日だけを残すと、見た目の成績が分かりにくくなります。
実際には、AIが見送った日も判断の一部です。

地合いが悪いから見送ったのか。
候補が少なかったから見送ったのか。
データが足りなかったから止めたのか。

こういう日も含めて残しておかないと、AIの判断傾向は見えてきません。

また、結果を見る画面も作りました。

日次の一覧。
期間ごとのサマリ。
勝ち、負け、引き分け。
見送り。
損益の合計。
詳細を開くと、その日の観察対象が見られる。

こういう画面があると、開発中の確認がかなり楽になります。

ログがDBに入っていても、毎回SQLで見るのは大変です。
画面で一覧できるようにしておくと、日々の動きがすぐ分かります。

「今日はAIが見送った」
「この日は候補が少なかった」
「このモデルだけ観察対象を出している」
「損益がまだ確定していない」

こういう状態が見えるようになると、シミュレーターらしくなってきました。

作っていて感じたのは、AIの回答そのものより、
それをどう記録するかの方が大事かもしれない、ということです。

AIはその場ではそれっぽい答えを返してくれます。
でも、その答えが良かったのか悪かったのかは、あとから見ないと分かりません。

そして、あとから見るためには、ちゃんと残しておく必要があります。

どんな入力を渡したのか。
AIは何を返したのか。
それはルールに合っていたのか。
採用したのか、見送ったのか。
結果はどうだったのか。

この一連の流れが残って、ようやく検証になります。

株シミュレーター作りの第4段階は、AIの答えを一回きりで終わらせず、毎日の検証ログとして残す仕組み作りでした。

次回は、同じ市況データを見てもAIの性格を変えると結果がどう変わるのか、複数モデルで比較する仕組みについて書いてみます。

※この記事は、個人開発している株価シミュレーターの作業記録です。
公開されている市況情報を、個人の検証用に整理している内容です。
特定の銘柄の売買を推奨・勧誘するものではありません。
実際の投資判断は、ご自身の責任でお願いします。