← 全部 Cases · 今日流程

Market Case · 2026-09-30

Day 63

Day 63
9/9 Steps

Regime · Hypothesis

R0 Regime
Range (50.0%)
Hypothesis
弱 NFP 能否抵消 AI 抛售?(Macro 利率利好 vs 半导体风险)
ID
H-2026-09-30-001

Labels · Attribution

真正 Driver
Bond/Rates
Hypothesis 结果
错
Scenario 预测
A
Scenario 实际
C
Scenario 命中
✗
AI 贡献
28%
Bond
63%

Surprise · Lesson

Surprise:No major surprises vs typical driver mix

Lesson:Morning Hypothesis 被 Chip/Macro 冲突推翻——复盘 P10/P15 权重

Evidence / Counter

Evidence

  • VIX=16.2 (low fear)

Counter

  • 10Y=5.24% (elevated rates)
  • Breadth 29% (narrow market)

Step 快捷入口

原始 JSON
{
  "date": "2026-09-30",
  "features": {
    "dgs10": 5.24,
    "dgs2": null,
    "vix": 16.16,
    "vix_chg": 0.75,
    "qqq_chg": 0.47,
    "smh_chg": 1.58,
    "nvda_chg": -0.17,
    "spy_chg": 0.0,
    "oil_chg": 0.0,
    "dxy_chg": -0.17,
    "breadth_proxy": 0.5714285714285714,
    "qqq_gap": 0.45,
    "news_headline_count": 29,
    "news_bearish_ratio": 0.0,
    "news_ai_mentions": 46,
    "news_macro_mentions": 5,
    "news_oil_mentions": 3,
    "news_risk_mentions": 1
  },
  "regime": {
    "label": "Range",
    "confidence": 0.5
  },
  "hypothesis": {
    "id": "H-2026-09-30-001",
    "statement": "弱 NFP 能否抵消 AI 抛售?(Macro 利率利好 vs 半导体风险)",
    "evidence": [
      "VIX=16.2 (low fear)"
    ],
    "counter_evidence": [
      "10Y=5.24% (elevated rates)",
      "Breadth 29% (narrow market)"
    ],
    "confidence": 0.5,
    "status": "待验证"
  },
  "morning": {
    "bias": "Bullish Bias",
    "total": 2,
    "driver_type": "Political",
    "daily_driver": "Geopolitical Risk",
    "best_opportunity": {
      "direction": "NO TRADE",
      "symbol": "—",
      "instrument": "—",
      "horizon": "—",
      "confidence": 45,
      "entry": "—",
      "stop": "—",
      "target": "—",
      "targets": [],
      "duration": "—",
      "why": [
        "今日无任何标的达到交易阈值"
      ],
      "why_chain": "今日无任何标的达到交易阈值",
      "avoid": [],
      "one_liner": "今日无任何标的达到交易阈值",
      "p16_gate": "No Trade",
      "threshold_message": "今日无任何标的达到交易阈值",
      "advisory": true
    },
    "best_trades": {
      "primary": null,
      "secondary": null,
      "watchlist": null,
      "index_trade": "NO TRADE",
      "p16_gate": "No Trade",
      "threshold_message": "今日无任何标的达到交易阈值",
      "stock_trades": [],
      "top_trades": [
        {
          "rank": 1,
          "symbol": "ARM",
          "direction": "LONG",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 59,
          "confidence_stars": "★★☆☆☆",
          "expected_move": "+1.04%",
          "expected_return_pct": 1.04,
          "win_prob": 59.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": -6.0
              },
              {
                "factor": "Trend",
                "key": "trend",
                "points": 10.0
              },
              {
                "factor": "Gap",
                "key": "gap",
                "points": 5.0
              }
            ],
            "total": 59.0,
            "raw_total": 59.0,
            "was_clamped": false
          },
          "risk_reward": 2.6,
          "final_score": 0.33,
          "trade_action": "Pass",
          "relative_strength": -0.47,
          "entry": "Above 292.7 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 292.69,
          "entry_zone": {
            "low": 291.81,
            "high": 293.57,
            "mid": 292.69,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 292.69
              }
            ],
            "display": "Entry Zone 292–294",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "291.5 (ORB低点)",
          "stop_source": "orb_low",
          "stop_price": 291.52,
          "target": "295.7 (预期收盘)",
          "target_source": "expected_close",
          "target_price": 295.74,
          "targets": [
            "295.7 (预期收盘)"
          ],
          "level_anchors": {
            "vwap": 292.69,
            "orb_high": 296.17,
            "orb_low": 291.52,
            "prev_high": null,
            "prev_low": null,
            "prior_close": 293.67,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "昨日强势 +3.2% 今日 gap 可控",
            "Gap 未过度延伸"
          ],
          "why_chain": "昨日强势 +3.2% 今日 gap 可控 · Gap 未过度延伸",
          "why_vs_runner_up": "ARM RS -0.5% vs META +2.2%;ER 1.1% vs 0.7%;relative weakness play",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -0.47,
            "relative_strength_vs_smh": -1.24,
            "relative_weakness_score": 1.21,
            "gap_pct": 0.41,
            "beta_proxy": -6.83,
            "volume_signal": false,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 0.75,
            "prior_day_change_pct": 3.23
          },
          "edge_type": "Sector Edge",
          "score_formula_display": "final = win_prob(59%) × ER(1.1%) × rr_weight(0.5) / 100",
          "expected_high": 295.74,
          "expected_low": 289.22,
          "expected_close": 295.74,
          "current_price": 292.48,
          "upside_pct": 1.11,
          "downside_risk_pct": 1.11,
          "why_factors": [
            "昨日强势 +3.2% 今日 gap 可控",
            "Gap 未过度延伸"
          ],
          "why_today": "昨日强势 +3.2% 今日 gap 可控 · Gap 未过度延伸",
          "gap_pct": 0.41,
          "rr_display": {
            "reward_risk_ratio": 2.61,
            "risk_reward_ratio": 0.38,
            "reward_per_share": 3.05,
            "risk_per_share": 1.17,
            "label_reward_risk": "Reward/Risk 2.61",
            "label_risk_reward": "Risk:Reward 1:0.38",
            "display": "Reward/Risk 2.61 · Risk:Reward 1:0.38",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Oil Selloff",
          "invalidation": "Close below stop $291.52 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 292.69,
              "source": "vwap",
              "confidence": 89,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 292.69,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "prior_close",
                  "label": "Prior Close",
                  "price": 293.67,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "stop": {
              "price": 291.52,
              "source": "orb_low",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 291.52,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 292.69,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 295.74,
              "source": "expected_close",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_close",
                  "label": "Expected Close",
                  "price": 295.74,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(295.74-292.69)/292.69=1.04%",
          "heuristic_expected_return_pct": 1.11,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 ARM:在 292.69 附近入场,目标 295.74,预期 +1.04%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "shares": 85,
            "contracts": 0,
            "max_loss_usd": 99.45,
            "win_usd": 259.25,
            "loss_usd": 99.45,
            "expected_value_usd": 112.18,
            "risk_per_share": 1.17,
            "reward_per_share": 3.05,
            "rr_display": {
              "reward_risk_ratio": 2.61,
              "risk_reward_ratio": 0.38,
              "reward_per_share": 3.05,
              "risk_per_share": 1.17,
              "label_reward_risk": "Reward/Risk 2.61",
              "label_risk_reward": "Risk:Reward 1:0.38",
              "display": "Reward/Risk 2.61 · Risk:Reward 1:0.38",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$259 / Loss -$99"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "contracts": 0,
            "shares": 85,
            "max_loss_usd": 99.45,
            "size_label": "None",
            "display": "Risk 1.0% → Position 100.0% → 85 unit(s) → Max Loss $99.45"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "expected_range",
              "label": "Largest Expected Range",
              "primary_value": 2.22,
              "runner_up_value": 2.0,
              "wins": true
            },
            {
              "rank": 2,
              "dimension": "risk_reward",
              "label": "Best Risk Reward",
              "primary_value": 2.6,
              "runner_up_value": 1.23,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "META",
              "rank": 2,
              "reasons": [
                "Win% 59 vs 71",
                "ER 1.0% vs 0.7%",
                "Score 0.33 vs 0.3",
                "RS -0.5% vs +2.2%",
                "R:R 2.6 vs 1.23"
              ],
              "summary": "Why ARM over META: Win% 59 vs 71 · ER 1.0% vs 0.7% · Score 0.33 vs 0.3 · RS -0.5% vs +2.2% · R:R 2.6 vs 1.23"
            },
            {
              "symbol": "SMH",
              "rank": 3,
              "reasons": [
                "Win% 59 vs 71",
                "ER 1.0% vs 0.2%",
                "Score 0.33 vs 0.06",
                "RS -0.5% vs +0.8%",
                "R:R 2.6 vs 0.62"
              ],
              "summary": "Why ARM over SMH: Win% 59 vs 71 · ER 1.0% vs 0.2% · Score 0.33 vs 0.06 · RS -0.5% vs +0.8% · R:R 2.6 vs 0.62"
            },
            {
              "symbol": "MU",
              "rank": 4,
              "reasons": [
                "Win% 59 vs 60",
                "ER 1.0% vs 0.1%",
                "Score 0.33 vs 0.03",
                "RS -0.5% vs +0.2%",
                "R:R 2.6 vs 1.0"
              ],
              "summary": "Why ARM over MU: Win% 59 vs 60 · ER 1.0% vs 0.1% · Score 0.33 vs 0.03 · RS -0.5% vs +0.2% · R:R 2.6 vs 1.0"
            },
            {
              "symbol": "TQQQ",
              "rank": 5,
              "reasons": [
                "ER 1.0% vs 0.1%",
                "Score 0.33 vs 0.03",
                "RS -0.5% vs +0.1%",
                "R:R 2.6 vs 0.62"
              ],
              "summary": "Why ARM over TQQQ: ER 1.0% vs 0.1% · Score 0.33 vs 0.03 · RS -0.5% vs +0.1% · R:R 2.6 vs 0.62"
            },
            {
              "symbol": "QQQ",
              "rank": 6,
              "reasons": [
                "ER 1.0% vs 0.0%",
                "Score 0.33 vs 0.01",
                "RS -0.5% vs +0.0%",
                "R:R 2.6 vs 0.62"
              ],
              "summary": "Why ARM over QQQ: ER 1.0% vs 0.0% · Score 0.33 vs 0.01 · RS -0.5% vs +0.0% · R:R 2.6 vs 0.62"
            }
          ],
          "rank_summary": "ARM ranked #1 because largest expected range + best reward/risk",
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 59.0,
            "sample_size": 0,
            "confidence_interval": null,
            "source": "rules_fallback",
            "match_quality": "insufficient",
            "win_prob_source": "rules",
            "disclaimer": "No historical matches; using rules breakdown"
          },
          "similar_days": [
            {
              "date": "2026-08-28",
              "outcome": "win",
              "return_pct": 3.92,
              "match_score": 3,
              "direction": "LONG"
            }
          ],
          "ev_distribution": {
            "expected_value_usd": 112.18,
            "win_scenario_usd": 259.25,
            "loss_scenario_usd": 99.45,
            "win_prob_pct": 59.0,
            "display": "EV $+112 (win +$259 @ 59.0% · loss -$99)"
          },
          "entry_status": {
            "current_price": 292.48,
            "ideal_entry": 292.69,
            "distance_pct": -0.07,
            "remaining_er_pct": 1.11,
            "live_expected_return_pct": 1.11,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 291.81,
            "zone_high": 293.57,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 2,
          "symbol": "META",
          "direction": "LONG",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 71,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+0.99%",
          "expected_return_pct": 0.99,
          "win_prob": 71.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 12.0
              },
              {
                "factor": "Catalyst",
                "key": "catalyst",
                "points": 5.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              }
            ],
            "total": 71.0,
            "raw_total": 71.0,
            "was_clamped": false
          },
          "risk_reward": 0.45,
          "final_score": 0.3,
          "trade_action": "Pass",
          "relative_strength": 2.17,
          "entry": "Above 731.6 (现价)",
          "entry_source": "current",
          "entry_price": 731.58,
          "entry_zone": {
            "low": 729.39,
            "high": 733.77,
            "mid": 731.58,
            "anchors": [],
            "display": "Entry Zone 729–734",
            "entry_source": "current",
            "tolerance_pct": 0.3
          },
          "stop": "715.6 (昨日低点)",
          "stop_source": "prev_low",
          "stop_price": 715.62,
          "target": "738.8 (预期高点)",
          "target_source": "expected_high",
          "target_price": 738.79,
          "targets": [
            "738.8 (预期高点)"
          ],
          "level_anchors": {
            "vwap": 736.04,
            "orb_high": 740.27,
            "orb_low": 735.4,
            "prev_high": 715.62,
            "prev_low": 715.62,
            "prior_close": 715.62,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS vs QQQ +2.17%",
            "News 1",
            "Volume 信号",
            "上行空间 <1.0%"
          ],
          "why_chain": "RS vs QQQ +2.17% · News 1 · Volume 信号 · 上行空间 <1.0%",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": 2.17,
            "relative_strength_vs_smh": 1.4,
            "relative_weakness_score": -3.01,
            "gap_pct": 3.24,
            "beta_proxy": 37.17,
            "volume_signal": true,
            "news_count": 1,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 0.75,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Strength",
          "score_formula_display": "final = win_prob(71%) × ER(0.7%) × rr_weight(0.61) / 100",
          "expected_high": 738.79,
          "expected_low": 725.73,
          "expected_close": 736.65,
          "current_price": 731.58,
          "upside_pct": 0.99,
          "downside_risk_pct": 0.8,
          "why_factors": [
            "RS vs QQQ +2.17%",
            "News 1",
            "Volume 信号",
            "上行空间 <1.0%"
          ],
          "why_today": "RS vs QQQ +2.17% · News 1 · Volume 信号 · 上行空间 <1.0%",
          "gap_pct": 3.24,
          "rr_display": {
            "reward_risk_ratio": 0.45,
            "risk_reward_ratio": 2.22,
            "reward_per_share": 7.21,
            "risk_per_share": 15.96,
            "label_reward_risk": "Reward/Risk 0.45",
            "label_risk_reward": "Risk:Reward 1:2.22",
            "display": "Reward/Risk 0.45 · Risk:Reward 1:2.22",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Oil Selloff",
          "invalidation": "Close below stop $715.62 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 731.58,
              "source": "current",
              "confidence": 55,
              "reasons": []
            },
            "stop": {
              "price": 715.62,
              "source": "prev_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "prev_low",
                  "label": "Yesterday Low",
                  "price": 715.62,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "target": {
              "price": 738.79,
              "source": "expected_high",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_high",
                  "label": "Expected High",
                  "price": 738.79,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(738.79-731.58)/731.58=0.99%",
          "heuristic_expected_return_pct": 0.69,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 META:在 731.58 附近入场,目标 738.79,预期 +0.99%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 43.9,
            "shares": 6,
            "contracts": 0,
            "max_loss_usd": 95.76,
            "win_usd": 43.26,
            "loss_usd": 95.76,
            "expected_value_usd": 2.94,
            "risk_per_share": 15.96,
            "reward_per_share": 7.21,
            "rr_display": {
              "reward_risk_ratio": 0.45,
              "risk_reward_ratio": 2.22,
              "reward_per_share": 7.21,
              "risk_per_share": 15.96,
              "label_reward_risk": "Reward/Risk 0.45",
              "label_risk_reward": "Risk:Reward 1:2.22",
              "display": "Reward/Risk 0.45 · Risk:Reward 1:2.22",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$43 / Loss -$96"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 43.9,
            "contracts": 0,
            "shares": 6,
            "max_loss_usd": 95.76,
            "size_label": "None",
            "display": "Risk 1.0% → Position 43.9% → 6 unit(s) → Max Loss $95.76"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "relative_strength",
              "label": "Highest Relative Strength",
              "primary_value": 2.17,
              "runner_up_value": 0.77,
              "wins": true
            },
            {
              "rank": 2,
              "dimension": "win_prob",
              "label": "Highest Probability",
              "primary_value": 71.0,
              "runner_up_value": 71.0,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "ARM",
              "rank": 1,
              "reasons": [
                "Win% 71 vs 59",
                "ER 1.0% vs 1.1%",
                "Score 0.3 vs 0.33",
                "RS +2.2% vs -0.5%"
              ],
              "summary": "Why META over ARM: Win% 71 vs 59 · ER 1.0% vs 1.1% · Score 0.3 vs 0.33 · RS +2.2% vs -0.5%"
            },
            {
              "symbol": "SMH",
              "rank": 3,
              "reasons": [
                "ER 1.0% vs 0.2%",
                "Score 0.3 vs 0.06",
                "RS +2.2% vs +0.8%"
              ],
              "summary": "Why META over SMH: ER 1.0% vs 0.2% · Score 0.3 vs 0.06 · RS +2.2% vs +0.8%"
            },
            {
              "symbol": "MU",
              "rank": 4,
              "reasons": [
                "Win% 71 vs 60",
                "ER 1.0% vs 0.1%",
                "Score 0.3 vs 0.03",
                "RS +2.2% vs +0.2%"
              ],
              "summary": "Why META over MU: Win% 71 vs 60 · ER 1.0% vs 0.1% · Score 0.3 vs 0.03 · RS +2.2% vs +0.2%"
            },
            {
              "symbol": "TQQQ",
              "rank": 5,
              "reasons": [
                "Win% 71 vs 59",
                "ER 1.0% vs 0.1%",
                "Score 0.3 vs 0.03",
                "RS +2.2% vs +0.1%"
              ],
              "summary": "Why META over TQQQ: Win% 71 vs 59 · ER 1.0% vs 0.1% · Score 0.3 vs 0.03 · RS +2.2% vs +0.1%"
            },
            {
              "symbol": "QQQ",
              "rank": 6,
              "reasons": [
                "Win% 71 vs 59",
                "ER 1.0% vs 0.0%",
                "Score 0.3 vs 0.01",
                "RS +2.2% vs +0.0%"
              ],
              "summary": "Why META over QQQ: Win% 71 vs 59 · ER 1.0% vs 0.0% · Score 0.3 vs 0.01 · RS +2.2% vs +0.0%"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 71.0,
            "sample_size": 0,
            "confidence_interval": null,
            "source": "rules_fallback",
            "match_quality": "insufficient",
            "win_prob_source": "rules",
            "disclaimer": "No historical matches; using rules breakdown"
          },
          "similar_days": [
            {
              "date": "2026-08-28",
              "outcome": "win",
              "return_pct": 3.92,
              "match_score": 5,
              "direction": "LONG"
            }
          ],
          "ev_distribution": {
            "expected_value_usd": 2.94,
            "win_scenario_usd": 43.26,
            "loss_scenario_usd": 95.76,
            "win_prob_pct": 71.0,
            "display": "EV $+3 (win +$43 @ 71.0% · loss -$96)"
          },
          "entry_status": {
            "current_price": 731.58,
            "ideal_entry": 731.58,
            "distance_pct": 0.0,
            "remaining_er_pct": 0.99,
            "live_expected_return_pct": 0.99,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 729.39,
            "zone_high": 733.77,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 3,
          "symbol": "SMH",
          "direction": "LONG",
          "instrument": "ETF",
          "horizon": "Intraday",
          "confidence": 71,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+0.36%",
          "expected_return_pct": 0.36,
          "win_prob": 71.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 12.0
              },
              {
                "factor": "Gap",
                "key": "gap",
                "points": 5.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              }
            ],
            "total": 71.0,
            "raw_total": 71.0,
            "was_clamped": false
          },
          "risk_reward": 0.42,
          "final_score": 0.06,
          "trade_action": "Pass",
          "relative_strength": 0.77,
          "entry": "Above 606.1 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 605.83,
          "entry_zone": {
            "low": 604.24,
            "high": 607.41,
            "mid": 605.83,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 606.06
              }
            ],
            "display": "Entry Zone 604–607",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "600.6 (ORB低点)",
          "stop_source": "orb_low",
          "stop_price": 600.64,
          "target": "608.0 (预期高点)",
          "target_source": "expected_high",
          "target_price": 608.02,
          "targets": [
            "608.0 (预期高点)"
          ],
          "level_anchors": {
            "vwap": 606.06,
            "orb_high": 610.75,
            "orb_low": 600.64,
            "prev_high": 600.01,
            "prev_low": 600.01,
            "prior_close": 600.01,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS vs QQQ +0.77%",
            "Gap 未过度延伸",
            "Volume 信号",
            "上行空间 <1.0%"
          ],
          "why_chain": "RS vs QQQ +0.77% · Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": 0.77,
            "relative_strength_vs_smh": 0.0,
            "relative_weakness_score": -0.77,
            "gap_pct": 0.11,
            "beta_proxy": 13.83,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 0.75,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Sector Edge",
          "score_formula_display": "final = win_prob(71%) × ER(0.2%) × rr_weight(0.5) / 100",
          "expected_high": 608.02,
          "expected_low": 600.16,
          "expected_close": 605.98,
          "current_price": 605.0,
          "upside_pct": 0.5,
          "downside_risk_pct": 0.8,
          "why_factors": [
            "RS vs QQQ +0.77%",
            "Gap 未过度延伸",
            "Volume 信号",
            "上行空间 <1.0%"
          ],
          "why_today": "RS vs QQQ +0.77% · Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
          "gap_pct": 0.11,
          "rr_display": {
            "reward_risk_ratio": 0.42,
            "risk_reward_ratio": 2.38,
            "reward_per_share": 2.19,
            "risk_per_share": 5.19,
            "label_reward_risk": "Reward/Risk 0.42",
            "label_risk_reward": "Risk:Reward 1:2.38",
            "display": "Reward/Risk 0.42 · Risk:Reward 1:2.38",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Oil Selloff",
          "invalidation": "Close below stop $600.64 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 605.83,
              "source": "vwap",
              "confidence": 77,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 606.06,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 600.64,
              "source": "orb_low",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 600.64,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "prev_low",
                  "label": "Yesterday Low",
                  "price": 600.01,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 608.02,
              "source": "expected_high",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_high",
                  "label": "Expected High",
                  "price": 608.02,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(608.02-605.83)/605.83=0.36%",
          "heuristic_expected_return_pct": 0.16,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 SMH:在 605.83 附近入场,目标 608.02,预期 +0.36%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "shares": 19,
            "contracts": 0,
            "max_loss_usd": 98.61,
            "win_usd": 41.61,
            "loss_usd": 98.61,
            "expected_value_usd": 0.95,
            "risk_per_share": 5.19,
            "reward_per_share": 2.19,
            "rr_display": {
              "reward_risk_ratio": 0.42,
              "risk_reward_ratio": 2.38,
              "reward_per_share": 2.19,
              "risk_per_share": 5.19,
              "label_reward_risk": "Reward/Risk 0.42",
              "label_risk_reward": "Risk:Reward 1:2.38",
              "display": "Reward/Risk 0.42 · Risk:Reward 1:2.38",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$42 / Loss -$99"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "contracts": 0,
            "shares": 19,
            "max_loss_usd": 98.61,
            "size_label": "None",
            "display": "Risk 1.0% → Position 100.0% → 19 unit(s) → Max Loss $98.61"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "win_prob",
              "label": "Highest Probability",
              "primary_value": 71.0,
              "runner_up_value": 71.0,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "ARM",
              "rank": 1,
              "reasons": [
                "Win% 71 vs 59",
                "ER 0.4% vs 1.1%",
                "Score 0.06 vs 0.33",
                "RS +0.8% vs -0.5%"
              ],
              "summary": "Why SMH over ARM: Win% 71 vs 59 · ER 0.4% vs 1.1% · Score 0.06 vs 0.33 · RS +0.8% vs -0.5%"
            },
            {
              "symbol": "META",
              "rank": 2,
              "reasons": [
                "ER 0.4% vs 0.7%",
                "Score 0.06 vs 0.3",
                "RS +0.8% vs +2.2%"
              ],
              "summary": "Why SMH over META: ER 0.4% vs 0.7% · Score 0.06 vs 0.3 · RS +0.8% vs +2.2%"
            },
            {
              "symbol": "MU",
              "rank": 4,
              "reasons": [
                "Win% 71 vs 60",
                "ER 0.4% vs 0.1%",
                "Score 0.06 vs 0.03",
                "RS +0.8% vs +0.2%"
              ],
              "summary": "Why SMH over MU: Win% 71 vs 60 · ER 0.4% vs 0.1% · Score 0.06 vs 0.03 · RS +0.8% vs +0.2%"
            },
            {
              "symbol": "TQQQ",
              "rank": 5,
              "reasons": [
                "Win% 71 vs 59",
                "ER 0.4% vs 0.1%",
                "Score 0.06 vs 0.03",
                "RS +0.8% vs +0.1%"
              ],
              "summary": "Why SMH over TQQQ: Win% 71 vs 59 · ER 0.4% vs 0.1% · Score 0.06 vs 0.03 · RS +0.8% vs +0.1%"
            },
            {
              "symbol": "QQQ",
              "rank": 6,
              "reasons": [
                "Win% 71 vs 59",
                "ER 0.4% vs 0.0%",
                "Score 0.06 vs 0.01",
                "RS +0.8% vs +0.0%"
              ],
              "summary": "Why SMH over QQQ: Win% 71 vs 59 · ER 0.4% vs 0.0% · Score 0.06 vs 0.01 · RS +0.8% vs +0.0%"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 71.0,
            "sample_size": 0,
            "confidence_interval": null,
            "source": "rules_fallback",
            "match_quality": "insufficient",
            "win_prob_source": "rules",
            "disclaimer": "No historical matches; using rules breakdown"
          },
          "similar_days": [
            {
              "date": "2026-08-28",
              "outcome": "win",
              "return_pct": 3.92,
              "match_score": 3,
              "direction": "LONG"
            }
          ],
          "ev_distribution": {
            "expected_value_usd": 0.95,
            "win_scenario_usd": 41.61,
            "loss_scenario_usd": 98.61,
            "win_prob_pct": 71.0,
            "display": "EV $+1 (win +$42 @ 71.0% · loss -$99)"
          },
          "entry_status": {
            "current_price": 605.0,
            "ideal_entry": 605.83,
            "distance_pct": -0.14,
            "remaining_er_pct": 0.5,
            "live_expected_return_pct": 0.5,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 604.24,
            "zone_high": 607.41,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 4,
          "symbol": "MU",
          "direction": "LONG",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 60,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+0.90%",
          "expected_return_pct": 0.9,
          "win_prob": 60.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "Gap",
                "key": "gap",
                "points": 5.0
              },
              {
                "factor": "Catalyst",
                "key": "catalyst",
                "points": 5.0
              }
            ],
            "total": 60.0,
            "raw_total": 60.0,
            "was_clamped": false
          },
          "risk_reward": 2.39,
          "final_score": 0.03,
          "trade_action": "Pass",
          "relative_strength": 0.21,
          "entry": "Above 1069.1 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 1069.11,
          "entry_zone": {
            "low": 1065.9,
            "high": 1072.32,
            "mid": 1069.11,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 1069.11
              }
            ],
            "display": "Entry Zone 1066–1072",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "1065.1 (ORB低点)",
          "stop_source": "orb_low",
          "stop_price": 1065.08,
          "target": "1078.7 (预期高点)",
          "target_source": "expected_high",
          "target_price": 1078.68,
          "targets": [
            "1078.7 (预期高点)"
          ],
          "level_anchors": {
            "vwap": 1069.11,
            "orb_high": 1081.31,
            "orb_low": 1065.08,
            "prev_high": null,
            "prev_low": null,
            "prior_close": 1065.08,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS vs QQQ +0.21%",
            "Gap 未过度延伸",
            "News 1",
            "上行空间 <1.0%"
          ],
          "why_chain": "RS vs QQQ +0.21% · Gap 未过度延伸 · News 1 · 上行空间 <1.0%",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": 0.21,
            "relative_strength_vs_smh": -0.56,
            "relative_weakness_score": 0.13,
            "gap_pct": 0.67,
            "beta_proxy": 4.5,
            "volume_signal": false,
            "news_count": 1,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 0.75,
            "prior_day_change_pct": 1.33
          },
          "edge_type": "Sector Edge",
          "score_formula_display": "final = win_prob(60%) × ER(0.1%) × rr_weight(0.5) / 100",
          "expected_high": 1078.68,
          "expected_low": 1057.32,
          "expected_close": 1069.16,
          "current_price": 1068.0,
          "upside_pct": 1.0,
          "downside_risk_pct": 1.0,
          "why_factors": [
            "RS vs QQQ +0.21%",
            "Gap 未过度延伸",
            "News 1",
            "上行空间 <1.0%"
          ],
          "why_today": "RS vs QQQ +0.21% · Gap 未过度延伸 · News 1 · 上行空间 <1.0%",
          "gap_pct": 0.67,
          "rr_display": {
            "reward_risk_ratio": 2.37,
            "risk_reward_ratio": 0.42,
            "reward_per_share": 9.57,
            "risk_per_share": 4.03,
            "label_reward_risk": "Reward/Risk 2.37",
            "label_risk_reward": "Risk:Reward 1:0.42",
            "display": "Reward/Risk 2.37 · Risk:Reward 1:0.42",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Oil Selloff",
          "invalidation": "Close below stop $1065.08 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 1069.11,
              "source": "vwap",
              "confidence": 89,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 1069.11,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "prior_close",
                  "label": "Prior Close",
                  "price": 1065.08,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "stop": {
              "price": 1065.08,
              "source": "orb_low",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 1065.08,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 1069.11,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 1078.68,
              "source": "expected_high",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_high",
                  "label": "Expected High",
                  "price": 1078.68,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(1078.68-1069.11)/1069.11=0.90%",
          "heuristic_expected_return_pct": 0.11,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 MU:在 1069.11 附近入场,目标 1078.68,预期 +0.90%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "shares": 24,
            "contracts": 0,
            "max_loss_usd": 96.72,
            "win_usd": 229.68,
            "loss_usd": 96.72,
            "expected_value_usd": 99.12,
            "risk_per_share": 4.03,
            "reward_per_share": 9.57,
            "rr_display": {
              "reward_risk_ratio": 2.37,
              "risk_reward_ratio": 0.42,
              "reward_per_share": 9.57,
              "risk_per_share": 4.03,
              "label_reward_risk": "Reward/Risk 2.37",
              "label_risk_reward": "Risk:Reward 1:0.42",
              "display": "Reward/Risk 2.37 · Risk:Reward 1:0.42",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$230 / Loss -$97"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "contracts": 0,
            "shares": 24,
            "max_loss_usd": 96.72,
            "size_label": "None",
            "display": "Risk 1.0% → Position 100.0% → 24 unit(s) → Max Loss $96.72"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "risk_reward",
              "label": "Best Risk Reward",
              "primary_value": 2.39,
              "runner_up_value": 1.23,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "ARM",
              "rank": 1,
              "reasons": [
                "Win% 60 vs 59",
                "ER 0.9% vs 1.1%",
                "Score 0.03 vs 0.33",
                "RS +0.2% vs -0.5%",
                "R:R 2.39 vs 1.0"
              ],
              "summary": "Why MU over ARM: Win% 60 vs 59 · ER 0.9% vs 1.1% · Score 0.03 vs 0.33 · RS +0.2% vs -0.5% · R:R 2.39 vs 1.0"
            },
            {
              "symbol": "META",
              "rank": 2,
              "reasons": [
                "Win% 60 vs 71",
                "ER 0.9% vs 0.7%",
                "Score 0.03 vs 0.3",
                "RS +0.2% vs +2.2%",
                "R:R 2.39 vs 1.23"
              ],
              "summary": "Why MU over META: Win% 60 vs 71 · ER 0.9% vs 0.7% · Score 0.03 vs 0.3 · RS +0.2% vs +2.2% · R:R 2.39 vs 1.23"
            },
            {
              "symbol": "SMH",
              "rank": 3,
              "reasons": [
                "Win% 60 vs 71",
                "ER 0.9% vs 0.2%",
                "Score 0.03 vs 0.06",
                "RS +0.2% vs +0.8%",
                "R:R 2.39 vs 0.62"
              ],
              "summary": "Why MU over SMH: Win% 60 vs 71 · ER 0.9% vs 0.2% · Score 0.03 vs 0.06 · RS +0.2% vs +0.8% · R:R 2.39 vs 0.62"
            },
            {
              "symbol": "TQQQ",
              "rank": 5,
              "reasons": [
                "Win% 60 vs 59",
                "ER 0.9% vs 0.1%",
                "RS +0.2% vs +0.1%",
                "R:R 2.39 vs 0.62"
              ],
              "summary": "Why MU over TQQQ: Win% 60 vs 59 · ER 0.9% vs 0.1% · RS +0.2% vs +0.1% · R:R 2.39 vs 0.62"
            },
            {
              "symbol": "QQQ",
              "rank": 6,
              "reasons": [
                "Win% 60 vs 59",
                "ER 0.9% vs 0.0%",
                "Score 0.03 vs 0.01",
                "RS +0.2% vs +0.0%",
                "R:R 2.39 vs 0.62"
              ],
              "summary": "Why MU over QQQ: Win% 60 vs 59 · ER 0.9% vs 0.0% · Score 0.03 vs 0.01 · RS +0.2% vs +0.0% · R:R 2.39 vs 0.62"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 60.0,
            "sample_size": 0,
            "confidence_interval": null,
            "source": "rules_fallback",
            "match_quality": "insufficient",
            "win_prob_source": "rules",
            "disclaimer": "No historical matches; using rules breakdown"
          },
          "similar_days": [
            {
              "date": "2026-08-28",
              "outcome": "win",
              "return_pct": 3.92,
              "match_score": 3,
              "direction": "LONG"
            }
          ],
          "ev_distribution": {
            "expected_value_usd": 99.12,
            "win_scenario_usd": 229.68,
            "loss_scenario_usd": 96.72,
            "win_prob_pct": 60.0,
            "display": "EV $+99 (win +$230 @ 60.0% · loss -$97)"
          },
          "entry_status": {
            "current_price": 1068.0,
            "ideal_entry": 1069.11,
            "distance_pct": -0.1,
            "remaining_er_pct": 1.0,
            "live_expected_return_pct": 1.0,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 1065.9,
            "zone_high": 1072.32,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 5,
          "symbol": "TQQQ",
          "direction": "LONG",
          "instrument": "ETF",
          "horizon": "Intraday",
          "confidence": 59,
          "confidence_stars": "★★☆☆☆",
          "expected_move": "+0.65%",
          "expected_return_pct": 0.65,
          "win_prob": 59.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "Gap",
                "key": "gap",
                "points": 5.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              }
            ],
            "total": 59.0,
            "raw_total": 59.0,
            "was_clamped": false
          },
          "risk_reward": 4.55,
          "final_score": 0.03,
          "trade_action": "Pass",
          "relative_strength": 0.06,
          "entry": "Above 77.1 (现价)",
          "entry_source": "current",
          "entry_price": 77.02,
          "entry_zone": {
            "low": 76.91,
            "high": 77.13,
            "mid": 77.02,
            "anchors": [
              {
                "source": "orb_low",
                "label": "ORB低点",
                "price": 76.91
              },
              {
                "source": "prev_high",
                "label": "昨日高点",
                "price": 77.04
              },
              {
                "source": "prev_low",
                "label": "昨日低点",
                "price": 77.04
              },
              {
                "source": "prior_close",
                "label": "昨收",
                "price": 77.04
              }
            ],
            "display": "Entry Zone 76.91–77.13",
            "entry_source": "current",
            "tolerance_pct": 0.3
          },
          "stop": "76.9 (ORB低点)",
          "stop_source": "orb_low",
          "stop_price": 76.91,
          "target": "77.5 (预期高点)",
          "target_source": "expected_high",
          "target_price": 77.52,
          "targets": [
            "77.5 (预期高点)"
          ],
          "level_anchors": {
            "vwap": 77.42,
            "orb_high": 78.15,
            "orb_low": 76.91,
            "prev_high": 77.04,
            "prev_low": 77.04,
            "prior_close": 77.04,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "Gap 未过度延伸",
            "Volume 信号",
            "上行空间 <1.0%"
          ],
          "why_chain": "Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": 0.06,
            "relative_strength_vs_smh": -0.71,
            "relative_weakness_score": 0.37,
            "gap_pct": 1.26,
            "beta_proxy": 2.0,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 0.75,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Index Edge",
          "score_formula_display": "final = win_prob(59%) × ER(0.1%) × rr_weight(0.5) / 100",
          "expected_high": 77.52,
          "expected_low": 76.51,
          "expected_close": 77.22,
          "current_price": 77.13,
          "upside_pct": 0.5,
          "downside_risk_pct": 0.8,
          "why_factors": [
            "Gap 未过度延伸",
            "Volume 信号",
            "上行空间 <1.0%"
          ],
          "why_today": "Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
          "gap_pct": 1.26,
          "rr_display": {
            "reward_risk_ratio": 4.55,
            "risk_reward_ratio": 0.22,
            "reward_per_share": 0.5,
            "risk_per_share": 0.11,
            "label_reward_risk": "Reward/Risk 4.55",
            "label_risk_reward": "Risk:Reward 1:0.22",
            "display": "Reward/Risk 4.55 · Risk:Reward 1:0.22",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Oil Selloff",
          "invalidation": "Close below stop $76.91 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 77.02,
              "source": "current",
              "confidence": 91,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 77.42,
                  "weight_pct": 33.0,
                  "matched": true,
                  "primary": false
                },
                {
                  "source": "prev_high",
                  "label": "Yesterday High",
                  "price": 77.04,
                  "weight_pct": 33.0,
                  "matched": true,
                  "primary": false
                },
                {
                  "source": "prior_close",
                  "label": "Prior Close",
                  "price": 77.04,
                  "weight_pct": 33.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "stop": {
              "price": 76.91,
              "source": "orb_low",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 76.91,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "prev_low",
                  "label": "Yesterday Low",
                  "price": 77.04,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 77.52,
              "source": "expected_high",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_high",
                  "label": "Expected High",
                  "price": 77.52,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(77.52-77.02)/77.02=0.65%",
          "heuristic_expected_return_pct": 0.11,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 TQQQ:在 77.02 附近入场,目标 77.52,预期 +0.65%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "shares": 909,
            "contracts": 0,
            "max_loss_usd": 99.99,
            "win_usd": 454.5,
            "loss_usd": 99.99,
            "expected_value_usd": 227.16,
            "risk_per_share": 0.11,
            "reward_per_share": 0.5,
            "rr_display": {
              "reward_risk_ratio": 4.55,
              "risk_reward_ratio": 0.22,
              "reward_per_share": 0.5,
              "risk_per_share": 0.11,
              "label_reward_risk": "Reward/Risk 4.55",
              "label_risk_reward": "Risk:Reward 1:0.22",
              "display": "Reward/Risk 4.55 · Risk:Reward 1:0.22",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$454 / Loss -$100"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "contracts": 0,
            "shares": 909,
            "max_loss_usd": 99.99,
            "size_label": "None",
            "display": "Risk 1.0% → Position 100.0% → 909 unit(s) → Max Loss $99.99"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "liquidity",
              "label": "Highest Liquidity",
              "primary_value": 5.0,
              "runner_up_value": 5.0,
              "wins": true
            },
            {
              "rank": 2,
              "dimension": "risk_reward",
              "label": "Best Risk Reward",
              "primary_value": 4.55,
              "runner_up_value": 1.23,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "ARM",
              "rank": 1,
              "reasons": [
                "ER 0.7% vs 1.1%",
                "Score 0.03 vs 0.33",
                "RS +0.1% vs -0.5%",
                "R:R 4.55 vs 1.0"
              ],
              "summary": "Why TQQQ over ARM: ER 0.7% vs 1.1% · Score 0.03 vs 0.33 · RS +0.1% vs -0.5% · R:R 4.55 vs 1.0"
            },
            {
              "symbol": "META",
              "rank": 2,
              "reasons": [
                "Win% 59 vs 71",
                "ER 0.7% vs 0.7%",
                "Score 0.03 vs 0.3",
                "RS +0.1% vs +2.2%",
                "R:R 4.55 vs 1.23"
              ],
              "summary": "Why TQQQ over META: Win% 59 vs 71 · ER 0.7% vs 0.7% · Score 0.03 vs 0.3 · RS +0.1% vs +2.2% · R:R 4.55 vs 1.23"
            },
            {
              "symbol": "SMH",
              "rank": 3,
              "reasons": [
                "Win% 59 vs 71",
                "ER 0.7% vs 0.2%",
                "Score 0.03 vs 0.06",
                "RS +0.1% vs +0.8%",
                "R:R 4.55 vs 0.62"
              ],
              "summary": "Why TQQQ over SMH: Win% 59 vs 71 · ER 0.7% vs 0.2% · Score 0.03 vs 0.06 · RS +0.1% vs +0.8% · R:R 4.55 vs 0.62"
            },
            {
              "symbol": "MU",
              "rank": 4,
              "reasons": [
                "Win% 59 vs 60",
                "ER 0.7% vs 0.1%",
                "RS +0.1% vs +0.2%",
                "R:R 4.55 vs 1.0"
              ],
              "summary": "Why TQQQ over MU: Win% 59 vs 60 · ER 0.7% vs 0.1% · RS +0.1% vs +0.2% · R:R 4.55 vs 1.0"
            },
            {
              "symbol": "QQQ",
              "rank": 6,
              "reasons": [
                "ER 0.7% vs 0.0%",
                "Score 0.03 vs 0.01",
                "RS +0.1% vs +0.0%",
                "R:R 4.55 vs 0.62"
              ],
              "summary": "Why TQQQ over QQQ: ER 0.7% vs 0.0% · Score 0.03 vs 0.01 · RS +0.1% vs +0.0% · R:R 4.55 vs 0.62"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 59.0,
            "sample_size": 0,
            "confidence_interval": null,
            "source": "rules_fallback",
            "match_quality": "insufficient",
            "win_prob_source": "rules",
            "disclaimer": "No historical matches; using rules breakdown"
          },
          "similar_days": [
            {
              "date": "2026-08-28",
              "outcome": "win",
              "return_pct": 3.92,
              "match_score": 3,
              "direction": "LONG"
            }
          ],
          "ev_distribution": {
            "expected_value_usd": 227.16,
            "win_scenario_usd": 454.5,
            "loss_scenario_usd": 99.99,
            "win_prob_pct": 59.0,
            "display": "EV $+227 (win +$454 @ 59.0% · loss -$100)"
          },
          "entry_status": {
            "current_price": 77.13,
            "ideal_entry": 77.02,
            "distance_pct": 0.14,
            "remaining_er_pct": 0.51,
            "live_expected_return_pct": 0.51,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 76.91,
            "zone_high": 77.13,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        }
      ],
      "watchlist_items": [
        {
          "symbol": "QQQ",
          "rank": 6,
          "win_prob": 59.0,
          "expected_return_pct": 0.04,
          "trade_action": "Pass",
          "why": "Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "AVGO",
          "rank": 7,
          "win_prob": 49.0,
          "expected_return_pct": 0.04,
          "trade_action": "Pass",
          "why": "Gap 未过度延伸 · 上行空间 <1.0%",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "SPY",
          "rank": 8,
          "win_prob": 59.0,
          "expected_return_pct": -0.04,
          "trade_action": "Pass",
          "why": "Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "NVDA",
          "rank": 9,
          "win_prob": 48.0,
          "expected_return_pct": -0.28,
          "trade_action": "Pass",
          "why": "RS 弱于 QQQ -0.52% · Gap 未过度延伸 · News 8 · Volume 信号",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "AMD",
          "rank": 10,
          "win_prob": 39.0,
          "expected_return_pct": -0.35,
          "trade_action": "Pass",
          "why": "RS 弱于 QQQ -0.76% · Gap 未过度延伸 · 上行空间 <1.0%",
          "note": "Monitor — below trade threshold"
        }
      ],
      "advisory": true,
      "swing": {
        "symbol": "TSLA",
        "direction": "SHORT",
        "instrument": "Stock",
        "horizon": "Swing",
        "duration": "Swing (days–weeks)",
        "confidence": 54,
        "entry": "Near 351.2 (swing zone)",
        "entry_source": "swing_zone",
        "entry_price": 351.19,
        "entry_zone": {
          "low": 350.14,
          "high": 356.69,
          "mid": 351.19,
          "display": "$350.14–$356.69",
          "source": "swing_pullback"
        },
        "stop": "367.7 (1.75xATR)",
        "stop_source": "1.75xATR",
        "stop_price": 367.68,
        "target": "329.2 (T1 ~6.3%)",
        "target_source": "2xATR_or_5pct",
        "target_price": 329.2,
        "targets": [
          {
            "price": 329.2,
            "label": "T1",
            "pct": 6.26
          },
          {
            "price": 316.07,
            "label": "T2",
            "pct": 10.0
          }
        ],
        "expected_return_pct": 6.26,
        "expected_move": "+6.26%",
        "risk_reward": 1.33,
        "win_prob": 49.0,
        "final_score": 0.0,
        "swing_quality": 4.936,
        "atr": 10.9957,
        "atr_source": "ATR14",
        "level_formula": "stop=1.5–2×ATR or prior-week extreme; T1=max(5%, 2×ATR); T2=min(15%, max(10%, 3×ATR))",
        "current_price": 350.14,
        "why": [
          "高流动性波段标的 TSLA",
          "Prior day +0.0%",
          "5D momentum -6.9%",
          "RS vs QQQ -2.11%",
          "Swing score 4.9"
        ],
        "why_chain": "高流动性波段标的 TSLA · Prior day +0.0% · 5D momentum -6.9% · RS vs QQQ -2.11%",
        "invalidation": "Close beyond stop $367.68 or thesis broken (trend flip / catalyst fade)",
        "trade_summary_cn": "波段做空 TSLA:理想入场 $350.14–$356.69,止损 $367.68,目标 $329.2(约 +6.3%),持仓天数–数周",
        "one_liner": "波段做空 TSLA:理想入场 $350.14–$356.69,止损 $367.68,目标 $329.2(约 +6.3%),持仓天数–数周",
        "edge_type": "Relative Weakness",
        "advisory": true,
        "label": "长线 · Swing Trade",
        "separate_from_intraday": true
      }
    },
    "edges": {
      "macro_edge": {
        "edge": "YES",
        "why": "今日有重大催化剂(含地缘/突发):Geopolitical Risk、Oil Selloff、Trade Policy",
        "catalyst": "Geopolitical Risk、Oil Selloff、Trade Policy"
      },
      "index_edge": {
        "edge": "NO",
        "why": "指数方向不明或幅度不足"
      },
      "sector_edge": {
        "edge": "YES",
        "why": "SMH 领先 QQQ +0.87%",
        "sector": "Semiconductor"
      },
      "stock_edge": {
        "edge": "NO",
        "why": "无单票 RS+新闻+量能共振"
      },
      "advisory": "ADVISORY — 不构成投资建议"
    },
    "trade_candidates": [
      {
        "symbol": "ARM",
        "win_prob": 59.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -6.0
            },
            {
              "factor": "Trend",
              "key": "trend",
              "points": 10.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            }
          ],
          "total": 59.0,
          "raw_total": 59.0,
          "was_clamped": false
        },
        "expected_return_pct": 1.11,
        "expected_high": 295.74,
        "expected_low": 289.22,
        "expected_close": 295.74,
        "current_price": 292.48,
        "upside_pct": 1.11,
        "downside_risk_pct": 1.11,
        "risk_reward": 1.0,
        "rr_display": {
          "reward_risk_ratio": 1.0,
          "risk_reward_ratio": 1.0,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.00",
          "label_risk_reward": "Risk:Reward 1:1.00",
          "display": "Reward/Risk 1.00 · Risk:Reward 1:1.00",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.33,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.41,
        "relative_strength": -0.47,
        "relative_strength_vs_smh": -1.24,
        "relative_weakness_score": 1.21,
        "prior_day_change_pct": 3.23,
        "why_factors": [
          "昨日强势 +3.2% 今日 gap 可控",
          "Gap 未过度延伸"
        ],
        "why": "昨日强势 +3.2% 今日 gap 可控 · Gap 未过度延伸",
        "score": 3,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.47,
          "relative_strength_vs_smh": -1.24,
          "relative_weakness_score": 1.21,
          "gap_pct": 0.41,
          "beta_proxy": -6.83,
          "volume_signal": false,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 3.23
        },
        "edge_type": "Sector Edge",
        "score_formula_display": "final = win_prob(59%) × ER(1.1%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "ARM RS -0.5% vs META +2.2%;ER 1.1% vs 0.7%;relative weakness play",
        "advisory": true,
        "rank": 1,
        "direction": "LONG"
      },
      {
        "symbol": "META",
        "win_prob": 71.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 12.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 71.0,
          "raw_total": 71.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.69,
        "expected_high": 738.79,
        "expected_low": 725.73,
        "expected_close": 736.65,
        "current_price": 731.58,
        "upside_pct": 0.99,
        "downside_risk_pct": 0.8,
        "risk_reward": 1.23,
        "rr_display": {
          "reward_risk_ratio": 1.23,
          "risk_reward_ratio": 0.81,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.23",
          "label_risk_reward": "Risk:Reward 1:0.81",
          "display": "Reward/Risk 1.23 · Risk:Reward 1:0.81",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.3,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 3.24,
        "relative_strength": 2.17,
        "relative_strength_vs_smh": 1.4,
        "relative_weakness_score": -3.01,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS vs QQQ +2.17%",
          "News 1",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS vs QQQ +2.17% · News 1 · Volume 信号 · 上行空间 <1.0%",
        "score": 3,
        "news_count": 1,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.17,
          "relative_strength_vs_smh": 1.4,
          "relative_weakness_score": -3.01,
          "gap_pct": 3.24,
          "beta_proxy": 37.17,
          "volume_signal": true,
          "news_count": 1,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(71%) × ER(0.7%) × rr_weight(0.61) / 100",
        "rr_weight": 0.61,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 2,
        "direction": "LONG"
      },
      {
        "symbol": "SMH",
        "win_prob": 71.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 12.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 71.0,
          "raw_total": 71.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.16,
        "expected_high": 608.02,
        "expected_low": 600.16,
        "expected_close": 605.98,
        "current_price": 605.0,
        "upside_pct": 0.5,
        "downside_risk_pct": 0.8,
        "risk_reward": 0.62,
        "rr_display": {
          "reward_risk_ratio": 0.62,
          "risk_reward_ratio": 1.61,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.62",
          "label_risk_reward": "Risk:Reward 1:1.61",
          "display": "Reward/Risk 0.62 · Risk:Reward 1:1.61",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.06,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.11,
        "relative_strength": 0.77,
        "relative_strength_vs_smh": 0.0,
        "relative_weakness_score": -0.77,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS vs QQQ +0.77%",
          "Gap 未过度延伸",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS vs QQQ +0.77% · Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
        "score": 1,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.77,
          "relative_strength_vs_smh": 0.0,
          "relative_weakness_score": -0.77,
          "gap_pct": 0.11,
          "beta_proxy": 13.83,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Sector Edge",
        "score_formula_display": "final = win_prob(71%) × ER(0.2%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 3,
        "direction": "LONG"
      },
      {
        "symbol": "MU",
        "win_prob": 60.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": 5.0
            }
          ],
          "total": 60.0,
          "raw_total": 60.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.11,
        "expected_high": 1078.68,
        "expected_low": 1057.32,
        "expected_close": 1069.16,
        "current_price": 1068.0,
        "upside_pct": 1.0,
        "downside_risk_pct": 1.0,
        "risk_reward": 1.0,
        "rr_display": {
          "reward_risk_ratio": 1.0,
          "risk_reward_ratio": 1.0,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.00",
          "label_risk_reward": "Risk:Reward 1:1.00",
          "display": "Reward/Risk 1.00 · Risk:Reward 1:1.00",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.03,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.67,
        "relative_strength": 0.21,
        "relative_strength_vs_smh": -0.56,
        "relative_weakness_score": 0.13,
        "prior_day_change_pct": 1.33,
        "why_factors": [
          "RS vs QQQ +0.21%",
          "Gap 未过度延伸",
          "News 1",
          "上行空间 <1.0%"
        ],
        "why": "RS vs QQQ +0.21% · Gap 未过度延伸 · News 1 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 1,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.21,
          "relative_strength_vs_smh": -0.56,
          "relative_weakness_score": 0.13,
          "gap_pct": 0.67,
          "beta_proxy": 4.5,
          "volume_signal": false,
          "news_count": 1,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 1.33
        },
        "edge_type": "Sector Edge",
        "score_formula_display": "final = win_prob(60%) × ER(0.1%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 4,
        "direction": "LONG"
      },
      {
        "symbol": "TQQQ",
        "win_prob": 59.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 59.0,
          "raw_total": 59.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.11,
        "expected_high": 77.52,
        "expected_low": 76.51,
        "expected_close": 77.22,
        "current_price": 77.13,
        "upside_pct": 0.5,
        "downside_risk_pct": 0.8,
        "risk_reward": 0.62,
        "rr_display": {
          "reward_risk_ratio": 0.62,
          "risk_reward_ratio": 1.61,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.62",
          "label_risk_reward": "Risk:Reward 1:1.61",
          "display": "Reward/Risk 0.62 · Risk:Reward 1:1.61",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.03,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 1.26,
        "relative_strength": 0.06,
        "relative_strength_vs_smh": -0.71,
        "relative_weakness_score": 0.37,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "Gap 未过度延伸",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.06,
          "relative_strength_vs_smh": -0.71,
          "relative_weakness_score": 0.37,
          "gap_pct": 1.26,
          "beta_proxy": 2.0,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Index Edge",
        "score_formula_display": "final = win_prob(59%) × ER(0.1%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 5,
        "direction": "LONG"
      },
      {
        "symbol": "QQQ",
        "win_prob": 59.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 59.0,
          "raw_total": 59.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.04,
        "expected_high": 740.68,
        "expected_low": 731.1,
        "expected_close": 737.27,
        "current_price": 737.0,
        "upside_pct": 0.5,
        "downside_risk_pct": 0.8,
        "risk_reward": 0.62,
        "rr_display": {
          "reward_risk_ratio": 0.62,
          "risk_reward_ratio": 1.61,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.62",
          "label_risk_reward": "Risk:Reward 1:1.61",
          "display": "Reward/Risk 0.62 · Risk:Reward 1:1.61",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.01,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.45,
        "relative_strength": 0.0,
        "relative_strength_vs_smh": -0.77,
        "relative_weakness_score": 0.46,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "Gap 未过度延伸",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.0,
          "relative_strength_vs_smh": -0.77,
          "relative_weakness_score": 0.46,
          "gap_pct": 0.45,
          "beta_proxy": 1.0,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Index Edge",
        "score_formula_display": "final = win_prob(59%) × ER(0.0%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 6,
        "direction": "LONG"
      },
      {
        "symbol": "AVGO",
        "win_prob": 49.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -6.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            }
          ],
          "total": 49.0,
          "raw_total": 49.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.04,
        "expected_high": 358.9,
        "expected_low": 351.8,
        "expected_close": 355.48,
        "current_price": 355.35,
        "upside_pct": 1.0,
        "downside_risk_pct": 1.0,
        "risk_reward": 1.0,
        "rr_display": {
          "reward_risk_ratio": 1.0,
          "risk_reward_ratio": 1.0,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.00",
          "label_risk_reward": "Risk:Reward 1:1.00",
          "display": "Reward/Risk 1.00 · Risk:Reward 1:1.00",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.01,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.34,
        "relative_strength": 0.01,
        "relative_strength_vs_smh": -0.76,
        "relative_weakness_score": 0.45,
        "prior_day_change_pct": 1.65,
        "why_factors": [
          "Gap 未过度延伸",
          "上行空间 <1.0%"
        ],
        "why": "Gap 未过度延伸 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.01,
          "relative_strength_vs_smh": -0.76,
          "relative_weakness_score": 0.45,
          "gap_pct": 0.34,
          "beta_proxy": 1.17,
          "volume_signal": false,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 1.65
        },
        "edge_type": "Sector Edge",
        "score_formula_display": "final = win_prob(49%) × ER(0.0%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 7,
        "direction": "LONG"
      },
      {
        "symbol": "SPY",
        "win_prob": 59.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 59.0,
          "raw_total": 59.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.04,
        "expected_high": 768.17,
        "expected_low": 758.24,
        "expected_close": 764.08,
        "current_price": 764.35,
        "upside_pct": 0.5,
        "downside_risk_pct": 0.8,
        "risk_reward": 0.62,
        "rr_display": {
          "reward_risk_ratio": 0.62,
          "risk_reward_ratio": 1.61,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.62",
          "label_risk_reward": "Risk:Reward 1:1.61",
          "display": "Reward/Risk 0.62 · Risk:Reward 1:1.61",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.11,
        "relative_strength": -0.22,
        "relative_strength_vs_smh": -0.99,
        "relative_weakness_score": 0.81,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "Gap 未过度延伸",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.22,
          "relative_strength_vs_smh": -0.99,
          "relative_weakness_score": 0.81,
          "gap_pct": 0.11,
          "beta_proxy": -2.67,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Index Edge",
        "score_formula_display": "final = win_prob(59%) × ER(-0.0%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 8,
        "direction": "LONG"
      },
      {
        "symbol": "NVDA",
        "win_prob": 48.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -16.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 48.0,
          "raw_total": 48.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.28,
        "expected_high": 228.96,
        "expected_low": 226.0,
        "expected_close": 227.19,
        "current_price": 227.82,
        "upside_pct": 0.5,
        "downside_risk_pct": 0.8,
        "risk_reward": 0.62,
        "rr_display": {
          "reward_risk_ratio": 0.62,
          "risk_reward_ratio": 1.61,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.62",
          "label_risk_reward": "Risk:Reward 1:1.61",
          "display": "Reward/Risk 0.62 · Risk:Reward 1:1.61",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.21,
        "relative_strength": -0.52,
        "relative_strength_vs_smh": -1.29,
        "relative_weakness_score": 1.29,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS 弱于 QQQ -0.52%",
          "Gap 未过度延伸",
          "News 8",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS 弱于 QQQ -0.52% · Gap 未过度延伸 · News 8 · Volume 信号",
        "score": 0,
        "news_count": 8,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.52,
          "relative_strength_vs_smh": -1.29,
          "relative_weakness_score": 1.29,
          "gap_pct": -0.21,
          "beta_proxy": -7.67,
          "volume_signal": true,
          "news_count": 8,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Sector Edge",
        "score_formula_display": "final = win_prob(48%) × ER(-0.3%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 9,
        "direction": "LONG"
      },
      {
        "symbol": "AMD",
        "win_prob": 39.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -16.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            }
          ],
          "total": 39.0,
          "raw_total": 39.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.35,
        "expected_high": 609.34,
        "expected_low": 597.28,
        "expected_close": 601.19,
        "current_price": 603.31,
        "upside_pct": 1.0,
        "downside_risk_pct": 1.0,
        "risk_reward": 1.0,
        "rr_display": {
          "reward_risk_ratio": 1.0,
          "risk_reward_ratio": 1.0,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.00",
          "label_risk_reward": "Risk:Reward 1:1.00",
          "display": "Reward/Risk 1.00 · Risk:Reward 1:1.00",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.36,
        "relative_strength": -0.76,
        "relative_strength_vs_smh": -1.53,
        "relative_weakness_score": 1.68,
        "prior_day_change_pct": -0.75,
        "why_factors": [
          "RS 弱于 QQQ -0.76%",
          "Gap 未过度延伸",
          "上行空间 <1.0%"
        ],
        "why": "RS 弱于 QQQ -0.76% · Gap 未过度延伸 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.76,
          "relative_strength_vs_smh": -1.53,
          "relative_weakness_score": 1.68,
          "gap_pct": 0.36,
          "beta_proxy": -11.67,
          "volume_signal": false,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": -0.75
        },
        "edge_type": "Sector Edge",
        "score_formula_display": "final = win_prob(39%) × ER(-0.4%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 10,
        "direction": "LONG"
      },
      {
        "symbol": "TSLA",
        "win_prob": 49.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -10.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 49.0,
          "raw_total": 49.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.48,
        "expected_high": 352.84,
        "expected_low": 347.34,
        "expected_close": 348.45,
        "current_price": 350.14,
        "upside_pct": 0.77,
        "downside_risk_pct": 0.8,
        "risk_reward": 0.96,
        "rr_display": {
          "reward_risk_ratio": 0.96,
          "risk_reward_ratio": 1.04,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.96",
          "label_risk_reward": "Risk:Reward 1:1.04",
          "display": "Reward/Risk 0.96 · Risk:Reward 1:1.04",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.75,
        "relative_strength": -2.11,
        "relative_strength_vs_smh": -2.88,
        "relative_weakness_score": 3.84,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS 弱于 QQQ -2.11%",
          "Gap 未过度延伸",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS 弱于 QQQ -2.11% · Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -2.11,
          "relative_strength_vs_smh": -2.88,
          "relative_weakness_score": 3.84,
          "gap_pct": -0.75,
          "beta_proxy": -34.17,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 0.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(49%) × ER(-0.5%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 11,
        "direction": "LONG"
      }
    ]
  },
  "intraday": {
    "s5": {
      "driver_still_valid": true,
      "action": "Hold"
    },
    "s6": {
      "trade_valid": false,
      "action": "N/A"
    },
    "s7": {
      "actual_driver": "Bond/Rates",
      "attribution": {
        "ai": 0.276,
        "bond": 0.632,
        "oil": 0.0,
        "macro": 0.042,
        "other": 0.05,
        "splits": {}
      }
    }
  },
  "trade_plan": {},
  "actual": {},
  "attribution": {
    "ai": 0.276,
    "bond": 0.632,
    "oil": 0.0,
    "macro": 0.042,
    "other": 0.05,
    "splits": {}
  },
  "labels": {
    "actual_driver": "Bond/Rates",
    "agent_driver": "Geopolitical Risk",
    "agent_driver_type": "Political",
    "corrected_driver_from_verify": null,
    "driver_splits": {},
    "hypothesis_correct": "错",
    "scenario_primary": "A",
    "scenario_actual": "C",
    "scenario_correct": false,
    "trade_recommendation": "—",
    "trade_direction": "NO TRADE",
    "primary_symbol": "—",
    "predicted_return_pct": null,
    "prediction_error_pct": null
  },
  "surprise": "No major surprises vs typical driver mix",
  "lesson": "Morning Hypothesis 被 Chip/Macro 冲突推翻——复盘 P10/P15 权重",
  "playbook_refs": [
    "Case-60"
  ],
  "bayesian_drivers": {
    "AI": 1.0,
    "Bond": 0.0,
    "Macro": 0.0,
    "Oil": 0.0,
    "Risk": 0.0
  },
  "data_gaps": []
}