vol_condor_semiconductor_paper_v1 Full StrategyEval + Runtime Review

Generated 2026-06-08 UTC from the isolated rollout package. No trades submitted for this report. AlphaVaultOps was used only as runtime/control-plane data source.

Eval decision
FAIL

P0 fail / no promotion

Net Sharpe
5.59

compatibility eval stream

Net MaxDD
-12.54%

strategy-eval

TC drag
0.0000%

not full option TCA

Runtime runs
7

events in 2026-06 logs

Option intents
1

ledger

Dry-runs
1

ledger

Broker fills
0

paper/live read-only matched none

Executive result

Not ready for autonomous paper trading. StrategyEval remains FAIL/P0, true option TCA/fill/assignment modeling is missing, and runtime has a duplicate-guard state bug from 2026-06-05. Observational/manual review only until fixes are made.

Runtime run timeline

Recent runtime runs

tsrun_idsubmit_requestedsubmit_to_brokereligibleoption_ordersreasonblockers
2026-06-01T07:22:51.122434Z20260601T072251Z_vol_condor_semiconductor_paper_v1FalseNone1None
2026-06-01T07:25:24.148327Z20260601T072524Z_vol_condor_semiconductor_paper_v1FalseNone11
2026-06-02T08:34:31.131418Z20260602T083431Z_vol_condor_semiconductor_paper_v1FalseFalse00no candidates passed signal/risk/defined-risk/portfolio-cap gates
2026-06-02T08:35:32.910859Z20260602T083532Z_vol_condor_semiconductor_paper_v1TrueFalse00no candidates passed signal/risk/defined-risk/portfolio-cap gatesschedule_window_guard: submit allowed only Friday 19:00-20:59 UTC
2026-06-02T08:37:36.354471Z20260602T083736Z_vol_condor_semiconductor_paper_v1TrueFalse00no candidates passed signal/risk/defined-risk/portfolio-cap gatesschedule_window_guard: submit allowed only Friday 19:00-20:59 UTC
2026-06-02T18:23:17.712051Z20260602T182317Z_vol_condor_semiconductor_paper_v1FalseFalse00no candidates passed signal/risk/defined-risk/portfolio-cap gates
2026-06-05T19:30:03.323979Z20260605T193003Z_vol_condor_semiconductor_paper_v1TrueTrue00no candidates passed signal/risk/defined-risk/portfolio-cap gates

Option intents / dry-run / submitted / filled / canceled

event_typerun_idclient_order_idunderlyingstructurelimit_price
option_order_intent_created20260601T072524Z_vol_condor_semiconductor_paper_v1avopt_volcondsemipapev1_20260601T072524Z_NVDA_icNVDAshort_iron_condor-0.6439999999999999
option_order_dry_run20260601T072524Z_vol_condor_semiconductor_paper_v1avopt_volcondsemipapev1_20260601T072524Z_NVDA_icNVDAshort_iron_condor-0.6439999999999999

Broker read-only matching orders

accountsubmittedfilledcanceledmatching orders
paper000none
live_steve000none
live_aitist000none

Latest signal candidates

symbolactionsignal_gaterisk_gateexpiryiv_rv20creditmax_lossshort putshort call
SMHwatchTrueFalse2026-06-121.2324584742209277368.400000000000032131.6SMH260612P00530000SMH260612C00625000
TSMwatchTrueFalse2026-06-121.2309791829912264181.400000000000061318.6TSM260612P00387500TSM260612C00447500
NVDAwatchFalseTrue2026-06-100.936164982212058175.4424.59999999999997NVDA260610P00195000NVDA260610C00217500

StrategyEval gate summary

# Professional Eval Report: vol_condor_semiconductor_paper_v1

## Executive Decision

- 结论: FAIL / 先不要推进
- Bias: `BiasTest[vol_condor_semiconductor_paper_v1]: FAIL | shift=✓ autocorr=⚠ truncate=—`
- Gross Sharpe: 5.595
- Net Sharpe: 5.595
- Gross MaxDD: -12.54%
- Net MaxDD: -12.54%
- TC Drag: 0.0000% NAV/yr
- Alpha t-stat: 1.536

## P0 Mandatory Gate

| Dimension | Status | Result |
|---|---:|---|
| Core return/risk | computed | CAGR net +93477221.14%, vol 415.22%, Calmar 7453403.610, Sortino 4.334 |
| Drawdown/recovery | computed | avg DD -12.54%, max recovery 3 days |
| Turnover | computed | annual turnover 53.053, holding 4.8 days, turnover-adj Sharpe 0.761 |
| Capacity/scalability | computed | max participation 5.00% |
| Statistical significance | partial | t-stat 1.536; DSR=needs_input; PBO=needs_input |
| Operational reliability | computed | lookahead pass=False |

## P1 Promotion Review

| Dimension | Status | Result |
|---|---:|---|
| Factor exposure | needs_input | Provide `--factor-returns` for market/size/value/momentum/quality/carry/vol regression |
| Out-of-sample | insufficient_data | Provide `--oos-start-date` for true unseen split metrics |
| Rolling Sharpe | computed | 252d latest 0.000, min 0.000, negative-window ratio 0.0% |
| Fee sensitivity | computed | see `summary.json` rows for 0x/0.5x/1x/2x/3x TC |
| Paper trading | needs_input | Requires paper/live return stream |
| Portfolio interaction | needs_input | max abs corr: needs_input; provide `--existing-returns` |

## P2 Live Readiness

| Dimension | Status | Result |
|---|---:|---|
| Short rolling Sharpe | computed | 126d latest 0.000, min 0.000 |
| Panda P&L correlation | needs_input | target < 0.8 when existing strategy P&L is supplied |
| Fill assumptions | needs_input | queue position, partial fills, latency, bid/ask crossing still required |

## 下一步 review 重点

- P0 fail 时不进入 promotion review;优先查 lookahead、时间戳对齐、label 泄露、全样本标准化。
- P1 缺输入时不能假定通过;补 factor、OOS、paper trading、existing strategy P&L 后再评估。
- P2 是 live readiness;没有 fill/latency/queue 假设时不要讨论上线。

Full local eval dashboard: /workspace/volatility_condor_arbitrage_research/paper_rollouts/vol_condor_semiconductor_paper_v1_20260602/review_package/eval_report/eval_dashboard.html

Bias report: /workspace/volatility_condor_arbitrage_research/paper_rollouts/vol_condor_semiconductor_paper_v1_20260602/review_package/eval_report/bias_report.html; Internal report: /workspace/volatility_condor_arbitrage_research/paper_rollouts/vol_condor_semiconductor_paper_v1_20260602/review_package/eval_report/internal_report.html

Raw metadata

{
  "strategy_id": "vol_condor_semiconductor_paper_v1",
  "registry": {
    "account_id": "alpaca_paper_main",
    "created_at": "2026-05-29T18:34:18.317183Z",
    "description": "Semiconductor defined-risk volatility condor tiny paper observation.",
    "enabled": true,
    "entrypoint": "python /workspace/volatility_condor_arbitrage_research/paper_rollouts/vol_condor_semiconductor_paper_v1_20260602/rollout_runner.py --submit-paper",
    "environment": "paper",
    "git_ref": "not_git_repo:paper_rollouts/vol_condor_semiconductor_paper_v1_20260602",
    "owner": "codex",
    "repo_url": "local:/workspace/volatility_condor_arbitrage_research",
    "schedule": "cron: CRON_TZ=UTC; 30 19 * * 5 via isolated rollout wrapper",
    "source_path": "/workspace/volatility_condor_arbitrage_research/paper_rollouts/vol_condor_semiconductor_paper_v1_20260602/rollout_runner.py",
    "strategy_id": "vol_condor_semiconductor_paper_v1",
    "updated_at": "2026-06-05T19:30:03.263352Z"
  },
  "schedule": {
    "account_profile": "paper",
    "cadence": "30 19 * * 5",
    "cron_expression": "30 19 * * 5",
    "cron_tz": "UTC",
    "enabled": true,
    "entrypoint": "python /workspace/volatility_condor_arbitrage_research/paper_rollouts/vol_condor_semiconductor_paper_v1_20260602/rollout_runner.py --submit-paper",
    "expected_next_run_rule": "weekly Friday 19:30 UTC, equivalent to Friday 15:30 America/New_York during US daylight saving time",
    "last_observed_event_ts": "2026-06-05T19:30:03.331561+00:00",
    "last_observed_run_id": "20260605T193003Z_vol_condor_semiconductor_paper_v1",
    "notes": "Isolated rollout folder owns wrapper/source. Tiny defined-risk semiconductor option paper observation; no secrets; enabled only after dry-run event log verification.",
    "paper_book_cap_usd": 500.0,
    "process_hint": "crontab -l | grep vol_condor_semiconductor_paper_v1",
    "schedule_type": "cron",
    "scheduler_host": "workspace",
    "scheduler_owner": "codex",
    "scheduler_path": "/workspace/volatility_condor_arbitrage_research/paper_rollouts/vol_condor_semiconductor_paper_v1_20260602/run_vol_condor_semiconductor_paper.sh",
    "strategy_id": "vol_condor_semiconductor_paper_v1",
    "timezone": "UTC"
  },
  "config": {
    "account_profile": "paper",
    "allow_earnings_auto_submit": false,
    "allow_unknown_earnings_auto_submit": false,
    "duplicate_guard": {
      "behavior": "skip_submit_if_last_paper_submit_at_startswith_current_utc_date",
      "state_key": "last_paper_submit_at",
      "state_path": "/workspace/steve/alpha_vault_ops/data/runtime/memory/strategies/vol_condor_semiconductor_paper_v1/state.json"
    },
    "earnings_min_iv_rv20": 1.6,
    "earnings_window_days": 3,
    "environment": "paper",
    "live_requires_operator_approval": true,
    "max_candidates": 3,
    "max_contracts_per_run": 1,
    "max_dte_calendar": 35,
    "max_loss_per_1lot": 500.0,
    "max_quote_age_seconds": 900,
    "min_dte_calendar": 5,
    "min_executable_credit": 1.0,
    "min_iv_rv20": 1.2,
    "non_earnings_min_iv_rv20": 1.2,
    "paper_book_cap_usd": 500.0,
    "portfolio_max_loss_cap": 500.0,
    "preferred_risk_budget": 200.0,
    "report_url": "https://reports.steveouyang.com/dashboard",
    "require_quote_timestamp_for_submit": true,
    "risk_note": "Tiny paper observation. Defined-risk iron condors only; no naked short options.",
    "schedule": "CRON_TZ=UTC; 30 19 * * 5",
    "schedule_enabled": true,
    "strategy_id": "vol_condor_semiconductor_paper_v1",
    "submit_orders": true,
    "universe_note": "Large semiconductor names and semiconductor ETFs from semiconductor_alpaca_scan.py.",
    "updated_at": "2026-06-05T19:30:03.258964+00:00",
    "updated_by": "codex",
    "version": 1
  },
  "state_summary": {
    "last_run_id": "20260605T193003Z_vol_condor_semiconductor_paper_v1",
    "last_paper_submit_at": "2026-06-05T19:30:12.338332+00:00",
    "last_option_order": null
  },
  "eval_summary": {
    "strategy_label": "vol_condor_semiconductor_paper_v1",
    "window": {
      "start": "2026-05-15",
      "end": "2026-06-02",
      "n_days": 19,
      "n_assets": 1
    },
    "bias": {
      "strategy_label": "vol_condor_semiconductor_paper_v1",
      "overall_pass": false,
      "shift": {
        "test": "shift_lookahead",
        "sh_same": 5.594659912853039,
        "sh_lag1": 6.492510940454962,
        "sh_lead1": 7.340549785867094,
        "sh_lead5": 6.592519332489499,
        "lead1_gain": 1.7458898730140548,
        "lag1_drop": -0.8978510276019227,
        "threshold": 0.3,
        "asymmetry_min": 0.8,
        "passed": true,
        "verdict": "CAUSAL \u2014 lead-cheat boosts Sharpe more than lag-stale drops it"
      },
      "autocorr": {
        "test": "autocorrelation",
        "n_assets_checked": 0,
        "mean_autocorr": 0.0,
        "median_autocorr": 0.0,
        "min_autocorr": 0.0,
        "max_autocorr": 0.0,
        "threshold": 0.5,
        "passed": false,
        "verdict": "WARN \u2014 mean AC 0.000 < 0.5; positions jumpy, shift test less informative"
      },
      "truncate": null
    },
    "gross_metrics": {
      "sharpe": 5.5946599128530385,
      "cagr": 934772.2113701724,
      "annual_vol": 4.152162914381388,
      "max_drawdown": -0.12541548268900016,
      "calmar": 7453403.609570119,
      "sortino": 4.334332978362017,
      "win_rate": 0.42105263157894735,
      "var_95": -0.1731618717098728,
      "cvar_95": -0.602879372897726,
      "n_days": 19
    },
    "net_metrics": {
      "sharpe": 5.5946599128530385,
      "cagr": 934772.2113701724,
      "annual_vol": 4.152162914381388,
      "max_drawdown": -0.12541548268900016,
      "calmar": 7453403.609570119,
      "sortino": 4.334332978362017,
      "win_rate": 0.42105263157894735,
      "var_95": -0.1731618717098728,
      "cvar_95": -0.602879372897726,
      "n_days": 19
    },
    "tc_annual": {
      "fee_signal": 0.0,
      "fee_roll": 0.0,
      "slip_signal": 0.0,
      "slip_roll": 0.0,
      "total": 0.0
    },
    "eval_matrix": {
      "p0": {
        "core_metrics": {
          "status": "computed",
          "gross": {
            "sharpe": 5.5946599128530385,
            "cagr": 934772.2113701724,
            "annual_vol": 4.152162914381388,
            "max_drawdown": -0.12541548268900016,
            "calmar": 7453403.609570119,
            "sortino": 4.334332978362017,
            "win_rate": 0.42105263157894735,
            "var_95": -0.1731618717098728,
            "cvar_95": -0.602879372897726,
            "n_days": 19
          },
          "net": {
            "sharpe": 5.5946599128530385,
            "cagr": 934772.2113701724,
            "annual_vol": 4.152162914381388,
            "max_drawdown": -0.12541548268900016,
            "calmar": 7453403.609570119,
            "sortino": 4.334332978362017,
            "win_rate": 0.42105263157894735,
            "var_95": -0.1731618717098728,
            "cvar_95": -0.602879372897726,
            "n_days": 19
          },
          "total_return_gross": 1.8195012873967142,
          "total_return_net": 1.8195012873967142,
          "drawdown": {
            "average_drawdown": -0.12541548268900016,
            "max_drawdown": -0.12541548268900016,
            "max_time_to_recovery_days": 3,
            "average_time_to_recovery_days": 3.0
          },
          "t_stat_alpha": 1.5362087057350746
        },
        "turnover": {
          "status": "computed",
          "average_daily_turnover": 0.21052631578947367,
          "annual_turnover": 53.05263157894736,
          "active_day_ratio": 0.5263157894736842,
          "trade_day_ratio": 0.42105263157894735,
          "estimated_holding_period_days": 4.750000000000001,
          "turnover_adjusted_sharpe": 0.7609660308875569
        },
        "capacity_scalability": {
          "status": "computed",
          "aum_scaling": {
            "5000000.0": {
              "signal_mi_pct": 1.3876535336183151,
              "roll_mi_pct": 0.0,
              "total_mi_pct": 1.3876535336183151
            },
            "25000000.0": {
              "signal_mi_pct": 3.102887630388342,
              "roll_mi_pct": 0.0,
              "total_mi_pct": 3.102887630388342
            },
            "100000000.0": {
              "signal_mi_pct": 6.205775260776684,
              "roll_mi_pct": 0.0,
              "total_mi_pct": 6.205775260776684
            },
            "500000000.0": {
              "signal_mi_pct": 13.876535336183155,
              "roll_mi_pct": 0.0,
              "total_mi_pct": 13.876535336183155
            },
            "1000000000.0": {
              "signal_mi_pct": 19.62438447117971,
              "roll_mi_pct": 0.0,
              "total_mi_pct": 19.62438447117971
            },
            "2500000000.0": {
              "signal_mi_pct": 31.02887630388343,
              "roll_mi_pct": 0.0,
              "total_mi_pct": 31.02887630388343
            },
            "5000000000.0": {
              "signal_mi_pct": 43.8814576941491,
              "roll_mi_pct": 0.0,
              "total_mi_pct": 43.8814576941491
            },
            "10000000000.0": {
              "signal_mi_pct": 62.05775260776686,
              "roll_mi_pct": 0.0,
              "total_mi_pct": 62.05775260776686
            }
          },
          "participation_top": {
            "vol_condor_semiconductor_paper_v1": {
              "100000000.0": 0.0005,
              "500000000.0": 0.0025,
              "1000000000.0": 0.005,
              "2500000000.0": 0.0125,
              "5000000000.0": 0.025,
              "10000000000.0": 0.05
            }
          }
        },
        "statistical_significance": {
          "status": "partial",
          "t_stat_alpha": 1.5362087057350746,
          "deflated_sharpe_ratio": {
            "status": "needs_input",
            "reason": "requires trial count / candidate family distribution; do not infer from one backtest"
          },
          "pbo": {
            "status": "needs_input",
            "reason": "requires combinatorial or walk-forward trial panel; do not infer from one equity curve"
          }
        },
        "operational_reliability": {
          "status": "computed",
          "lookahead_bias": {
            "strategy_label": "vol_condor_semiconductor_paper_v1",
            "overall_pass": false,
            "shift": {
              "test": "shift_lookahead",
              "sh_same": 5.594659912853039,
              "sh_lag1": 6.492510940454962,
              "sh_lead1": 7.340549785867094,
              "sh_lead5": 6.592519332489499,
              "lead1_gain": 1.7458898730140548,
              "lag1_drop": -0.8978510276019227,
              "threshold": 0.3,
              "asymmetry_min": 0.8,
              "passed": true,
              "verdict": "CAUSAL \u2014 lead-cheat boosts Sharpe more than lag-stale drops it"
            },
            "autocorr": {
              "test": "autocorrelation",
              "n_assets_checked": 0,
              "mean_autocorr": 0.0,
              "median_autocorr": 0.0,
              "min_autocorr": 0.0,
              "max_autocorr": 0.0,
              "threshold": 0.5,
              "passed": false,
              "verdict": "WARN \u2014 mean AC 0.000 < 0.5; positions jumpy, shift test less informative"
            },
            "truncate": null
          }
        }
      },
      "p1": {
        "factor_exposure": {
          "status": "needs_input",
          "required_input": "--factor-returns"
        },
        "out_of_sample": {
          "status": "insufficient_data",
          "in_sample_days": 12,
          "oos_days": 7
        },
        "rolling_sharpe": {
          "status": "needs_more_history",
          "window": 252
        },
        "fee_sensitivity": {
          "status": "computed",
          "rows": [
            {
              "tc_multiplier": 0.0,
              "sharpe": 5.5946599128530385,
              "cagr": 934772.2113701724,
              "max_drawdown": -0.12541548268900016
            },
            {
              "tc_multiplier": 0.5,
              "sharpe": 5.5946599128530385,
              "cagr": 934772.2113701724,
              "max_drawdown": -0.12541548268900016
            },
            {
              "tc_multiplier": 1.0,
              "sharpe": 5.5946599128530385,
              "cagr": 934772.2113701724,
              "max_drawdown": -0.12541548268900016
            },
            {
              "tc_multiplier": 2.0,
              "sharpe": 5.5946599128530385,
              "cagr": 934772.2113701724,
              "max_drawdown": -0.12541548268900016
            },
            {
              "tc_multiplier": 3.0,
              "sharpe": 5.5946599128530385,
              "cagr": 934772.2113701724,
              "max_drawdown": -0.12541548268900016
            }
          ]
        },
        "capacity": {
          "status": "computed",
          "annual_tc_drag_pct_nav": {
            "fee_signal": 0.0,
            "fee_roll": 0.0,
            "slip_signal": 0.0,
            "slip_roll": 0.0,
            "total": 0.0
          },
          "max_participation": 0.05
        },
        "paper_trading": {
          "status": "needs_input",
          "reason": "requires live or paper trading return stream"
        },
        "portfolio_interaction": {
          "status": "needs_input",
          "required_input": "--existing-returns"
        }
      },
      "p2": {
        "rolling_sharpe": {
          "status": "needs_more_history",
          "window": 126
        },
        "panda_pnl_correlation": {
          "status": "needs_input",
          "required_input": "--existing-returns"
        },
        "fill_assumptions": {
          "status": "needs_input",
          "required_inputs": [
            "queue position",
            "partial fills",
            "latency",
            "bid/ask spread crossing"
          ]
        }
      }
    },
    "reports": {
      "bias_html": "bias_report.html",
      "internal_html": "internal_report.html",
      "eval_dashboard_html": "eval_dashboard.html"
    }
  },
  "event_counts": {
    "strategy_run_started": 7,
    "signal_generated": 7,
    "strategy_metrics_recorded": 7,
    "option_order_intent_created": 1,
    "option_order_dry_run": 1
  },
  "ledger_counts": {
    "option_order_intent_created": 1,
    "option_order_dry_run": 1
  },
  "known_issue": "last_paper_submit_at was written on 2026-06-05 even though eligible_paper_orders=0 and option_order_count=0; duplicate guard should update only after a real eligible paper submit attempt."
}