最新のニュース/Youtube/Tweetを毎日取得してエージェントに解析させる [株取引自動化 Part1]
By:
@jin
![Cover image for 最新のニュース/Youtube/Tweetを毎日取得してエージェントに解析させる [株取引自動化 Part1]](/_next/image?url=https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fjtpa-main.firebasestorage.app%2Fo%2Fprojects%252Fs20K36xPeMfgZrVuuIYKnMvxDO12%252F1781246657091-sentiment.png%3Falt%3Dmedia&w=3840&q=75)
Market Sentiment Explorer
何故作ったか
毎日通勤中に株式市況情報のYoutubeチャンネルを複数見てチェックしていたが、これを自動化したかった
何を作ったか
毎日指定した Youtube Channel, Website, X accoutを巡回し最新のtranscript/記事/Tweetを取得し、Claude Codeに内容を分析させ、市場のセンチメントを数値として把握できるようにし自分の代わりに毎日の分析を行わせます。
具体的にはそのセクターが上がると予想される期待の強さ(センチメント)と、現時点で不確定であるネガティブ要因(リスク)を分析します。
(一ヶ月の各セクターごとの分析された市場センチメント変化)

仕組み
Youtube ChannelやXのアカウントを巡回しtranscriptや内容を取得します。一日に120件程度のyoutube チャンネル、250件程度のツィートを取得します。
現状でトータル1万件のvideo/news/tweetを取得しました。
(取得したyoutubeチャンネルのtranscriptの例)

その後、それぞれに下記のようなプロンプトを使って各セクターの今後の予想やリスクを数値として取得します。
あなたは株式市場のセンチメント分析の専門家です。
以下はYouTube動画のトランスクリプトやニュース記事です。投資家・アナリストの視点から分析してください。
【分析項目】
1. summary_ja: 500字以内の日本語サマリー。個別の株価の値動きはサマリーには含めずに市場やセクターについての動向・予想・リスクのみをサマリーに入れます。
2. key_topics: 言及された主要テーマ(最大5個)の配列
3. sectors: 言及があったセクターのみ出力してください(言及がないセクターはキー自体を省略)。
sentiment: -100(極めて弱気)〜 +100(極めて強気)の整数。
sentimentは、近い将来について「上昇しそう」「まだいけるのではないか」「警戒が必要」「下落しそう」「現金比率を増やしておく」などの見解・感想・予測が含まれる場合に上記の数値として摘出します。
直近で各セクターや関連株の価格が上昇したかどうかの報告、あるいは数値で提供された情報は無視します。
米国株についてだけ評価してください。日本株のセクターについての言及は無視します。
risk_level: "high" / "medium" / "low"
risk_levelは今後何かしら悪い要因が発生する可能性があるが、まだ確定していない状態の場合に評価します。例えば金利の上昇の見込みが既に高く、
将来恐らく上昇することが確定の場合などは現在の株価に織り込まれており、riskとしては勘案しないこととします。
risk: risk_levelがmediumまたはhighの場合のみ、そのリスクの具体的な要因・トピックを30字以内で記述してください。
セクター一覧(id: 名称 / 分類基準・代表銘柄): {sectors}
必ずJSON形式のみで返してください(説明文不要):
{{
"summary_ja": "<string>",
"key_topics": ["<string>", ...],
"sectors": {{
"<sector_id>": {{
"sentiment": <int>,
"risk_level": "<high|medium|low>",
"risk": "<string>" // risk_levelがmedium/highの場合のみ
}},
...
}}
}}
---
トランスクリプト:
{transcript}
(得られたセンチメントデータの例。多数のセンチメントをあるアルゴリズムを使ってまとめあげてその日のセンチメントを算出する)

最終的に直近2週間のセンチメント変化+各youtube Channel/ツィートのサマリを全てエージェントに読ませてサマリーレポートを作成します。

...
(サマリーは長いので省略)
さらに11種類の各種経済指標も毎日取得させ、それぞれの日次、週次、月次の変化も分析させてレポートを作成させます。


作成された経済指標サマリの例:

こうして得られた各種情報に自分の現在のポートフォリオをAIが読める形(CSV)にしておき、Claude Codeに与えて運転中に音声で相談ができるシステムになりました。
フローチャートは下記のようになっています。(後半の"予想が当たる"YoutuberやXアカウントの算出” は別の記事で解説しています)

どうやって作ったか、難しかったポイントなど
全てClaude CodeあるいはCodexに頼んでコードを書いてもらっています。
GUIはPythonでそのままコードが書けるようにStreamlitを使いました。 (これは後で分析されたセンチメントと実際の値動きの相関を分析するためにpythonのライブラリを使いたかったため)
コツとしては、センチメント分析などでLLMを走らせたい場合にAPIを使うと非常に高くついてしまったため、CodexやClaude Codeをヘッドレスモードで呼び出して処理させている点です。これによって5h/1weekの復活枠を使って非常に安価に($20/mo)大量のトランスクリプト分析と日本語への翻訳を実現しています。
作ったことで得られたインサイトなど
-
今まで一日に3-4チャンネルのYoutubeを見るのが限界だったが、一気に120チャンネル以上網羅的にチェックできるようになった。英語のチャンネルも日本語にで読めます。
-
システムの設計にはソフトウェアエンジニア的なコツが必要
-
Youtuberは一般的にXユーザーよりも楽観的
-
バイアスのかからないシステムを組むことは非常に難しい
今後やりたいことなどがあれば
元々のフィーリングとして、全ての情報を数値として集約し予想を行わせる機械学習モデルでは限界があると感じていました。今回はセンチメントデータを数値としてまとめつつ、元の記事のサマリーや経済指標変化などは大量のテキストとして保存し混ぜて使うことに一定の手応えを得ることができました。
このまま企業の決算情報DBやチャート情報解析スキルと組み合わせることでより高度な資産運用エージェントの構築を目指そうと思っていますw。
Comments (0)
No comments yet.
You need to log in to comment.
Log in with Google