最終更新: 2026年06月
「テクニカルだけでトレードしていると、要人発言一発で全部持っていかれる」——この経験をしたトレーダーは多いと思う。
ファンダメンタルズ分析の難しさは、扱う情報量にある。経済指標の結果・中央銀行の声明・要人発言・地政学リスク。これらをリアルタイムで追いかけ、通貨強弱に変換し、テクニカルシグナルと照合する作業は、個人トレーダーにとって現実的ではなかった。
Claude APIはこの状況を変えつつある。長文読解と推論を組み合わせた処理が得意で、要人発言のニュアンス分析や経済指標の文脈解釈において、実用レベルの精度が出せる。本稿では、そのプロンプト設計から自動化実装まで、筆者が実際に動かした手順を整理する。
なぜClaudeがFXファンダメンタルズ分析に向いているのか
2025〜2026年にかけて複数のLLMを比較した経験から言うと、ファンダメンタルズ分析では各モデルに異なる強みがある。
- GPT-4o系: 複数ニュースの相関分析・構造化JSON出力
- Claude Opus/Sonnet系: 長文の要人発言・声明文の文脈読解、日本語出力の自然さ
- DeepSeek系: 高頻度呼び出し時のコスト効率
筆者がClaudeを中心に据えているのは、「重要度の低いノイズを自動的に割り引いて核心を抽出する」という文脈理解の精度が高いためだ。FOMCの声明文やECBドラギ議長(当時)のような修辞的な文章から、実際の政策方向性を抽出する作業に強い。
学術的な裏付けとしては、arXiv: 2510.15929(Teles & Figueiredo, 2025)が、LLMは古典的な感情分析モデルよりも金融ニュースの感情分類で高い精度を示すことを報告している。ただしモデル間の性能差は存在し、タスク特性による選択が重要だ。
免責: LLMを用いたファンダメンタルズ分析は、判断の参考情報を提供するものです。分析結果が正確であることを保証せず、投資損益を予測するものでもありません。
基本設計:ファンダメンタルズ分析パイプライン
全体の流れを整理する。
経済カレンダー / ニュースフィード
↓ スクレイピング or RSS取得(Python)
テキストデータの前処理
↓
Claude APIへのリクエスト(プロンプト設計)
↓
構造化された分析結果(JSON)
↓
MT5 EAへのシグナル送信 / ダッシュボード表示
各ステップで「プロンプト品質」と「入力データの構造」が精度を決める。
プロンプト設計:4つのシーン別テンプレート
シーン1:経済指標の即時評価
発表直後の指標結果をスコアリングする。「-10〜+10スコア」による数値化が重要で、これによってAIの曖昧な回答を排除し、MT5のEAがパース可能な出力にする。
あなたは為替市場専門のマクロ経済アナリストです。
以下の経済指標発表を分析してください。
指標: {指標名}
発表値: {発表値}
予想値: {予想値}
前回値: {前回値}
以下のJSON形式で回答してください:
{
"score": -10から+10の整数(+が対象通貨に強気、-が弱気),
"rationale": "100字以内の根拠説明",
"time_horizon": "immediate/short/medium(影響の持続時間)",
"risk_note": "リスク要因があれば記載、なければnull"
}
スコアの意味:+8〜+10が「強い強気」、+5〜+7が「強気」、-4〜+4が「中立」、-5〜-7が「弱気」、-8〜-10が「強い弱気」。
シーン2:中央銀行声明文の解釈
FOMCやECB声明文は分量が多く、トレーダーが実際に読む時間がない。
以下は{中央銀行名}の{日付}声明文です。
FXトレーダーの視点から、前回声明文と比較した際の政策方向性の変化を分析してください。
【今回の声明】
{声明文全文}
【前回の声明(比較用)】
{前回声明文}
分析形式:
1. 政策スタンスの変化(ハト派化/鷹派化/変化なし)
2. 変化のシグナルとなったキーフレーズを3つ抜き出す
3. 通貨への影響スコア(-10〜+10)
4. 今後2週間の相場へのインプリケーション(100字以内)
シーン3:要人発言のニュアンス解析
要人発言は同じ単語でも文脈・強調・語気で解釈が変わる。ここがClaudeの文脈理解が特に役立つ場面だ。
以下の発言を分析してください。
発言者: {名前・役職}
発言日時: {日時}
発言内容: "{発言全文}"
この人物の発言の文脈で、以下を評価してください:
- 実際の政策示唆の強度(1=示唆弱い、5=明確なシグナル)
- ヘッドラインと実際の意図のギャップがあれば指摘する
- 市場が過剰反応または過小反応している場合はその旨を記す
- USD/JPYへの影響方向と推定持続時間
シーン4:複数材料の総合判断
朝のシナリオ構築や週次レビューに使う。
以下の材料を総合して、{通貨ペア}の{時間軸}トレードの環境を評価してください。
【材料リスト】
1. {材料1}
2. {材料2}
3. {材料3}(以降追加)
評価してください:
- 総合的な相場の方向性バイアス(強気/弱気/中立)
- 最もリスクの高い材料(逆方向の場合の影響が大きいもの)
- 現在のトレードを推奨しない条件(これがあれば見送る、というもの)
Python実装:Claude APIを使った分析の自動化
基本実装
import anthropic
import json
client = anthropic.Anthropic() # ANTHROPIC_API_KEY は環境変数から
def analyze_economic_indicator(
indicator_name: str,
actual: float,
forecast: float,
previous: float,
currency: str
) -> dict:
"""経済指標を分析してスコアとJSON結果を返す"""
prompt = f"""あなたは為替市場専門のマクロ経済アナリストです。
以下の経済指標発表を分析してください。
指標: {indicator_name}({currency})
発表値: {actual}
予想値: {forecast}
前回値: {previous}
以下のJSON形式のみで回答してください:
{{
"score": -10から+10の整数,
"rationale": "根拠説明(100字以内)",
"time_horizon": "immediate/short/medium",
"risk_note": "リスク要因またはnull"
}}"""
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=256,
thinking={"type": "adaptive"},
messages=[{"role": "user", "content": prompt}]
)
# thinkingブロックを除いた最終テキストを取得
response_text = ""
for block in message.content:
if block.type == "text":
response_text = block.text
break
try:
return json.loads(response_text)
except json.JSONDecodeError:
# JSONパースに失敗した場合のフォールバック
return {"score": 0, "rationale": "パースエラー", "raw": response_text}
バッチ処理:複数指標の一括分析
朝のルーティンとして、その日の経済カレンダーを一括処理する例。
import time
from datetime import datetime
INDICATORS_TODAY = [
{"name": "米・非農業部門雇用者数", "actual": 256000, "forecast": 230000, "previous": 227000, "currency": "USD"},
{"name": "米・失業率", "actual": 4.1, "forecast": 4.2, "previous": 4.2, "currency": "USD"},
{"name": "日・東京CPI", "actual": 2.8, "forecast": 2.5, "previous": 2.6, "currency": "JPY"},
]
def batch_analyze(indicators: list) -> dict:
results = {}
currency_scores = {}
for ind in indicators:
result = analyze_economic_indicator(
ind["name"], ind["actual"], ind["forecast"], ind["previous"], ind["currency"]
)
results[ind["name"]] = result
currency = ind["currency"]
if currency not in currency_scores:
currency_scores[currency] = []
currency_scores[currency].append(result.get("score", 0))
time.sleep(0.5) # レート制限対策
# 通貨別の総合スコア
summary = {
cur: sum(scores) / len(scores)
for cur, scores in currency_scores.items()
}
return {"details": results, "currency_summary": summary}
if __name__ == "__main__":
analysis = batch_analyze(INDICATORS_TODAY)
print(f"USD総合スコア: {analysis['currency_summary'].get('USD', 0):.1f}")
print(f"JPY総合スコア: {analysis['currency_summary'].get('JPY', 0):.1f}")
ハルシネーション対策:LLMファンダメンタルズ分析の信頼性向上
最重要の注意点:LLMは「それらしい数値」を生成することがある。
筆者が実装した対策:
-
数値は一次情報で検証する: AIが引用した統計・数値は必ず金融庁・日銀・FRB等の公式ソースと照合する。AIのスコアは「解釈の方向性」を参考にするが、数値の事実確認は自分でやる。
-
スコアの極端な値には懐疑的になる: ±9以上のスコアが出た場合は、プロンプトを変えて再度問い合わせる。2回以上同じ極端スコアが出たときだけ参考にする。
-
逆シナリオを常に問いかける: 「この強気判断が覆る条件は何か」という質問を必ずセットで送る。これによってリスク要因の見落としを防ぐ。
-
最新ニュースへのアクセス制限を理解する: Claude APIはデフォルトでリアルタイムニュースにアクセスできない。Perplexity AIやNewsAPIと組み合わせて最新情報を先にテキストとして取得し、それをClaudeに渡す設計が現実的。
Claudeと会話しながらインジケータが作れるhedgrow-fxはこちら。
実用ルーティンの例
筆者が実際に回しているスケジュール:
| 時刻 | 処理内容 | |---|---| | 7:00 | 経済カレンダーをスクレイピング → 当日指標リストを生成 | | 7:05 | Claude APIでバッチ分析 → USD/JPY/EUR通貨別スコアを算出 | | 7:10 | スコアをMT5のEAパラメータとして渡す(フィルター条件に使用) | | 12:00 | 日中の要人発言をRSSで取得 → ランダムサンプル3件を追加分析 | | 21:00 | 米国指標後のシナリオ再評価 |
このルーティンを回し始めてから、「ファンダメンタルズ的に逆風の局面でテクニカルに乗ってしまう」ミスが減った。テクニカルとの矛盾を事前に検知できるようになったためだ。ただし、この分析が収益を保証するわけではなく、あくまでリスク管理の一要素として位置づけている。
よくある質問(FAQ)
Q: Claude APIだけでリアルタイムニュースを取得できますか?
A: デフォルトではできない。NewsAPI、Bloomberg API、あるいはRSSフィードで最新テキストを取得し、それをClaudeに渡す設計が必要。ニュース取得とClaude分析は別レイヤーで設計することを推奨する。
Q: ファンダメンタルズ分析のスコアをEAのテクニカルシグナルとどう組み合わせますか?
A: 筆者は「スコアが+3以上ならロングシグナルを通す、-3以下ならショートシグナルを通す、-2〜+2の場合は取引見送り」というフィルターとして使っている。AIスコアに過度な重みを持たせず、エントリーを制限するゲートとして使うのが安全な設計だ。
Q: APIコストはどれくらいですか?
A: Claude Opus 4.8で1指標分析あたり約500〜1,000トークンを使用。20指標/日を処理した場合、月間コストは数百円〜1,000円程度が目安。claude-sonnet-4-6($3/100万トークン)に切り替えるとコスト削減できるが、推論品質とのトレードオフになる。
Q: 日本語と英語どちらでプロンプトを書くべきですか?
A: Claudeは両言語で高精度な応答が可能だが、経済用語の正確な解釈には英語プロンプトの方が安定するケースがある。ただし、出力はJSONで構造化しているため、言語の影響は限定的。まずは日本語で試して、判断がおかしいと感じた場合は英語に切り替える方針でよい。
Q: LLMによるファンダメンタルズ分析は「有効」といえますか?
A: arXiv: 2510.15929の研究では、LLMは古典的手法より精度が高いと報告されている。ただし「高い精度」と「収益に繋がる」は別問題だ。筆者は現時点では「補完ツール」として使っており、LLM分析単体で取引判断を行ってはいない。
Claudeと会話しながらインジケータが作れるhedgrow-fxはこちら。
免責事項: 本記事はAI技術の活用方法に関する技術的情報提供が目的です。記載のプロンプト・実装コードはいかなる投資成果も保証しません。FX取引は元本損失リスクを伴い、損益はすべて投資家自身の責任です。LLMの出力は誤りを含む可能性があり、重要な投資判断に際してはご自身で一次情報を確認してください。
