前回は、市況データを集めるところで苦労した話を書きました。
日経平均、TOPIX、海外市場、為替、業種別の動き、ランキング情報など。
AIに何かを判断させる前に、まずは材料を集めて整理する必要がありました。
ただ、データを集めただけでは、まだAIには渡せません。
ここで次の壁が出てきました。
AIに、どんな形で情報を渡せばいいのか。
人間なら、画面にいろいろな表が並んでいても、なんとなく眺めながら判断できます。
「今日は地合いが強そうだな」
「この業種が買われているな」
「この銘柄はランキングに何度も出ているな」
「でも値上がりしすぎていて少し怖いな」
こんな感じで、複数の情報を頭の中でつなげて見ています。
でも、AIにそのまま表を見せるわけにはいきません。
市況データ、ランキング、候補銘柄、参考指標を、AIが読みやすい形にまとめる必要があります。
最初に考えたのは、AIへ渡す情報を固定の形にすることでした。
毎回バラバラの文章で渡すのではなく、
「今日の市況」
「ランキングの要約」
「観察対象の候補」
「注意すべき点」
のように、決まった構造にして渡す。
これをやらないと、日によってAIが見る場所が変わったり、こちらが意図していない情報を重く見たりしてしまいます。
AIはかなり柔軟に文章を読めます。
でも、柔軟すぎるからこそ、入力の形をそろえることが大事だと感じました。
このシミュレーターでは、AIに渡す前に、候補銘柄をいったん整理しています。
たとえば、ランキングに出ている銘柄を集める。
同じ銘柄が複数のランキングに出ていれば、それも分かるようにする。
現在値や騰落率、価格の時刻、出来高系の情報なども、見られる範囲でまとめる。
さらに、その日の地合いを見るために、日経平均やTOPIX、アメリカ市場、為替、VIXなどの参考情報も一緒に渡します。
AIには、個別銘柄だけを見せるのではなく、
「今日は市場全体としてどういう日なのか」
という文脈も渡したかったからです。
ここで気をつけたのは、AIに何でも自由に選ばせないことです。
AIに「良さそうな銘柄を自由に考えて」と言ってしまうと、こちらが用意していない銘柄名を出してしまう可能性があります。
それでは検証になりません。
なので、AIが選べるのは、あくまでこちらが用意した候補の中だけ。
最大でも1銘柄。
良い候補がなければ、無理に選ばず見送りもできる。
こういうルールを決めました。
この「見送りできる」というのは、けっこう大事でした。
毎日必ず何かを選ばせると、地合いが悪い日や、候補が微妙な日でも無理やり選んでしまいます。
それだと、AIの観察というより、ただ毎日どれかを選ぶゲームになってしまいます。
本当に見たいのは、AIがどの銘柄を選ぶかだけではありません。
どんな日に見送るのか。
どんな情報が足りないと慎重になるのか。
勢いがあっても危ないと判断することがあるのか。
そういう部分も含めて観察したかったのです。
もうひとつ大事だったのが、AIに渡す前のチェックです。
データが古い。
価格が取れていない。
ランキング情報が少なすぎる。
必要な参考指標が欠けている。
こういう状態のままAIを呼び出すと、AIはそれっぽい答えを返してしまうかもしれません。
人間なら「今日のデータ、なんか足りないな」と気づけるかもしれません。
でも、プログラムとして毎日動かすなら、足りないものは足りないと判定して、止める仕組みが必要です。
そこで、AIに渡す直前に最低限のチェックを入れるようにしました。
必要な指標があるか。
候補に使うデータがそろっているか。
価格が空っぽになっていないか。
その日のデータとして見てよさそうか。
問題が大きければ、AIを呼ばずに見送り扱いにします。
これは地味ですが、かなり重要でした。
AIを使う開発では、つい「どういうプロンプトを書けば賢くなるか」に目が行きます。
でも実際には、プロンプト以前に、渡すデータをどれだけ整えられるかが大事です。
AIにきれいな材料を渡す。
選んでいい範囲を決める。
返してほしい形式を決める。
データが怪しい日は、そもそも判断させない。
このあたりを作っていくことで、ようやく「毎日比較できるAIの判断」に近づいていきました。
最初は、AIに市況データを渡せば、すぐに面白い結果が出ると思っていました。
でも実際には、その前にやることがたくさんありました。
データを集める。
数値として扱えるようにする。
候補銘柄を整理する。
AIに渡す形を固定する。
選べる範囲を制限する。
結果を保存できる形にする。
データが足りない日は止める。
こうして並べてみると、AIに聞いている時間より、AIに聞く前の準備の方が長いくらいです。
でも、この準備があるからこそ、あとから結果を見比べることができます。
なぜその銘柄を観察対象にしたのか。
その日はどんな市況だったのか。
他にどんな候補があったのか。
見送りだった場合、何が理由だったのか。
こういう記録が残っていると、単なる一回限りのAI回答ではなく、毎日の検証ログになります。
株シミュレーター作りの第3段階は、AIそのものというより、AIに渡す材料の整え方を考える作業でした。
次回は、AIが出した結果をどう保存して、あとから検証できるようにしたのかを書いてみます。
※この記事は、個人開発している株価シミュレーターの作業記録です。
公開されている市況情報を、個人の検証用に整理している内容です。
特定の銘柄の売買を推奨・勧誘するものではありません。
実際の投資判断は、ご自身の責任でお願いします。