はじめに
ChatGPTにClaude Sonnetの投資レポートを採点してもらうシリーズ、今回はその指摘を受けて実際に改善した記録です。
前回の採点は70点。「週次の振り返り資料から、個別銘柄の見直しに使える資料に近づいている」という評価でした。
今回、主要な指摘5つに対応しました。80点を狙えるところまで来たと思いますが、改善の過程でAIコーディングならではの落とし穴にもぶつかりました。
対応した5つの改善
①銘柄IDの固定化
ChatGPTから最も強く指摘されたのが、銘柄のマスク記号(銘柄A、B、C…)が週ごとに入れ替わっている可能性でした。
先週の「銘柄G」と今週の「銘柄G」が同じ銘柄を指しているかが保証されないと、時系列での比較ができません。
原因を調査したところ、コード自体は正しく設計されていました。stocks.yamlにラベルを固定し、exporter.pyもticker→labelの辞書で変換していました。
問題は、過去の実行で生成された古いデータが残留していたことでした。
コードが正しくても、staleデータが残っていれば出力は間違ったまま。しかも、7銘柄分のセクターと損益データがズレていたのに、一見するとそれっぽい数値が表示されていたので気づきにくい。
これはAIコーディングの怖さだと感じました。Claude Codeにコードを書いてもらい、テストも通り、レポートも生成される。でも、過去のデータとの整合性までは自動では検証されない。
「動いているから正しい」と思い込むのは危険です。特に金融データを扱うシステムでは、コードだけでなく、出力されたデータそのものを人間が検証する習慣が必要だと改めて感じました。
②バリュエーション分析
PER・PBR・ROE・配当性向・営業利益率・D/Eレシオの6指標を追加し、絶対基準(割安/適正/割高)とセクター平均との比較で評価できるようにしました。
これは5つの改善の中で最も実用的でした。
実際にバリュエーションを可視化してみて驚いたのは、思っていたよりも割高な持ち株が多いということです。含み益が出ている銘柄は「うまく買えた」という感覚がありましたが、PERやPBRで見ると、株価が上がった分だけ割高になっている。
ここで痛感したのは、出口ルールの必要性です。「いつ買うか」は考えても、「いつ売るか」のルールが明確ではなかった。バリュエーションが一定水準を超えたら利確を検討する、というルールを作る必要性を感じています。
③A/B/C枠の追加
各銘柄をA枠(長期コア)、B枠(準コア)、C枠(サテライト)に分類し、ダッシュボードに枠別のグループ表示を追加しました。
視覚的に「この銘柄はどの枠なのか」が把握できるので、枠の役割通りに機能しているかの検証がしやすくなりました。
例えば、C枠(サテライト)の銘柄が構成比10%を占めていたら、それはサテライトの域を超えている。A枠(コア)の銘柄の配当が減少傾向なら、コアとしての適格性を再検討すべき。
枠の分類があることで、週次レポートでも「A枠は安定、C枠の銘柄Cは利確検討」のように、枠に応じた評価ができるようになりました。
④寄与度分析
ポートフォリオ全体の週間リターンに対して、各銘柄がどれだけ貢献したかを計算・表示する機能を追加しました。
寄与度 = 構成比率 × 週間騰落率。これにより、「今週のリターンは銘柄Cが+2.15%押し上げた一方、銘柄Gが-0.31%足を引っ張った」という内訳が見えるようになりました。
今後の週次レポートでどのように活用されるか、見守りたいと思います。
⑤データ定義の明記
レポート内の数値が「パーセントなのかポイントなのか」「終値ベースか」「基準日はいつか」を毎回明記するよう、Sonnetへのプロンプトに指示を追加しました。
これも④と同様、次回以降のレポートでの反映を確認していきます。
改善して見えてきた次の課題
5つの指摘に対応して、レポートの実用性はかなり上がりました。ただ、改善するほどに次の課題が見えてきます。
出口ルールの必要性
バリュエーション分析で「割高」と判定された銘柄がある。でも、割高だからといって機械的に売るわけにはいかない。優待の価値、配当の持続性、成長の期待。これらを含めた出口ルールを、投資仮説に基づいて策定する必要があります。
このルール策定にもAIを活用できないか。「この銘柄のPERが25を超え、配当利回りが2%を下回ったら利確を検討する」のような条件を、銘柄ごとに設定していく。これは次のステップとして取り組みたいテーマです。
改善サイクルをどこまで回すか
ChatGPTに採点してもらい、指摘を受けて改善し、また採点してもらう。このサイクルは確実にレポートの質を上げてくれます。
ただ、80点から90点への改善と、60点から70点への改善では、必要な労力が大きく違います。残りの指摘(税金・NISA、流動性、業績トレンド)は、いずれも実装コストが高い割に、週次の自動レポートとしての効果は限定的かもしれません。
「完璧なレポート」を目指すのではなく、「投資判断のきっかけをくれるレポート」で十分。そう割り切ることも大事だと思い始めています。
まとめ
ChatGPTの指摘を5つ対応しました。
最も学びが大きかったのは、銘柄IDのズレというAIコーディングの落とし穴と、バリュエーション分析で見えた出口ルールの不在です。
技術的な改善はAIの力を借りて進められますが、「いつ売るか」という判断基準は、最終的には自分で考えて設定する必要がある。AIは道具であり、投資の意思決定は人間がする。
改善サイクルを回し続けることで、少しずつ「自分だけの投資管理システム」が育っていく感覚があります。完璧を目指さず、地味にコツコツ。