exposure-coach について
exposure-coachは複数の市場分析スキルの出力を統合し、個人トレーダー向けに株式エクスポージャーの上限、市場バイアス、行動提案を示すスキルです。入力が不足またはシグナルが競合する場合は、確信度を下げて慎重な判断を促します。
主な機能
- 018種類の市場シグナルの統合
- 02株式エクスポージャー上限の算出
- 03バイアスと市場参加状況の評価
- 04実行可能なポートフォリオ提案
- 05入力の完全性と来歴の確認
活用シーン
- 01新規ポジション前の資金配分決定
- 02週次のポートフォリオエクスポージャー調整
- 03市場シグナル競合時の方針統一
- 04大きなマクロイベント後のリスク上限再評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tradermonty/ claude-trading-skills --skill exposure-coachインストール後、Claude Code で/exposure-coachを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
requirements.txtreferences/exposure_framework.mdregime_exposure_map.mdscripts/calculate_exposure.pyprovenance_contract.pyscripts/tests/conftest.pytest_calculate_exposure.pytest_provenance_contract.py詳細
Exposure Coach
概要
Exposure Coach は、market-breadth-analyzer、uptrend-analyzer、macro-regime-detector、market-top-detector、ftd-detector、theme-detector、sector-analyst、institutional-flow-tracker の出力を統合し、統一されたコントロールプレーン上の判断を行います。このスキルは、個別銘柄の分析を始める前に、個人トレーダーが抱く「今、株式にどれだけの資金を投じるべきか?」という中心的な問いに答えます。
使用するタイミング
- 新しい株式ポジションを始める前に、適切な資金配分を判断するとき
- ポートフォリオのエクスポージャーを調整するため、各取引週の初めに
- 複数の市場シグナルが矛盾し、統一的な方針が必要なとき
- 重要なマクロ経済イベントや市場イベントの後に、エクスポージャーの上限を再評価するとき
- 市場レジーム(拡大、集中、縮小)間を移行するとき
前提条件
- Python 3.9+
- institutional-flow-tracker のデータ用の FMP API キー(
FMP_API_KEY環境変数を設定) - 上流スキルからの入力 JSON ファイル(ワークフローのステップ 1 を参照)
- 標準ライブラリ +
argparse、json、datetime
ワークフロー
ステップ 1:上流スキルの出力を収集する
統合対象スキルから、最新の JSON 出力を収集します。各ファイルは特定のシグナルの側面を示します。
| スキル | 出力ファイルのパターン | 提供されるシグナル |
|---|---|---|
| market-breadth-analyzer | breadth_*.json | 上昇・下落比率、新高値・新安値 |
| uptrend-analyzer | uptrend_*.json | 上昇トレンドに参加する銘柄の割合 |
| macro-regime-detector | regime_*.json | 現在のレジーム(集中、拡大など) |
| market-top-detector | top_risk_*.json | 分配日数、天井確率スコア |
| ftd-detector | ftd_*.json | フォロースルーデーの質(市場底の確認) |
| theme-detector | theme_detector_*.json or theme_*.json | 有効な投資テーマとローテーション |
| sector-analyst | sector_*.json | セクターのパフォーマンスランキング |
| institutional-flow-tracker | institutional_*.json | 機関投資家の純買い・純売り |
ステップ 2:エクスポージャースコアリングエンジンを実行する
上流の出力ファイルへのパスを指定して、エクスポージャースコアリングスクリプトを実行します。
python3 skills/exposure-coach/scripts/calculate_exposure.py \
--breadth reports/breadth_latest.json \
--uptrend reports/uptrend_latest.json \
--regime reports/regime_latest.json \
--top-risk reports/top_risk_latest.json \
--ftd reports/ftd_latest.json \
--theme reports/theme_latest.json \
--sector reports/sector_latest.json \
--institutional reports/institutional_latest.json \
--output-dir reports/
スクリプトは一部の入力だけでも実行できます。ファイルが不足していると信頼度は低下しますが、実行は妨げられません。
標準的なマクロレジームレポートには、ネストされた regime.confidence と、
有効な整数のコンポーネント数を含む composite.data_quality が必要です。不足または不正な
可用性メタデータ、very_low の信頼度、利用可能なコンポーネントがゼロの場合は、
重要な入力が不足しているものとして扱われます。これらはレジームスコアやバイアスに
反映されず、通常の入力不足による減点と信頼度の上限が適用されます。レポートのレジームラベルを
エクスポージャー判断に手動でコピーして、この劣化を決して上書きしないでください。
検証時の注意点: 実行のたびに、生成された JSON の inputs_provided と inputs_missing フィールドを確認してください。CLI で渡したファイルが inputs_missing に表示されている場合(たとえば、エクスポージャーエンジンが認識しなかった theme-detector JSON など)、該当する側面を劣化したものとして報告し、信頼度の上限を維持してください。CLI 引数に指定したという理由だけで、入力が取り込まれたと決めつけないでください。
theme-detector の取り込みに関する注意: theme detector は通常、themes オブジェクトを含む theme_detector_YYYY-MM-DD_HHMMSS.json を出力します。このファイルが calculate_exposure.py に認識されず、inputs_missing に theme が残っている場合、テーマの強さをエクスポージャーの上限に手動で反映しないでください。その代わりに、Exposure Coach の信頼度を上限付きに保ち、テーマの側面が取り込まれなかったことを明記し、テーマとセクターの所見は、より広範な取引ブリーフ内で別途まとめてください。
ステップ 3:市場ポジション要約を解釈する
生成されたポジションレポートを確認します。レポートには以下が含まれます。
- エクスポージャー上限 -- 推奨される株式配分の最大値(0~100%)
- バイアスの方向性 -- レジームと資金フローに基づく、グロース重視かバリュー重視かの傾向
- 市場参加状況の評価 -- 市場全体が健全な状態か、または脆弱な状態か
- アクションの推奨 -- NEW_ENTRY_ALLOWED、REDUCE_ONLY、または CASH_PRIORITY
- 信頼度 -- 入力の完全性に基づく HIGH、MEDIUM、または LOW
ステップ 4:エクスポージャーの指針を適用する
ポジションの推奨をポートフォリオのアクションに対応付けます。
| 推奨 | アクション |
|---|---|
| NEW_ENTRY_ALLOWED | 株式単位の分析を進め、新規ポジションを設定します |
| REDUCE_ONLY | 新規エントリーは行わず、相場が上昇したら既存ポジションを縮小します |
| CASH_PRIORITY | 積極的に現金比率を高め、新たな投資はすべて避けます |
出力形式
JSON レポート
{
"schema_version": "1.0",
"generated_at": "2026-03-16T07:00:00Z",
"exposure_ceiling_pct": 70,
"bias": "GROWTH",
"participation": "BROAD",
"recommendation": "NEW_ENTRY_ALLOWED",
"confidence": "HIGH",
"component_scores": {
"breadth_score": 65,
"uptrend_score": 72,
"regime_score": 80,
"top_risk_score": 25,
"ftd_score": 10,
"theme_score": 68,
"sector_score": 70,
"institutional_score": 75
},
"inputs_provided": ["breadth", "uptrend", "regime", "top_risk"],
"inputs_missing": ["ftd", "theme", "sector", "institutional"],
"rationale": "Broad participation with low top risk supports elevated exposure."
}
Markdown レポート
Markdown レポートでは、すばやく確認できる1ページの要約を提供します。
# Market Posture Summary
**Date:** 2026-03-16 | **Confidence:** HIGH
## Exposure Ceiling: 70%
| Dimension | Score | Status |
|-----------|-------|--------|
| Breadth | 65 | Healthy |
| Uptrend Participation | 72% | Broad |
| Regime | Broadening | Favorable |
| Top Risk | 25 | Low |
## Recommendation: NEW_ENTRY_ALLOWED
**Bias:** Growth > Value
**Participation:** Broad (healthy internals)
### Rationale
Broad participation with low distribution day count supports elevated equity exposure.
New positions allowed within the 70% ceiling.
レポートは reports/ に、exposure_posture_YYYY-MM-DD_HHMMSS.{json,md} というファイル名で保存されます。
リソース
scripts/calculate_exposure.py-- 入力をスコアリングして統合するメインのオーケストレーターreferences/exposure_framework.md-- スコアリングルールとしきい値の定義references/regime_exposure_map.md-- レジームとエクスポージャー上限の対応付け
主な原則
- 安全を最優先 -- 入力が不完全または矛盾している場合は、デフォルトでエクスポージャーを低くします
- レジームとの整合性 -- マクロレジームを基準とし、市場の広がりは許容範囲内で調整します
- 実行可能な出力 -- データを集計するだけでなく、常に明確な推奨を提示します
market-regime-daily の厳密な来歴検証
スコアリング前に市場の広がりと上昇トレンドを検証するには、--require-provenance --run-id daily-20261017-unique --as-of 2026-10-17T13:00:00Z --max-age-days 3 を追加します。両方のデータ生成元には同じ一意の実行 ID を指定し、それぞれが出力した正確な JSON パスを渡してください。--as-of はタイムゾーンを含む評価時点であり、ソースの営業日を上書きするものではありません。
このゲートでは、スキーマ 1.0、想定される実行 ID、評価時点以前の UTC 取得時刻、未来ではないソース日付、および設定された経過期間を検証します。デフォルトの3暦日は保守的なポリシーであり、取引所の休日カレンダーではありません。検証に失敗すると、レポート出力前に処理が停止します。成功した出力には、受け入れた来歴と検証上の制限が記録されます。任意のトップリスク/その他の入力や補助要約の日付はこのゲートの対象外です。不明な品質フラグは false のままです。レガシーモードでは、既存のスキーマが維持されます。実行 ID は整合性を確認するためのものであり、真正性や時点整合性を証明するものではありません。