前回の記事で、Claude APIをトレードに組み込んでいる3つの機能をご紹介しました。
▶ Claude APIをトレードに組み込む3つの実用機能|月額コストと始め方
今日はその続きです。
機能1:AIがニュースを読んで、危ないシグナルを止めてくれる仕組み
これを詳しくお伝えします。
胸ちゃんです。
この記事でわかること
- なぜキーワード検索ではニュース判定に失敗するのか
- LLMに「文脈で読ませる」とは具体的に何をやっているのか
- Claude Codeに渡した実装の全体像
きっかけ:1日で支払った授業料
ある日のことです。
私のトレードシステムは、いつものようにシグナルを複数発火させました。
シグナルのロジックは正しい。バックテストでも条件を満たしていた。私はいつも通り、機械的に実行しました。
結果、全敗。
原因はあとから分かりました。その直前に、ある地政学的な大きなニュースが出ていたのです。市場はシグナルの期待と真逆の方向に動きました。
シグナルのロジックには何の問題もありません。
問題は、ニュースを読まずに機械的に実行したことでした。
「シグナルを止める仕組み」が欠けていた。
その日のうちに、Claude APIを使ったニュース判定機能を実装することにしました。
なぜキーワードマッチではダメなのか
「ニュースでシグナルを止めるなら、危ないキーワードの辞書を作っておけばいいのでは?」
最初、私もそう思いました。でも、これが機能しないんです。
たとえば、こんな英語の見出しが流れたとします。
Saudi pipeline back at full steam
(サウジのパイプライン、フル稼働に復旧)
このニュースは、関連業種のショートポジションには危険信号です。
なぜなら:
- パイプラインが復旧 → エネルギー供給が安定
- 供給が安定 → 関連業種の株価上昇要因
- その状況でショートを入れると踏み上げられる
この因果の連鎖を、キーワード辞書で表現するのは不可能です。
- 「pipeline」をブラックリスト? → 関係ないニュースで誤爆
- 「Saudi」をブラックリスト? → 毎日サウジの経済ニュースは流れてくるので、機能しません
LLMは違います。見出しを文脈で理解して、市場への波及を連鎖で判断してくれます。
人間が「これはヤバい」と直感で気づく判断を、AIが代わりにやってくれる。
ここがキーワードマッチとの決定的な差です。
実装の全体像
Claude Codeに渡した仕様を、そのまま使える形でお伝えします。
処理の流れ
- ニュース取得サービスから直近12時間のニュースを取得(最大25件程度)
- そのニュース一覧と、今日のシグナル一覧を両方Claude APIに渡す
- Claude Sonnetに「このニュースの文脈で、このシグナルは実行して大丈夫か」を判定させる
- 結果をJSON形式で受け取る
- 「危険」判定がついたシグナルは、その日は自動スキップ
Claude Codeに渡した仕様(骨子)
以下のような仕様書をClaude Codeに投げると、Pythonで実装してくれます。
目的:トレードシグナルが発火したとき、
直近12時間のニュースに基づいて「実行するか・停止するか」を自動判定する。
入力:
- 本日発火したシグナルのリスト(銘柄、ロング/ショート方向)
- 直近12時間のニュース一覧(英語・日本語の混在、最大25件)
処理:
- ニュース一覧とシグナル一覧を1つのプロンプトにまとめ、
Claude Sonnetに渡す。
- 各シグナルに対して、以下のいずれかのラベルを付けさせる:
- EXECUTE(通常通り実行)
- BLOCK(停止。理由も出力)
- BOOST(チャンスなので強めに。理由も出力)
- ラベルには確信度(HIGH / MEDIUM / LOW)もセットで出力。
出力:JSON形式。
例:
{
"銘柄A": { "label": "BLOCK", "confidence": "HIGH", "reason": "..." },
"銘柄B": { "label": "EXECUTE", "confidence": "MEDIUM" },
...
}
後処理:
- 結果をDiscordに通知。
- "BLOCK"がついたシグナルは、その日の自動実行をスキップ。
私は1行もコードを書いていません。
Claude Codeに「こういう仕組みがほしい」と仕様を渡して、実装してもらっただけです。
キャッシュでコストを抑える
重要なのは、同じニュースを何度も読ませないことです。
1日のうちに複数回シグナルが発火するたびにニュース25件を読み直すのは、APIコールの無駄遣いです。
実装上の工夫:
- 一度Claude Sonnetに判定させた結果は、JSONファイルにキャッシュ
- 同じ日の2回目のコールでは、キャッシュから返す
- ニュースが更新されたときだけ、差分を再判定
これで1日のAPIコールが数回程度に収まります。
月額¥15程度で動かせる理由がここにあります。
実際に効きました
実装翌日、さっそく機能しました。
複数のシグナルが発火したのですが、うち数件に BLOCK 判定がつきました。理由は「関連する業種で逆方向のニュースが発火中」とのこと。
実行をスキップ。
その日、該当業種は大きく逆方向に動きました。
もし実行していたら、それなりの損失になっていたはずです。
別の日には、ある業界ニュースを文脈から拾って「チャンスなので強めに」という BOOST 判定がつき、そのシグナルは想定通りに機能しました。
AIが「止める」だけじゃなく、「押す」もできる。
これがキーワードマッチでは絶対にできない仕事です。
注意点
AIの判定が必ず正しいわけではありません
Claude Sonnetは非常に優秀ですが、完璧ではありません。判定が外れるケースも当然あります。
私は確信度 HIGH の判定だけを自動適用し、MEDIUM 以下は参考情報にとどめるようにしています。
ニュースソースの選定は各自の用途に合わせて
英語ニュースは有料APIのものが多く、無料だと精度や更新頻度が落ちる傾向があります。
日本語ニュースは、NHKのRSSなど無料で取れるものもあります。
ご自身のトレードスタイルに合ったソースを探してみてください。
トレード成績を保証するものではありません
AIの判定によって損失を避けられるケースもありますが、損失が出るケースもあります。本記事は情報提供を目的としたものであり、投資助言ではありません。投資判断はご自身の責任でお願いします。
まとめ
- ニュース判定はキーワードマッチでは不十分
- LLMは因果の連鎖で文脈を理解できる
- Claude Codeに仕様を投げれば、非エンジニアでも実装可能
- 月額¥15程度でこの機能が動かせる
次の記事では、機能3(決算発表のBeat/Miss判定)の実装についてお伝えします。
決算発表直後の数分間に、AIがTranscriptを読んで判断してくれる仕組みです。
では、今日はこの辺で。
胸ちゃんでした ♡
本記事は情報提供を目的としたものであり、特定の投資行動を推奨するものではありません。投資にはリスクが伴います。ご自身の判断と責任においてご検討ください。


コメント