コンテンツにスキップ

Conviction Allocator(動的資本配分機構)

概要

Conviction Allocator は、口座残高と確信度スコアに応じてポジションサイズと分散度を動的に調整する資本配分機構です。

設計思想

小資本時は控えめにリスクを取り、大資本時は積極的にリスクを取る。 各ポジションのサイズは「確信度スコア」に応じて動的に厚みを変える。

PT統合完了(2025-12-10)

Paper Trading システムに完全統合済み。エントリー判断時に確信度スコアを計算し、動的にポジションサイズを決定。


2階建て配分アーキテクチャ

マクロレベル: 資本段階

口座残高に応じて総リスクバジェット目標分散度を決定

graph TD
    A[口座残高] --> B{段階判定}
    B -->|≤$13k| C[Seed Stage]
    B -->|$13k-$30k| D[Transition Stage]
    B -->|≥$30k| E[Harvest Stage]

    C --> F["集中投資<br/>目標5銘柄<br/>リスク60%"]
    D --> G["バランス<br/>目標10銘柄<br/>リスク70%"]
    E --> H["分散投資<br/>目標15銘柄<br/>リスク80%"]

現在の設定値(AllocatorConfig)

シグナル重み

成分 重み 説明
w_mtf 0.4 MTF一致度
w_gex 0.3 GEXレジーム適合
w_iv 0.3 IV Rank適正度

資本段階閾値

パラメータ 説明
seed_max $13,000 Seed Stage上限
harvest_min $30,000 Harvest Stage下限

資本段階別パラメータ

Seed Stage(初期段階): ≤ $13,000

パラメータ 説明
目標ポジション数 (n_target) 5 集中投資
1トレードリスク (r_per_trade) 3% 控えめ
総リスクバジェット (r_total) 60% 投下率
最大単一リスク (r_max) 10% 集中許容
β(集中度) 3.0 高確信に厚く

思想: 小資本フェーズ。控えめにリスクを取り、資本を守りながら成長。

Transition Stage(成長段階): $13,000 - $30,000

パラメータ 説明
目標ポジション数 (n_target) 10 バランス
1トレードリスク (r_per_trade) 3.5% 標準
総リスクバジェット (r_total) 70% 中リスク
最大単一リスク (r_max) 12% 中集中
β(集中度) 2.0 バランス配分

思想: 成長と安定のバランス。段階的にリスクを拡大。

Harvest Stage(収穫段階): ≥ $30,000

パラメータ 説明
目標ポジション数 (n_target) 15 分散投資
1トレードリスク (r_per_trade) 4% 積極的
総リスクバジェット (r_total) 80% 高投下
最大単一リスク (r_max) 15% 高集中許容
β(集中度) 1.5 均等分散

思想: 資本を活用するフェーズ。積極的にリスクを取り、複利成長を狙う。

制約パラメータ

制約 説明
min_position_value $100 最小ポジション額
same_symbol_max_pct 15% 同一シンボル上限
min_conviction_score 0.4 最小確信度

確信度スコア(Conviction Score)

計算式

\[ S_i = w_\text{MTF} \cdot C^\text{MTF}_i + w_\text{GEX} \cdot C^\text{GEX}_i + w_\text{IV} \cdot C^\text{IV}_i \]
\[ S_i = 0.4 \cdot C^\text{MTF} + 0.3 \cdot C^\text{GEX} + 0.3 \cdot C^\text{IV} \]

PT統合での実装

MTF一致度(C_mtf)

c_mtf = 0.5  # デフォルト
if snapshot and hasattr(snapshot, 'momentum'):
    momentum = snapshot.momentum
    if momentum and hasattr(momentum, 'trend_score'):
        # trend_scoreを[0,1]に正規化
        c_mtf = max(0.0, min(1.0, (momentum.trend_score + 1) / 2))

GEXレジーム適合(C_gex)

c_gex = 0.5  # デフォルト
if regime == GexRegime.POSITIVE_GAMMA:
    c_gex = 0.9  # 最適
elif regime == GexRegime.NEUTRAL:
    c_gex = 0.6  # 中立
else:  # NEGATIVE_GAMMA
    c_gex = 0.3  # 不利

IV Rank適正(C_iv)

c_iv = 0.5  # デフォルト
if 30 <= iv_rank <= 60:
    c_iv = 0.9   # 理想的なIV環境
elif 20 <= iv_rank < 30 or 60 < iv_rank <= 70:
    c_iv = 0.7   # やや有利
elif iv_rank > 70:
    c_iv = 0.4   # 高IVは危険
else:
    c_iv = 0.5   # 低IV

Hot Symbolボーナス

if is_hot:
    c_mtf = min(1.0, c_mtf + 0.15)
    c_gex = min(1.0, c_gex + 0.15)

ソフトマックス配分

確信度が高い銘柄に非線形に厚く配分:

\[ w_i^\text{raw} = \exp(\beta S_i) \]
\[ w_i = \frac{w_i^\text{raw}}{\sum_j w_j^\text{raw}} \]

β(集中度パラメータ)の影響

β値 特性 適用段階
3.0 集中的 Seed (≤$13k)
2.0 バランス Transition (\(13k-\)30k)
1.5 やや分散 Harvest (≥$30k)

実装ファイル

ファイル 役割
core/conviction_allocator/types.py データクラス・設定定義
core/conviction_allocator/stage.py 資本段階判定
core/conviction_allocator/conviction.py 確信度スコア計算
core/conviction_allocator/allocator.py メイン配分エンジン
core/conviction_allocator/constraints.py 制約とリミット
scripts/run_paper_trading_v2.py PT統合(_attempt_entry内)

RiskGuardianとの関係

  • RiskGuardian: エントリー可否判定(VIX/ドローダウン/ポジション数制限)
  • Conviction Allocator: ポジションサイズ決定(確信度ベース)

両者は併用され、まずConviction Allocatorでサイズを計算し、その後RiskGuardianでエントリー可否をチェック。


関連ページ