---
name: monte-carlo
description: モンテカルロ・シミュレーションによる株価予測。過去のボラティリティから将来の株価分布を確率的に推定する。「モンテカルロ」「将来の株価」「株価予測」「確率的な株価」「リスク評価」「VaR」「価格分布」と聞かれたときに使用。
---

# モンテカルロ・シミュレーション 株価予測 Skill

幾何ブラウン運動（GBM）モデルに基づくモンテカルロ・シミュレーションで、将来の株価分布を確率的に推定する。

## モデル概要

### 幾何ブラウン運動（GBM）

```
S(t+dt) = S(t) × exp((μ - σ²/2) × dt + σ × √dt × Z)
```

| パラメータ | 定義 | 推定方法 |
|-----------|------|---------|
| S(t) | 現在の株価 | 最新終値 |
| μ | 期待リターン（年率） | 過去の日次対数リターンの年率換算平均 |
| σ | ボラティリティ（年率） | 過去の日次対数リターンの年率換算標準偏差 |
| dt | 時間刻み | 1/245（日本市場の年間営業日数） |
| Z | 標準正規乱数 | N(0,1) |

## 必要なツールとデータ

- `get_stock_price`: OHLCVデータ（最低60日分、理想は120日以上）
- `get_key_ratios`: 銘柄名、セクター情報（出力用）
- 最低プラン: Free（60日分の株価データ）

## Workflow Checklist

```
Monte Carlo Simulation Progress:
- [ ] Step 1: 株価データの取得とパラメータ推定
- [ ] Step 2: シミュレーション設計
- [ ] Step 3: シミュレーション実行（概念的計算）
- [ ] Step 4: 統計量の算出
- [ ] Step 5: 結果出力とISQスコア算出
```

## Step 1: 株価データの取得とパラメータ推定

### 1.1 株価データの取得

`get_stock_price` を呼び出し、過去の終値（調整済み）を取得する。

**推奨期間:**
- Free プラン: 60日分（利用可能な最大）
- Light 以上: 120〜250日分（年率推定の精度向上）

### 1.2 日次対数リターンの計算

```
r(t) = ln(S(t) / S(t-1))
```

取得した終値系列から日次対数リターン系列を算出する。

### 1.3 パラメータ推定

**期待リターン（年率）:**
```
μ = r̄ × 245
```
（r̄ = 日次対数リターンの平均、245 = 日本市場の年間営業日数）

**ボラティリティ（年率）:**
```
σ = s × √245
```
（s = 日次対数リターンの標準偏差）

### 1.4 パラメータの妥当性チェック

| チェック項目 | 基準 | 対処 |
|-------------|------|------|
| σ（年率）が100%超 | 異常に高い | 期間を短縮するか、異常値を除外 |
| σ（年率）が5%未満 | 異常に低い | データ不足の可能性を注記 |
| データ点数が20未満 | 統計的に不十分 | 結果の信頼性が低い旨を明記 |

## Step 2: シミュレーション設計

### パラメータ設定

| 項目 | デフォルト値 | 説明 |
|------|------------|------|
| シミュレーション回数 | 10,000回 | 十分な収束性 |
| 予測期間 | 60営業日（約3ヶ月） | ユーザー指定があればそちらを優先 |
| 時間刻み | 1営業日 | dt = 1/245 |

**注意:** エージェントはLLMであり、実際に10,000回のシミュレーションを実行するわけではない。代わりに、GBMの解析的性質を利用して統計量を直接計算する（Step 3参照）。

## Step 3: 解析的な統計量の算出

GBMモデルでは、将来の株価の対数が正規分布に従うため、シミュレーションなしで統計量を直接計算できる。

### 予測期間T後の株価分布

```
ln(S(T)/S(0)) ~ N((μ - σ²/2) × T, σ² × T)
```

したがって:

**期待値（中央値）:**
```
S_median = S(0) × exp((μ - σ²/2) × T)
```

**期待値（平均）:**
```
S_mean = S(0) × exp(μ × T)
```

**パーセンタイル:**
```
S_p = S(0) × exp((μ - σ²/2) × T + σ × √T × Z_p)
```

ここで Z_p は標準正規分布のパーセンタイル点:

| パーセンタイル | Z_p |
|--------------|------|
| 5% | -1.645 |
| 10% | -1.282 |
| 25% | -0.674 |
| 50%（中央値） | 0.000 |
| 75% | +0.674 |
| 90% | +1.282 |
| 95% | +1.645 |

### VaR（Value at Risk）の算出

```
VaR(95%) = S(0) - S_5%パーセンタイル
VaR(95%)率 = 1 - S_5%パーセンタイル / S(0)
```

### 最大損失シナリオ（参考）

```
S_worst(99%) = S(0) × exp((μ - σ²/2) × T + σ × √T × (-2.326))
```

## Step 4: 追加分析

### 4.1 目標株価の到達確率

DCFスキル等で算出した目標株価がある場合、到達確率を計算:

```
P(S(T) ≥ Target) = 1 - Φ((ln(Target/S(0)) - (μ - σ²/2) × T) / (σ × √T))
```

Φ は標準正規分布の累積分布関数。代表的な値:

| Φ(z) | z |
|------|---|
| 0.50 | 0.000 |
| 0.60 | 0.253 |
| 0.70 | 0.524 |
| 0.80 | 0.842 |
| 0.90 | 1.282 |
| 0.95 | 1.645 |

逆に z を計算し、上表から到達確率を概算する。

### 4.2 損益分岐日数の推定

損益分岐（現在株価の維持）の確率が50%になるまでの期間を概算する。μ > 0 なら理論上は常に上昇傾向だが、σ が大きいと短期的な下落リスクが高い。

### 4.3 ボラティリティの文脈化

推定ボラティリティを市場全体と比較して位置づける:

| 年率ボラティリティ | 分類 | 日本市場の目安 |
|-------------------|------|--------------|
| < 15% | 低ボラティリティ | 大型ディフェンシブ銘柄 |
| 15% 〜 25% | 平均的 | TOPIX構成銘柄の平均帯 |
| 25% 〜 40% | やや高い | 中小型・成長株 |
| 40% 〜 60% | 高い | 新興・テーマ株 |
| > 60% | 非常に高い | 投機的銘柄 |

## Step 5: 出力フォーマット

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎲 モンテカルロ・シミュレーション 株価予測
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏷 対象銘柄: {銘柄名}（{銘柄コード}）
📅 分析日: {日付}
💰 現在株価: {現在株価}円

【推定パラメータ】
| パラメータ | 値 | 説明 |
|-----------|-----|------|
| μ（年率期待リターン） | {X}% | 過去{N}日の日次リターンから推定 |
| σ（年率ボラティリティ） | {X}% | {低/平均的/やや高い/高い/非常に高い} |
| データ期間 | {FROM}〜{TO} | {N}営業日 |
| 予測期間 | {T}営業日（約{M}ヶ月） | |

【株価予測分布】（{T}営業日後）
| パーセンタイル | 予測株価 | 現在比 |
|--------------|---------|--------|
| 95%（楽観） | {X}円 | +{X}% |
| 75% | {X}円 | +{X}% |
| 50%（中央値） | {X}円 | {+/-X}% |
| 25% | {X}円 | {-X}% |
| 5%（悲観） | {X}円 | {-X}% |

【リスク指標】
| 指標 | 値 | 説明 |
|------|-----|------|
| VaR(95%) | {X}円（{X}%） | 95%の確率でこれ以上の損失は出ない |
| 期待リターン | {+/-X}% | {T}営業日後の期待値 |
| 上昇確率 | {X}% | 現在株価を上回る確率 |

【目標株価の到達確率】（DCF等の目標株価がある場合）
| 目標株価 | 到達確率 |
|---------|---------|
| {Target1}円 | {X}% |

【考察】
  {ボラティリティの水準と市場平均との比較}
  {リスク・リターンの非対称性に関するコメント}
  {予測の限界（GBMはファットテールを考慮しない等）}

【注意事項】
  - GBMモデルは対数正規分布を仮定しており、実際の株価分布（ファットテール）を過小評価する傾向がある
  - 過去のボラティリティが将来も続くとは限らない（決算発表、市場環境変化等）
  - 配当落ちによる株価調整は考慮していない
  - 本予測は確率的な参考情報であり、投資判断の唯一の根拠とすべきではない
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

## ISQ Signal 変換

モンテカルロの結果をISQシグナルに変換する。

**Sentiment（方向性）:**
- 上昇確率 > 65%: +0.2〜+0.5
- 上昇確率 45%〜65%: -0.1〜+0.1（中立）
- 上昇確率 < 45%: -0.2〜-0.5

**Confidence（確信度）:**
- データ120日以上 & σ安定: 0.5〜0.7
- データ60日: 0.3〜0.5
- データ30日未満: 0.1〜0.3
- **注意:** GBMモデルの限界があるため、Confidence は 0.7 を超えない

**Intensity（強度）:**
- VaR(95%) < 10%: 1〜2（穏やか）
- VaR(95%) 10%〜20%: 2〜3
- VaR(95%) 20%〜30%: 3〜4
- VaR(95%) > 30%: 4〜5（高リスク）

**Expectation Gap（織り込み度）:**
- 現在株価が予測中央値に近い: 0.1〜0.3（織り込み済み）
- 現在株価が25パーセンタイル以下: 0.5〜0.8（上昇余地が未織り込み）
- 現在株価が75パーセンタイル以上: 0.5〜0.8（下落リスクが未織り込み）

**Timeliness（緊急性）:**
- σ平均的 & 上昇確率中立: 0.1〜0.2（急ぎではない）
- σ高い: 0.3〜0.5（ボラティリティが高く早めの判断推奨）
- 決算発表前: 0.5〜0.7（ボラティリティ変化の可能性）
