ポートフォリオ ストレステスト スキル
$ARGUMENTS を解析してポートフォリオ銘柄リストとシナリオを判定し、以下のコマンドを実行してください。
実行コマンド
bash
python3 /Users/kikuchihiroyuki/stock-skills/.claude/skills/stress-test/scripts/run_stress_test.py --portfolio <symbols> [--scenario <scenario>] [--weights <weights>]
引数の解釈ルール
portfolio(銘柄リスト・必須)
ユーザーの入力からカンマ区切りの銘柄リストを抽出する。スペース区切りで指定された場合もカンマ区切りに変換する。
| ユーザー入力例 | --portfolio 値 |
|---|---|
7203.T,AAPL,D05.SI | 7203.T,AAPL,D05.SI |
7203.T AAPL D05.SI | 7203.T,AAPL,D05.SI |
トヨタ アップル | 対応するティッカーに変換してから指定 |
scenario(シナリオ名・省略可)
ユーザーの自然言語入力を以下のように解釈する。省略時はClaudeがポートフォリオ構成から最も適切なシナリオを自動判定する。
| ユーザー入力 | --scenario 値 |
|---|---|
| 「トリプル安」「株安・円安・債券安」 | トリプル安 |
| 「ドル高円安」「円安」「為替ショック」 | ドル高円安 |
| 「米国リセッション」「景気後退」「リセッション」 | 米国リセッション |
| 「日銀利上げ」「利上げ」「金利上昇」 | 日銀利上げ |
| 「米中対立」「地政学リスク」「貿易戦争」 | 米中対立 |
| 「インフレ再燃」「インフレ」「物価上昇」 | インフレ再燃 |
| 「テック暴落」「AI暴落」「ナスダック暴落」 | テック暴落 |
| 「円高ドル安」「円高」「ドル安」 | 円高ドル安 |
| その他の自然言語入力 | カスタム(そのまま渡す) |
weights(保有比率・省略可)
カンマ区切りの比率リスト。銘柄数と同じ数だけ指定する。省略時は等分(各銘柄 1/N)。
| ユーザー入力例 | --weights 値 |
|---|---|
0.5,0.3,0.2 | 0.5,0.3,0.2 |
50%,30%,20% | 0.5,0.3,0.2(パーセントをデシマルに変換) |
| 省略 | 各銘柄 1/N で等分 |
シナリオ一覧
| シナリオ | 概要 |
|---|---|
| トリプル安 | 株式・為替・債券が同時下落。全資産クラスにストレス |
| ドル高円安 | 円が急落。輸入コスト増加、海外資産は円建て評価上昇 |
| 米国リセッション | 米国景気後退。グローバル需要減退、リスクオフ |
| 日銀利上げ | 日本の金利上昇。銀行株上昇、成長株・REIT下落 |
| 米中対立 | 貿易摩擦激化。サプライチェーン分断、半導体・製造業に打撃 |
| インフレ再燃 | 物価再上昇。実質購買力低下、金利引き上げ観測 |
| テック暴落 | NASDAQ -30%。AI期待剥落、テック株直撃、質への逃避 |
| 円高ドル安 | USD/JPY -20円。外貨資産の円建て評価下落、輸出企業に打撃 |
| カスタム | ユーザー指定のシナリオを自然言語で解釈 |
出力形式(10ステップ パイプライン)
結果は以下のステップで構造化して表示してください。
Step 1: ポートフォリオ概要
- •銘柄一覧(シンボル・名称・セクター・比率)
- •総時価総額(推定)
Step 2: 集中度分析
- •セクターHHI / 地域HHI / 通貨HHI
- •最大集中軸の特定
- •リスクレベル判定(分散 / やや集中 / 危険な集中)
Step 3: ショック感応度スコア
- •各銘柄のベータ・財務健全性・バリュエーション耐性の評価
- •銘柄別ショック感応度スコア(0-100)
Step 4: シナリオ定義
- •適用シナリオ名と概要
- •マクロ変数の変化(金利・為替・株式市場の想定変動)
Step 5: 銘柄別インパクト推定
- •各銘柄の推定損失率
- •集中度倍率の適用
- •ポートフォリオ加重インパクト
Step 6: ポートフォリオ全体インパクト
- •PF全体の推定損失率
- •最大損失銘柄
Step 6b: 相関分析(KIK-352)
- •銘柄間相関行列(ピアソン相関、過去1年日次リターン)
- •高相関ペア(|r| >= 0.7)の検出
- •ファクター分解: 各銘柄をマクロ変数(USD/JPY, 日経225, S&P500, 原油, 米10年金利)で回帰
- •LLM解釈: ファクター回帰で説明しきれない残差相関について、業界知識で原因を推測して補足する(例: サプライチェーン依存、同一顧客基盤等)。「確定要因(統計)」と「推定要因(推測)」を明確に分離して表示すること
Step 6c: VaR(過去データベースのリスク指標)(KIK-352)
- •過去1年の日次リターンからポートフォリオの加重リターンを算出
- •95% VaR / 99% VaR(日次・月次)
- •ストレステストのシナリオ分析(テールリスク)との違いを説明すること
Step 7: 因果連鎖分析
- •シナリオ発生時の連鎖的影響の説明
- •セクター間波及パス
Step 8: 総合判定 + 推奨アクション(KIK-352)
- •リスク軽減のための具体的提案(ルールベース自動生成 + Claude補足)
- •集中度・相関・VaR・ストレステスト結果を統合した推奨
- •ヘッジ候補銘柄・セクター
- •LLM補完: ルールベースの推奨に加えて、ポートフォリオにないセクターの候補提示、相関の定性的原因を踏まえた分散先の提案をClaudeが補足すること
実行例
bash
# 基本的なストレステスト(シナリオ自動判定) python3 .../run_stress_test.py --portfolio 7203.T,AAPL,D05.SI # トリプル安シナリオ python3 .../run_stress_test.py --portfolio 7203.T,9984.T,6758.T --scenario トリプル安 # 比率指定 python3 .../run_stress_test.py --portfolio 7203.T,AAPL,D05.SI --weights 0.5,0.3,0.2 # カスタムシナリオ python3 .../run_stress_test.py --portfolio 7203.T,AAPL --scenario "半導体サプライチェーン崩壊"