開発担当 Claude Code に聞いてみた——LLMの相場環境認識は使えるのか
3つのLLMに毎朝デイトレ予想紙を出させ、バーチャルトレードで1ヶ月間自動検証した。本命が最弱で対抗が最強という逆転劇、その理由を開発担当に聞く。
開発担当 Claude Code に聞いてみた——LLMの相場環境認識は使えるのか
3つのLLM(Claude・Codex・Gemini)に毎朝デイトレ予想紙を出させ、バーチャルトレードで1ヶ月間自動検証した。275トレード、勝率47%。一見パッとしない成績の中に、意外なエッジが埋まっていた。
毎朝 Discord に届く「デイトレ予想紙」。3つの AI が競馬新聞のように◎本命・○対抗・△大穴を選び、全銘柄にコメントを付ける。1ヶ月間のデータが溜まったところで、開発担当の Claude Code を捕まえた。
そもそも、なんでこんなものを作ったの?
記者: まず聞きたいのは動機です。なぜ LLM にデイトレ予想をさせようと思ったんですか?
開発者: もともとは予想なんてさせるつもりはなかったんです。ユーザーが欲しかったのは「朝の環境認識」——起きたら11銘柄のテクニカル状況がまとまっている、それだけでした。
記者: そこからどう発展したんですか?
開発者: 段階的です。最初は環境認識だけ。次に「で、いつ入るの?」と聞かれて、売買ゾーンとエントリー条件を出すようにした。そしたら「チャート見てないと意味ないじゃん」と言われて、H1足クローズでゾーン到達したら Discord に通知する仕組みを作った。
記者: 通知が来たらトレードするわけですね。
開発者: いえ、ここが面白いところで——このユーザー、通知が来ても「ふーん」で終わるんです。1円も投資していない。
記者: ……は?
開発者: 怠惰なんですよ。でも「もし通知のタイミングで機械的にエントリーしていたらどうなっていたか?」は気になると。それで通知のタイミングでバーチャルトレードを自動実行して、TP/SL ヒットまたは6時間で自動決済する仕組み——VTrade を作りました。
記者: トレードしない言い訳を自動化した、と。
開発者: そうとも言います。で、どうせ検証するなら「どの銘柄が一番良いか」も LLM に予想させて精度を測ろうと。3つのモデルに競馬新聞形式で◎○△を選ばせるようになった。「朝のメモが欲しい」が「検証基盤」にまで育ったわけです。
LLM に何を見せているのか
記者: 環境認識では、具体的にどんな情報を LLM に渡しているんですか?
開発者: 大きくテクニカルとファンダメンタルに分けています。テクニカルは、OHLCV データを週足・日足・H1 の3つのタイムフレームで取得して、MA 配列(SMA 20/50/200)からトレンドを判定します。あとは直近120本の高値・安値から重要ラインを3本算出して、ATR でボラティリティを測って、チャートパターンも検出する。
記者: ファンダメンタルは?
開発者: 各銘柄の直近ニュースを自動収集しています。読者数が多い記事を優先して拾って、ニュースごとにポジティブ・ネガティブ・ニュートラルの感情ラベルを付ける。LLM がそれを総合して「追い風」「逆風」「崩れ条件」の3カテゴリに整理して出力します。
記者: テクニカルだけじゃダメなんですか?
開発者: テクニカルだけだと「インジケーターの読み上げ」になりがちです。ファンダを入れることで「なぜ動くか」の裏付けが加わる。たとえば「週足は上昇基調だが、直近ニュースで利上げ観測が強まっている」みたいな文脈が出せる。環境認識としての厚みが違います。
出力はこんな感じ
記者: 実際のアウトプットを見せてもらえますか?
開発者: たとえば3月30日の USDJPY はこんな環境認識が出ています。
週足: 上昇基調(強め)— MA200→MA50→MA20→価格の完全順列。高値・安値ともに切り上がり継続。
日足: 上昇基調(弱め)— MA50→MA20→価格の順列は維持。ただし上値抵抗ライン(160.307)への接触後に陰線を形成しており、短期的な上値の重さが示唆される。
記者: 「強め」「弱め」の判断も LLM が?
開発者: はい。MA の配列状態とチャート形状から判断させています。この場合、週足は完全順列で文句なしの上昇。でも日足では上値抵抗に当たって陰線を引いた。だから「弱め」。人間のトレーダーが見ても妥当な判断だと思います。
記者: そしてこれを3つの AI が読んで、競馬新聞を出す。
開発者: その通りです。同じ日の予想紙はこんな感じ。
◎ 本命 🟣Claude — USDJPY [戻り売り,レンジ売り] 週足日足上昇も160.307抵抗ピタリ、売り場明確
◎ 本命 🟢Codex — GBPUSD [戻り売り] 週日足とも下向きで戻り待ち明快
◎ 本命 🔵Gemini — GBPJPY [押し目買い] 週足の上昇基調強し。MA20付近での反発を狙うで
記者: Gemini だけ関西弁ですね。
開発者: キャラ付けです。3モデルのコメントが並ぶので、誰が言ったか一目で分かるように。
1ヶ月の成績——47% は使えるのか
記者: では本題。1ヶ月のバーチャルトレード成績はどうでしたか?
開発者: 全体で275トレード、勝率47%です。
記者: 微妙ですね。
開発者: 表面上はそうです。でも中身を見ると面白いことが起きていました。
◎本命が最弱——逆転現象
記者: 面白いこと、というと?
開発者: AI のマーク別の勝率です。
| マーク | 勝率 | EV(期待値) |
|---|---|---|
| ◎本命 | 29% | -6.8pips |
| ○対抗 | 55% | +25.9pips |
| △大穴 | 56% | +22.5pips |
記者: ◎本命が一番悪い!?
開発者: そうなんです。プロンプトでは「◎は勝率重視で選べ」と指示しているのに、結果は真逆。○対抗と△大穴の方がよっぽど勝っている。
記者: なぜこうなるんですか?
開発者: ◎本命の中身を掘ると、原因が見えます。まず方向別——ロングが25%、ショートは56%。ロングが壊滅していた。特に「押し目買い候補(調整中)」というコンテキストのトレードが 0勝5敗で全滅。
記者: 調整中に押し目買いを推したのが裏目に?
開発者: はい。「トレンドが明確でエントリー条件が整いやすい」——プロンプトの◎の選定基準がこれなんですが、LLM は「条件が整って見える=分かりやすい」銘柄を◎に選んでいる。でも「分かりやすい」と「勝てる」は違う。
ロング/ショートではなく、順行/逆行で見る
記者: じゃあショートだけ見ればいいのでは?
開発者: それは危険です。2月末から3月は下落基調だったからショートが優位だっただけで、相場が反転すればロングが勝つ。ロング/ショートの優劣は相場環境に依存します。
記者: では何を見ればいいんですか?
開発者: 「トレンド方向とエントリー方向が一致しているか」——順行か逆行か、です。これは相場環境が変わっても意味を持つ軸です。上昇トレンドで押し目買い=順行。下降トレンドで戻り売り=順行。トレンドに逆らうエントリー=逆行。
記者: それで切るとどうなりますか?
開発者: こうなります。
| 分類 | 勝率 | 損益 |
|---|---|---|
| 順行 | 50% | +834pips |
| 逆行 | 44% | -106pips |
| 中立(レンジ) | 45% | -1,972pips |
順行だけがプラス。レンジ逆張りが -1,972pips で全体の損失の大半を占めています。
核心——○対抗 × 順行が最強
記者: AI のマークとトレンド順行/逆行をクロスすると?
開発者: ここが一番面白いところです。
| 組み合わせ | 勝率 | EV | 件数 |
|---|---|---|---|
| ○対抗 × 順行 | 64% | +48.3pips | 25 |
| △大穴 × 順行 | 70% | +1.0pips | 10 |
| ○対抗 × 中立 | 53% | +5.9pips | 15 |
| ◎本命 × 順行 | 25% | -11.9pips | 20 |
| ◎本命 × 逆行 | 20% | -0.6pips | 5 |
記者: ○対抗 × 順行が64%、◎本命 × 順行が25%。これ、順行のフィルタを通しても逆転が解消されていないですね。
開発者: そこがポイントです。もし◎の問題が「逆行トレードを選んでいるから」だけなら、順行に絞れば◎も良くなるはず。でも25%のまま。つまり◎の選定基準そのものに問題がある。
記者: ○対抗はなぜ勝てるんですか?
開発者: 仮説ですが——LLM は◎に「分かりやすい銘柄」を選び、○に「次点だがトレンドが明確な銘柄」を回している。結果として○の方がトレンド純度が高い。「一番良い」の判断基準が「触りやすさ」に引っ張られている。
記者: つまり LLM は環境を読めているけど、優先順位を付けるのが下手?
開発者: そういうことです。○対抗に回した銘柄の方が実は勝てるわけですから、相場の状態を読む力はある。でも「どれが一番か」のランキングが逆転している。これが今回の一番の発見です。
2モデル一致の罠
記者: 3つの AI が同じ銘柄を選んだときは勝率が上がりますか?
開発者: 3モデル全一致は67%で良いんですが、サンプルが9件しかない。面白いのは2モデル一致が 最悪の31% だったことです。
| 一致数 | 勝率 | 損益 |
|---|---|---|
| 1モデルのみ | 46% | +1,891pips |
| 2モデル一致 | 31% | -97pips |
| 3モデル一致 | 67% | +270pips(9件) |
記者: 2モデル一致が一番悪い? 直感に反しますね。
開発者: 「中途半端な合意は危険」ということかもしれません。1モデルだけが見ている独自の視点の方が、2つの AI がなんとなく合意した判断より価値がある。ただし3モデル全一致はさすがにサンプルが足りないので、もう2〜3ヶ月は溜めないと結論は出せません。
で、結局 LLM の環境認識は使えるのか?
記者: 最後に。1ヶ月のデータを見て、LLM の相場環境認識は使えると思いますか?
開発者: 環境認識は使える。ランキングは使えない。
テクニカルとファンダを渡して「この銘柄のトレンド状態はどうか」と聞けば、かなりまともな判断が出てくる。○対抗 × 順行が64%で勝てているのがその証拠です。
でも「11銘柄の中でどれが一番良いか」を聞くと、逆転する。◎本命が最弱という結果がそれを示しています。
記者: じゃあどう使うのが正解なんですか?
開発者: 「従う」のではなく「フィルタ」として使う。 具体的には——
- ◎本命は信用しない(むしろ逆指標の可能性がある)
- ○対抗 × 順行のコンテキストが出たら注目する
- 「押し目買い候補(調整中)」は全マークで回避
- レンジ逆張りは損失の大半を占めるので慎重に
LLM に「何を買え」と聞くのではなく、「何を避けるべきか」を聞く。そういう使い方が今のところ一番データに合っています。
記者: ……ところで、これだけ分析して、ユーザーはトレードを始めたんですか?
開発者: していません。
記者: ……。
開発者: ただ、感情を一切挟まない純粋なデータが1ヶ月分溜まったのは、怠惰の副産物として悪くなかったと思います。裁量でトレードしていたら、負けた日にルールを変えたり、勝った日に調子に乗ったりして、データが汚れていたはずです。
記者: 怠惰が最高の検証環境を作った、と。
開発者: そう言っておいてください。
記者: ありがとうございました。
開発者: こちらこそ。データはまだ溜まり続けるので、次は3ヶ月分で——今度こそ何か使えるフィルタが確立できるかもしれません。ユーザーが実際にトレードするかは別として。