コンテンツにスキップ

Crisis Alpha 戦略

概要

Crisis Alphaは、2020年COVID暴落のような市場環境(IV急騰+下落トレンド)で利益を狙う危機対応戦略です。

注意

Crisis Alphaはヘッジ目的です。通常の利益追求ではなく、ポートフォリオ保護のために発動します。


戦略概要

flowchart LR
    A[IV Rank 急騰] --> B{下落トレンド?}
    B -->|Yes| C[🚨 Crisis Alpha 発動]
    B -->|No| D[Beat Shield 高IV環境]
    C --> E[Long Put エントリー]
    E --> F[IV上昇 + デルタで利益]

発動条件

IV Rank 基準

IV Rank 発動 強度 説明
< 0.60 0.0 発動なし
0.60 - 0.70 🟡 0.7 部分発動(confidence低め)
≥ 0.70 + 下落トレンド 0.95 フル発動

トレンド条件

  • 下落トレンド確認: Price < EMA20
  • StrategyManagerが判定し、CRISIS_ALPHAモードを返す

主な手法

手法 説明 リスク
Long Put OTMプットを購入し、IV急騰とデルタによる利益を狙う ハイリスク・ハイリターン
Bear Put Spread リスク限定的な下落ベット(コスト削減) 未実装(Noneを返す)

パラメータ

リスク管理

LONG_PUT_ALLOCATION_PCT = 0.05   # 資金の5%までLong Putに
BEAR_SPREAD_ALLOCATION_PCT = 0.10 # 資金の10%までSpreadに
CRISIS_ALPHA_ALLOCATION_PCT = 0.15  # 資金の15%まで(合計)

Exit 条件

PROFIT_TAKE_PCT = 1.00  # 100%利確(2倍になったら売る)
STOP_LOSS_PCT = 0.50    # 50%損切り

タイミング・DTE

TARGET_DTE = 45
MIN_DTE = 30
MAX_DTE = 60
CLOSE_BEFORE_EXPIRY_DAYS = 10

Long Put 選定基準

LONG_PUT_OTM_PCT = 0.15        # 15% OTM(現在価格の85%付近)
LONG_PUT_MIN_DELTA = -0.20
LONG_PUT_MAX_DELTA = -0.05
# mid: $0.05 ~ $5.00(安価なプット)

PT(Paper Trading)実装

エントリーロジック

run_paper_trading_v2.py_attempt_crisis_entry() メソッド(L1811-1974)で実装:

async def _attempt_crisis_entry(
    self,
    scenario_id: str,
    symbol: str,
    snapshot,
    current_date: date,
    evaluation,
):
    """Crisis Alpha戦略エントリーを試行(Long Put)"""
    # OTMプット: 現在価格の92%程度
    strike = round(snapshot.price * 0.92, 0)
    expiration = current_date + timedelta(days=45)  # 45DTE

    # プレミアム推定
    premium = snapshot.price * 0.02  # 株価の2%程度

    # ポジションサイズ計算(最大損失 = プレミアム全額)
    max_risk_per_trade = state.virtual_capital * 0.02  # 資金の2%
    position_size = max(1, int(max_risk_per_trade / (premium * 100)))

StrategyManager での判定

strategies/strategy_manager.py で Crisis Alpha モードを判定:

# IV Rank >= 0.7 かつ 下落トレンド → CRISIS_ALPHA FULL発動
if eval_result.iv_rank >= 0.70 and not eval_result.uptrend:
    return StrategyMode.CRISIS_ALPHA, 0.95, f"Crisis FULL: IV={eval_result.iv_rank:.2f} + 下落トレンド"

# IV Rank >= 0.6 → 部分発動
if eval_result.iv_rank >= 0.60:
    return StrategyMode.CRISIS_ALPHA, 0.7, f"Crisis PARTIAL: IV={eval_result.iv_rank:.2f}"

RiskGuardian 設定

core/risk_guardian.py で Crisis Alpha の資金配分を管理:

CRISIS_ALPHA_ALLOCATION_PCT = 0.15  # 資金の15%まで(Long Put 5% + Bear Spread 10%)

Exit 戦略

利確

  • プレミアムが2倍(+100%)になったら売却
  • IV急騰時にプレミアムが急上昇するため、早めの利確も検討

損切り

  • プレミアムが50%以上減少したら損切り
  • Long Putは時間減衰が大きいため、損切りは重要

DTE管理

  • CLOSE_BEFORE_EXPIRY_DAYS = 10 で強制クローズ
  • 時間価値の急激な減衰を避ける

実装ファイル

ファイル 内容
strategies/crisis_alpha.py CrisisAlpha戦略クラス
strategies/strategy_manager.py 戦略モード判定
core/risk_guardian.py 資金配分管理
scripts/run_paper_trading_v2.py PTでのエントリー実装
scripts/verify_crisis_alpha.py 動作検証スクリプト

制限事項

現在の制限

  • Bear Put Spread: 未実装(Noneを返す)
  • オプションチェーン連携: 実際のプレミアムは推定値を使用
  • 自動ヘッジ判断: v5で実装予定