← 全部 Cases · 今日流程

Market Case · 2026-07-09

Day 5

Day 5
9/9 Steps

Regime · Hypothesis

R0 Regime
AI Expansion (82.0%)
Hypothesis
AI/Semiconductor leads index today; macro is secondary variable
ID
H-2026-07-09-001

Labels · Attribution

真正 Driver
AI/Semiconductor
Hypothesis 结果
部分对
Scenario 预测
A
Scenario 实际
A
Scenario 命中
AI 贡献
90%
Bond
3%

Surprise · Lesson

Surprise:AI/Semiconductor dominated more than typical day

Lesson:AI Expansion Regime 下,单日 SMH/NVDA 抛售可压过 Macro 利好,指数分化(Dow+ / QQQ-)比「大盘涨跌」更有信息量

Evidence / Counter

Evidence

  • VIX=17.1 (low fear)
  • NVDA +4.5%
  • SMH +5.0%

Counter

  • Breadth 29% (narrow market)

Step 快捷入口

原始 JSON
{
  "date": "2026-07-09",
  "features": {
    "dgs10": 4.55,
    "dgs2": null,
    "vix": 17.07,
    "vix_chg": 1.01,
    "qqq_chg": 2.01,
    "smh_chg": 4.58,
    "nvda_chg": 3.0,
    "spy_chg": 0.0,
    "oil_chg": 0.0,
    "dxy_chg": -0.04,
    "breadth_proxy": 0.7142857142857143,
    "qqq_gap": 1.05,
    "news_headline_count": 20,
    "news_bearish_ratio": 0.0,
    "news_ai_mentions": 19,
    "news_macro_mentions": 2,
    "news_oil_mentions": 3,
    "news_risk_mentions": 2
  },
  "regime": {
    "label": "AI Expansion",
    "confidence": 0.82
  },
  "hypothesis": {
    "id": "H-2026-07-09-001",
    "statement": "AI/Semiconductor leads index today; macro is secondary variable",
    "evidence": [
      "VIX=17.1 (low fear)",
      "NVDA +4.5%",
      "SMH +5.0%"
    ],
    "counter_evidence": [
      "Breadth 29% (narrow market)"
    ],
    "confidence": 0.86,
    "status": "待验证"
  },
  "morning": {
    "bias": "Bull",
    "total": 5,
    "driver_type": "Political",
    "daily_driver": "Geopolitical Risk",
    "best_opportunity": {
      "direction": "LONG",
      "symbol": "MU",
      "instrument": "Stock",
      "confidence": 77,
      "confidence_stars": "★★★☆☆",
      "entry": "Above 985.1 (VWAP)",
      "entry_source": "vwap",
      "entry_price": 985.14,
      "stop": "935.0 (ORB低点)",
      "stop_source": "orb_low",
      "stop_price": 935.0,
      "target": "1039.9 (预期收盘)",
      "target_source": "expected_close",
      "target_price": 1039.88,
      "target_action": "卖出/获利",
      "targets": [
        "1039.9 (预期收盘)"
      ],
      "duration": "Swing",
      "why": [
        "RS vs QQQ +4.31%",
        "昨日强势 +6.8% 今日 gap 可控",
        "News 1"
      ],
      "why_chain": "RS vs QQQ +4.31% · 昨日强势 +6.8% 今日 gap 可控 · News 1",
      "why_vs_runner_up": "MU RS +4.3% vs AVGO +2.4%;ER 4.0% vs 3.9%;Win% 77 vs 71;higher beta (5.0 vs 3.2);relative strength",
      "factor_breakdown": {
        "relative_strength_vs_qqq": 4.31,
        "relative_strength_vs_smh": 0.38,
        "relative_weakness_score": -4.54,
        "gap_pct": 3.97,
        "beta_proxy": 5.03,
        "volume_signal": false,
        "news_count": 1,
        "extended_gap_penalty": 0.0,
        "vix_change_pct": 1.01,
        "prior_day_change_pct": 6.77
      },
      "edge_type": "Stock Edge",
      "score_formula_display": "final = win_prob(77%) × ER(4.0%) × rr_weight(0.5) / 100",
      "win_prob": 77.0,
      "win_prob_breakdown": {
        "components": [
          {
            "factor": "Base",
            "key": "base",
            "points": 50.0
          },
          {
            "factor": "RS",
            "key": "rs",
            "points": 12.0
          },
          {
            "factor": "Trend",
            "key": "trend",
            "points": 10.0
          },
          {
            "factor": "Catalyst",
            "key": "catalyst",
            "points": 5.0
          }
        ],
        "total": 77.0,
        "raw_total": 77.0,
        "was_clamped": false
      },
      "expected_return_pct": 5.56,
      "expected_move": "+5.56%",
      "return_calculation": "(1039.88-985.14)/985.14=5.56%",
      "trade_summary_cn": "做多 MU:在 985.14 附近入场,目标 1039.88,预期 +5.56%",
      "risk_reward": 1.09,
      "rr_display": {
        "reward_risk_ratio": 1.09,
        "risk_reward_ratio": 0.92,
        "reward_per_share": 54.74,
        "risk_per_share": 50.14,
        "label_reward_risk": "Reward/Risk 1.09",
        "label_risk_reward": "Risk:Reward 1:0.92",
        "display": "Reward/Risk 1.09 · Risk:Reward 1:0.92",
        "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
      },
      "entry_zone": {
        "low": 982.18,
        "high": 988.1,
        "mid": 985.14,
        "anchors": [
          {
            "source": "vwap",
            "label": "VWAP",
            "price": 985.14
          }
        ],
        "display": "Entry Zone 982–988",
        "entry_source": "vwap",
        "tolerance_pct": 0.3
      },
      "rank_summary": "MU ranked #1 because weakest RS + largest expected range + highest probability",
      "win_prob_source": "rules",
      "calibration": {
        "calibrated_win_prob": 77.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": null,
      "ev_distribution": {
        "expected_value_usd": 30.62,
        "win_scenario_usd": 54.74,
        "loss_scenario_usd": 50.14,
        "win_prob_pct": 77.0,
        "display": "EV $+31 (win +$55 @ 77.0% · loss -$50)"
      },
      "final_score": 1.54,
      "level_anchors": {
        "vwap": 985.14,
        "orb_high": 994.38,
        "orb_low": 935.0,
        "prev_high": null,
        "prev_low": null,
        "prior_close": 948.8,
        "orb_from_minute": true
      },
      "level_reasons": {
        "entry": {
          "price": 985.14,
          "source": "vwap",
          "confidence": 77,
          "reasons": [
            {
              "source": "vwap",
              "label": "VWAP",
              "price": 985.14,
              "weight_pct": 100.0,
              "matched": true,
              "primary": true
            }
          ]
        },
        "stop": {
          "price": 935.0,
          "source": "orb_low",
          "confidence": 77,
          "reasons": [
            {
              "source": "orb_low",
              "label": "ORB Low",
              "price": 935.0,
              "weight_pct": 100.0,
              "matched": true,
              "primary": true
            }
          ]
        },
        "target": {
          "price": 1039.88,
          "source": "expected_close",
          "confidence": 77,
          "reasons": [
            {
              "source": "expected_close",
              "label": "Expected Close",
              "price": 1039.88,
              "weight_pct": 100.0,
              "matched": true,
              "primary": true
            }
          ]
        }
      },
      "trade_economics": {
        "account_size": 10000.0,
        "risk_pct": 1.0,
        "position_pct": 9.9,
        "shares": 1,
        "contracts": 1,
        "max_loss_usd": 50.14,
        "win_usd": 54.74,
        "loss_usd": 50.14,
        "expected_value_usd": 30.62,
        "risk_per_share": 50.14,
        "reward_per_share": 54.74,
        "rr_display": {
          "reward_risk_ratio": 1.09,
          "risk_reward_ratio": 0.92,
          "reward_per_share": 54.74,
          "risk_per_share": 50.14,
          "label_reward_risk": "Reward/Risk 1.09",
          "label_risk_reward": "Risk:Reward 1:0.92",
          "display": "Reward/Risk 1.09 · Risk:Reward 1:0.92",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "size_label": "Small",
        "display": "$10,000 → Win +$55 / Loss -$50"
      },
      "position_sizing": {
        "risk_pct": 1.0,
        "position_pct": 9.9,
        "contracts": 1,
        "shares": 1,
        "max_loss_usd": 50.14,
        "size_label": "Small",
        "display": "Risk 1.0% → Position 9.9% → 1 unit(s) → Max Loss $50.14"
      },
      "why_wins_today": [
        {
          "rank": 1,
          "dimension": "relative_strength",
          "label": "Highest Relative Strength",
          "primary_value": 4.31,
          "runner_up_value": 3.93,
          "wins": true
        },
        {
          "rank": 2,
          "dimension": "expected_range",
          "label": "Largest Expected Range",
          "primary_value": 8.0,
          "runner_up_value": 7.84,
          "wins": true
        },
        {
          "rank": 3,
          "dimension": "win_prob",
          "label": "Highest Probability",
          "primary_value": 77.0,
          "runner_up_value": 71.0,
          "wins": true
        }
      ],
      "why_not_alternatives": [
        {
          "symbol": "AVGO",
          "rank": 2,
          "reasons": [
            "Win% 77 vs 71",
            "ER 5.6% vs 3.9%",
            "Score 1.54 vs 1.39",
            "RS +4.3% vs +2.4%",
            "R:R 1.09 vs 1.0"
          ],
          "summary": "Why MU over AVGO: Win% 77 vs 71 · ER 5.6% vs 3.9% · Score 1.54 vs 1.39 · RS +4.3% vs +2.4% · R:R 1.09 vs 1.0"
        },
        {
          "symbol": "ARM",
          "rank": 3,
          "reasons": [
            "Win% 77 vs 71",
            "ER 5.6% vs 2.1%",
            "Score 1.54 vs 0.75",
            "RS +4.3% vs +2.9%",
            "R:R 1.09 vs 1.0"
          ],
          "summary": "Why MU over ARM: Win% 77 vs 71 · ER 5.6% vs 2.1% · Score 1.54 vs 0.75 · RS +4.3% vs +2.9% · R:R 1.09 vs 1.0"
        },
        {
          "symbol": "AMD",
          "rank": 4,
          "reasons": [
            "Win% 77 vs 71",
            "ER 5.6% vs 1.8%",
            "Score 1.54 vs 0.64",
            "RS +4.3% vs +2.2%",
            "R:R 1.09 vs 1.0"
          ],
          "summary": "Why MU over AMD: Win% 77 vs 71 · ER 5.6% vs 1.8% · Score 1.54 vs 0.64 · RS +4.3% vs +2.2% · R:R 1.09 vs 1.0"
        },
        {
          "symbol": "SMH",
          "rank": 5,
          "reasons": [
            "Win% 77 vs 66",
            "ER 5.6% vs 1.1%",
            "Score 1.54 vs 0.36",
            "RS +4.3% vs +3.9%",
            "R:R 1.09 vs 0.38",
            "Tradeable (Small) vs Pass"
          ],
          "summary": "Why MU over SMH: Win% 77 vs 66 · ER 5.6% vs 1.1% · Score 1.54 vs 0.36 · RS +4.3% vs +3.9% · R:R 1.09 vs 0.38 · Tradeable (Small) vs Pass"
        },
        {
          "symbol": "NVDA",
          "rank": 6,
          "reasons": [
            "Win% 77 vs 65",
            "ER 5.6% vs 0.9%",
            "Score 1.54 vs 0.3",
            "RS +4.3% vs +3.3%",
            "R:R 1.09 vs 1.0",
            "Tradeable (Small) vs Pass"
          ],
          "summary": "Why MU over NVDA: Win% 77 vs 65 · ER 5.6% vs 0.9% · Score 1.54 vs 0.3 · RS +4.3% vs +3.3% · R:R 1.09 vs 1.0 · Tradeable (Small) vs Pass"
        }
      ],
      "avoid": [],
      "one_liner": "做多 MU:在 985.14 附近入场,目标 1039.88,预期 +5.56%",
      "p16_gate": "No Trade",
      "advisory": true
    },
    "best_trades": {
      "primary": {
        "rank": 1,
        "symbol": "MU",
        "direction": "LONG",
        "instrument": "Stock",
        "confidence": 77,
        "confidence_stars": "★★★☆☆",
        "expected_move": "+5.56%",
        "expected_return_pct": 5.56,
        "win_prob": 77.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 12.0
            },
            {
              "factor": "Trend",
              "key": "trend",
              "points": 10.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": 5.0
            }
          ],
          "total": 77.0,
          "raw_total": 77.0,
          "was_clamped": false
        },
        "risk_reward": 1.09,
        "final_score": 1.54,
        "trade_action": "Small",
        "relative_strength": 4.31,
        "entry": "Above 985.1 (VWAP)",
        "entry_source": "vwap",
        "entry_price": 985.14,
        "entry_zone": {
          "low": 982.18,
          "high": 988.1,
          "mid": 985.14,
          "anchors": [
            {
              "source": "vwap",
              "label": "VWAP",
              "price": 985.14
            }
          ],
          "display": "Entry Zone 982–988",
          "entry_source": "vwap",
          "tolerance_pct": 0.3
        },
        "stop": "935.0 (ORB低点)",
        "stop_source": "orb_low",
        "stop_price": 935.0,
        "target": "1039.9 (预期收盘)",
        "target_source": "expected_close",
        "target_price": 1039.88,
        "targets": [
          "1039.9 (预期收盘)"
        ],
        "level_anchors": {
          "vwap": 985.14,
          "orb_high": 994.38,
          "orb_low": 935.0,
          "prev_high": null,
          "prev_low": null,
          "prior_close": 948.8,
          "orb_from_minute": true
        },
        "why": [
          "RS vs QQQ +4.31%",
          "昨日强势 +6.8% 今日 gap 可控",
          "News 1"
        ],
        "why_chain": "RS vs QQQ +4.31% · 昨日强势 +6.8% 今日 gap 可控 · News 1",
        "why_vs_runner_up": "MU RS +4.3% vs AVGO +2.4%;ER 4.0% vs 3.9%;Win% 77 vs 71;higher beta (5.0 vs 3.2);relative strength",
        "factor_breakdown": {
          "relative_strength_vs_qqq": 4.31,
          "relative_strength_vs_smh": 0.38,
          "relative_weakness_score": -4.54,
          "gap_pct": 3.97,
          "beta_proxy": 5.03,
          "volume_signal": false,
          "news_count": 1,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 6.77
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(77%) × ER(4.0%) × rr_weight(0.5) / 100",
        "expected_high": 1039.88,
        "expected_low": 959.88,
        "expected_close": 1039.88,
        "current_price": 999.88,
        "upside_pct": 4.0,
        "downside_risk_pct": 4.0,
        "why_factors": [
          "RS vs QQQ +4.31%",
          "昨日强势 +6.8% 今日 gap 可控",
          "News 1"
        ],
        "why_today": "RS vs QQQ +4.31% · 昨日强势 +6.8% 今日 gap 可控 · News 1",
        "gap_pct": 3.97,
        "rr_display": {
          "reward_risk_ratio": 1.09,
          "risk_reward_ratio": 0.92,
          "reward_per_share": 54.74,
          "risk_per_share": 50.14,
          "label_reward_risk": "Reward/Risk 1.09",
          "label_risk_reward": "Risk:Reward 1:0.92",
          "display": "Reward/Risk 1.09 · Risk:Reward 1:0.92",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "catalyst": "Geopolitical Risk · Geopolitical Risk",
        "invalidation": "Close below stop $935.0 · Geopolitical escalation invalidates mean-reversion",
        "advisory": true,
        "level_reasons": {
          "entry": {
            "price": 985.14,
            "source": "vwap",
            "confidence": 77,
            "reasons": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 985.14,
                "weight_pct": 100.0,
                "matched": true,
                "primary": true
              }
            ]
          },
          "stop": {
            "price": 935.0,
            "source": "orb_low",
            "confidence": 77,
            "reasons": [
              {
                "source": "orb_low",
                "label": "ORB Low",
                "price": 935.0,
                "weight_pct": 100.0,
                "matched": true,
                "primary": true
              }
            ]
          },
          "target": {
            "price": 1039.88,
            "source": "expected_close",
            "confidence": 77,
            "reasons": [
              {
                "source": "expected_close",
                "label": "Expected Close",
                "price": 1039.88,
                "weight_pct": 100.0,
                "matched": true,
                "primary": true
              }
            ]
          }
        },
        "return_calculation": "(1039.88-985.14)/985.14=5.56%",
        "heuristic_expected_return_pct": 4.0,
        "target_action": "卖出/获利",
        "trade_summary_cn": "做多 MU:在 985.14 附近入场,目标 1039.88,预期 +5.56%",
        "trade_economics": {
          "account_size": 10000.0,
          "risk_pct": 1.0,
          "position_pct": 9.9,
          "shares": 1,
          "contracts": 1,
          "max_loss_usd": 50.14,
          "win_usd": 54.74,
          "loss_usd": 50.14,
          "expected_value_usd": 30.62,
          "risk_per_share": 50.14,
          "reward_per_share": 54.74,
          "rr_display": {
            "reward_risk_ratio": 1.09,
            "risk_reward_ratio": 0.92,
            "reward_per_share": 54.74,
            "risk_per_share": 50.14,
            "label_reward_risk": "Reward/Risk 1.09",
            "label_risk_reward": "Risk:Reward 1:0.92",
            "display": "Reward/Risk 1.09 · Risk:Reward 1:0.92",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "size_label": "Small",
          "display": "$10,000 → Win +$55 / Loss -$50"
        },
        "position_sizing": {
          "risk_pct": 1.0,
          "position_pct": 9.9,
          "contracts": 1,
          "shares": 1,
          "max_loss_usd": 50.14,
          "size_label": "Small",
          "display": "Risk 1.0% → Position 9.9% → 1 unit(s) → Max Loss $50.14"
        },
        "why_wins_today": [
          {
            "rank": 1,
            "dimension": "relative_strength",
            "label": "Highest Relative Strength",
            "primary_value": 4.31,
            "runner_up_value": 3.93,
            "wins": true
          },
          {
            "rank": 2,
            "dimension": "expected_range",
            "label": "Largest Expected Range",
            "primary_value": 8.0,
            "runner_up_value": 7.84,
            "wins": true
          },
          {
            "rank": 3,
            "dimension": "win_prob",
            "label": "Highest Probability",
            "primary_value": 77.0,
            "runner_up_value": 71.0,
            "wins": true
          }
        ],
        "why_not_alternatives": [
          {
            "symbol": "AVGO",
            "rank": 2,
            "reasons": [
              "Win% 77 vs 71",
              "ER 5.6% vs 3.9%",
              "Score 1.54 vs 1.39",
              "RS +4.3% vs +2.4%",
              "R:R 1.09 vs 1.0"
            ],
            "summary": "Why MU over AVGO: Win% 77 vs 71 · ER 5.6% vs 3.9% · Score 1.54 vs 1.39 · RS +4.3% vs +2.4% · R:R 1.09 vs 1.0"
          },
          {
            "symbol": "ARM",
            "rank": 3,
            "reasons": [
              "Win% 77 vs 71",
              "ER 5.6% vs 2.1%",
              "Score 1.54 vs 0.75",
              "RS +4.3% vs +2.9%",
              "R:R 1.09 vs 1.0"
            ],
            "summary": "Why MU over ARM: Win% 77 vs 71 · ER 5.6% vs 2.1% · Score 1.54 vs 0.75 · RS +4.3% vs +2.9% · R:R 1.09 vs 1.0"
          },
          {
            "symbol": "AMD",
            "rank": 4,
            "reasons": [
              "Win% 77 vs 71",
              "ER 5.6% vs 1.8%",
              "Score 1.54 vs 0.64",
              "RS +4.3% vs +2.2%",
              "R:R 1.09 vs 1.0"
            ],
            "summary": "Why MU over AMD: Win% 77 vs 71 · ER 5.6% vs 1.8% · Score 1.54 vs 0.64 · RS +4.3% vs +2.2% · R:R 1.09 vs 1.0"
          },
          {
            "symbol": "SMH",
            "rank": 5,
            "reasons": [
              "Win% 77 vs 66",
              "ER 5.6% vs 1.1%",
              "Score 1.54 vs 0.36",
              "RS +4.3% vs +3.9%",
              "R:R 1.09 vs 0.38",
              "Tradeable (Small) vs Pass"
            ],
            "summary": "Why MU over SMH: Win% 77 vs 66 · ER 5.6% vs 1.1% · Score 1.54 vs 0.36 · RS +4.3% vs +3.9% · R:R 1.09 vs 0.38 · Tradeable (Small) vs Pass"
          },
          {
            "symbol": "NVDA",
            "rank": 6,
            "reasons": [
              "Win% 77 vs 65",
              "ER 5.6% vs 0.9%",
              "Score 1.54 vs 0.3",
              "RS +4.3% vs +3.3%",
              "R:R 1.09 vs 1.0",
              "Tradeable (Small) vs Pass"
            ],
            "summary": "Why MU over NVDA: Win% 77 vs 65 · ER 5.6% vs 0.9% · Score 1.54 vs 0.3 · RS +4.3% vs +3.3% · R:R 1.09 vs 1.0 · Tradeable (Small) vs Pass"
          }
        ],
        "rank_summary": "MU ranked #1 because weakest RS + largest expected range + highest probability",
        "win_prob_source": "rules",
        "calibration": {
          "calibrated_win_prob": 77.0,
          "sample_size": 0,
          "confidence_interval": null,
          "source": "rules_fallback",
          "match_quality": "insufficient",
          "win_prob_source": "rules",
          "disclaimer": "No historical matches; using rules breakdown"
        },
        "ev_distribution": {
          "expected_value_usd": 30.62,
          "win_scenario_usd": 54.74,
          "loss_scenario_usd": 50.14,
          "win_prob_pct": 77.0,
          "display": "EV $+31 (win +$55 @ 77.0% · loss -$50)"
        }
      },
      "secondary": {
        "rank": 2,
        "symbol": "AVGO",
        "direction": "LONG",
        "instrument": "Stock",
        "confidence": 71,
        "confidence_stars": "★★★☆☆",
        "expected_move": "+5.60%",
        "expected_return_pct": 5.6,
        "win_prob": 71.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": 71.0,
          "raw_total": 71.0,
          "was_clamped": false
        },
        "risk_reward": 3.2,
        "final_score": 1.39,
        "trade_action": "Small",
        "relative_strength": 2.35,
        "entry": "Above 395.2 (VWAP)",
        "entry_source": "vwap",
        "entry_price": 395.61,
        "entry_zone": {
          "low": 395.25,
          "high": 395.96,
          "mid": 395.61,
          "anchors": [
            {
              "source": "vwap",
              "label": "VWAP",
              "price": 395.25
            },
            {
              "source": "orb_high",
              "label": "ORB高点",
              "price": 395.96
            }
          ],
          "display": "Entry Zone 395.25–395.96",
          "entry_source": "vwap",
          "tolerance_pct": 0.3
        },
        "stop": "388.7 (ORB低点)",
        "stop_source": "orb_low",
        "stop_price": 388.69,
        "target": "417.8 (预期收盘)",
        "target_source": "expected_close",
        "target_price": 417.76,
        "targets": [
          "417.8 (预期收盘)"
        ],
        "level_anchors": {
          "vwap": 395.25,
          "orb_high": 395.96,
          "orb_low": 388.69,
          "prev_high": null,
          "prev_low": null,
          "prior_close": 388.69,
          "orb_from_minute": true
        },
        "why": [
          "RS vs QQQ +2.35%",
          "昨日强势 +8.6% 今日 gap 可控",
          "Gap 未过度延伸"
        ],
        "why_chain": "RS vs QQQ +2.35% · 昨日强势 +8.6% 今日 gap 可控 · Gap 未过度延伸",
        "why_vs_runner_up": "—",
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.35,
          "relative_strength_vs_smh": -1.58,
          "relative_weakness_score": -1.4,
          "gap_pct": 1.49,
          "beta_proxy": 3.2,
          "volume_signal": false,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 8.59
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(71%) × ER(3.9%) × rr_weight(0.5) / 100",
        "expected_high": 417.76,
        "expected_low": 386.24,
        "expected_close": 417.76,
        "current_price": 402.0,
        "upside_pct": 3.92,
        "downside_risk_pct": 3.92,
        "why_factors": [
          "RS vs QQQ +2.35%",
          "昨日强势 +8.6% 今日 gap 可控",
          "Gap 未过度延伸"
        ],
        "why_today": "RS vs QQQ +2.35% · 昨日强势 +8.6% 今日 gap 可控 · Gap 未过度延伸",
        "gap_pct": 1.49,
        "rr_display": {
          "reward_risk_ratio": 3.2,
          "risk_reward_ratio": 0.31,
          "reward_per_share": 22.15,
          "risk_per_share": 6.92,
          "label_reward_risk": "Reward/Risk 3.20",
          "label_risk_reward": "Risk:Reward 1:0.31",
          "display": "Reward/Risk 3.20 · Risk:Reward 1:0.31",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "catalyst": "Geopolitical Risk · Geopolitical Risk",
        "invalidation": "Close below stop $388.69 · Geopolitical escalation invalidates mean-reversion",
        "advisory": true,
        "level_reasons": {
          "entry": {
            "price": 395.61,
            "source": "vwap",
            "confidence": 89,
            "reasons": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 395.25,
                "weight_pct": 70.0,
                "matched": true,
                "primary": true
              },
              {
                "source": "orb_high",
                "label": "ORB High",
                "price": 395.96,
                "weight_pct": 30.0,
                "matched": true,
                "primary": false
              }
            ]
          },
          "stop": {
            "price": 388.69,
            "source": "orb_low",
            "confidence": 77,
            "reasons": [
              {
                "source": "orb_low",
                "label": "ORB Low",
                "price": 388.69,
                "weight_pct": 100.0,
                "matched": true,
                "primary": true
              }
            ]
          },
          "target": {
            "price": 417.76,
            "source": "expected_close",
            "confidence": 77,
            "reasons": [
              {
                "source": "expected_close",
                "label": "Expected Close",
                "price": 417.76,
                "weight_pct": 100.0,
                "matched": true,
                "primary": true
              }
            ]
          }
        },
        "return_calculation": "(417.76-395.61)/395.61=5.60%",
        "heuristic_expected_return_pct": 3.92,
        "target_action": "卖出/获利",
        "trade_summary_cn": "做多 AVGO:在 395.61 附近入场,目标 417.76,预期 +5.60%",
        "trade_economics": {
          "account_size": 10000.0,
          "risk_pct": 1.0,
          "position_pct": 55.4,
          "shares": 14,
          "contracts": 1,
          "max_loss_usd": 96.88,
          "win_usd": 310.1,
          "loss_usd": 96.88,
          "expected_value_usd": 192.08,
          "risk_per_share": 6.92,
          "reward_per_share": 22.15,
          "rr_display": {
            "reward_risk_ratio": 3.2,
            "risk_reward_ratio": 0.31,
            "reward_per_share": 22.15,
            "risk_per_share": 6.92,
            "label_reward_risk": "Reward/Risk 3.20",
            "label_risk_reward": "Risk:Reward 1:0.31",
            "display": "Reward/Risk 3.20 · Risk:Reward 1:0.31",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "size_label": "Small",
          "display": "$10,000 → Win +$310 / Loss -$97"
        },
        "position_sizing": {
          "risk_pct": 1.0,
          "position_pct": 55.4,
          "contracts": 1,
          "shares": 14,
          "max_loss_usd": 96.88,
          "size_label": "Small",
          "display": "Risk 1.0% → Position 55.4% → 1 unit(s) → Max Loss $96.88"
        },
        "why_wins_today": [
          {
            "rank": 1,
            "dimension": "risk_reward",
            "label": "Best Risk Reward",
            "primary_value": 3.2,
            "runner_up_value": 2.3,
            "wins": true
          }
        ],
        "why_not_alternatives": [
          {
            "symbol": "MU",
            "rank": 1,
            "reasons": [
              "Win% 71 vs 77",
              "ER 5.6% vs 4.0%",
              "Score 1.39 vs 1.54",
              "RS +2.4% vs +4.3%",
              "R:R 3.2 vs 1.0"
            ],
            "summary": "Why AVGO over MU: Win% 71 vs 77 · ER 5.6% vs 4.0% · Score 1.39 vs 1.54 · RS +2.4% vs +4.3% · R:R 3.2 vs 1.0"
          },
          {
            "symbol": "ARM",
            "rank": 3,
            "reasons": [
              "ER 5.6% vs 2.1%",
              "Score 1.39 vs 0.75",
              "RS +2.4% vs +2.9%",
              "R:R 3.2 vs 1.0"
            ],
            "summary": "Why AVGO over ARM: ER 5.6% vs 2.1% · Score 1.39 vs 0.75 · RS +2.4% vs +2.9% · R:R 3.2 vs 1.0"
          },
          {
            "symbol": "AMD",
            "rank": 4,
            "reasons": [
              "ER 5.6% vs 1.8%",
              "Score 1.39 vs 0.64",
              "RS +2.4% vs +2.2%",
              "R:R 3.2 vs 1.0"
            ],
            "summary": "Why AVGO over AMD: ER 5.6% vs 1.8% · Score 1.39 vs 0.64 · RS +2.4% vs +2.2% · R:R 3.2 vs 1.0"
          },
          {
            "symbol": "SMH",
            "rank": 5,
            "reasons": [
              "Win% 71 vs 66",
              "ER 5.6% vs 1.1%",
              "Score 1.39 vs 0.36",
              "RS +2.4% vs +3.9%",
              "R:R 3.2 vs 0.38",
              "Tradeable (Small) vs Pass"
            ],
            "summary": "Why AVGO over SMH: Win% 71 vs 66 · ER 5.6% vs 1.1% · Score 1.39 vs 0.36 · RS +2.4% vs +3.9% · R:R 3.2 vs 0.38 · Tradeable (Small) vs Pass"
          },
          {
            "symbol": "NVDA",
            "rank": 6,
            "reasons": [
              "Win% 71 vs 65",
              "ER 5.6% vs 0.9%",
              "Score 1.39 vs 0.3",
              "RS +2.4% vs +3.3%",
              "R:R 3.2 vs 1.0",
              "Tradeable (Small) vs Pass"
            ],
            "summary": "Why AVGO over NVDA: Win% 71 vs 65 · ER 5.6% vs 0.9% · Score 1.39 vs 0.3 · RS +2.4% vs +3.3% · R:R 3.2 vs 1.0 · Tradeable (Small) vs Pass"
          }
        ],
        "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"
        },
        "ev_distribution": {
          "expected_value_usd": 192.08,
          "win_scenario_usd": 310.1,
          "loss_scenario_usd": 96.88,
          "win_prob_pct": 71.0,
          "display": "EV $+192 (win +$310 @ 71.0% · loss -$97)"
        }
      },
      "watchlist": {
        "rank": 3,
        "symbol": "ARM",
        "direction": "LONG",
        "instrument": "Stock",
        "confidence": 71,
        "confidence_stars": "★★★☆☆",
        "expected_move": "+2.23%",
        "expected_return_pct": 2.23,
        "win_prob": 71.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": 71.0,
          "raw_total": 71.0,
          "was_clamped": false
        },
        "risk_reward": 0.59,
        "final_score": 0.75,
        "trade_action": "Small",
        "relative_strength": 2.93,
        "entry": "Above 311.9 (VWAP)",
        "entry_source": "vwap",
        "entry_price": 311.89,
        "entry_zone": {
          "low": 310.95,
          "high": 312.83,
          "mid": 311.89,
          "anchors": [
            {
              "source": "vwap",
              "label": "VWAP",
              "price": 311.89
            }
          ],
          "display": "Entry Zone 311–313",
          "entry_source": "vwap",
          "tolerance_pct": 0.3
        },
        "stop": "300.1 (ORB低点)",
        "stop_source": "orb_low",
        "stop_price": 300.15,
        "target": "318.8 (预期收盘)",
        "target_source": "expected_close",
        "target_price": 318.83,
        "targets": [
          "318.8 (预期收盘)"
        ],
        "level_anchors": {
          "vwap": 311.89,
          "orb_high": 314.98,
          "orb_low": 300.15,
          "prev_high": null,
          "prev_low": null,
          "prior_close": 300.24,
          "orb_from_minute": true
        },
        "why": [
          "RS vs QQQ +2.93%",
          "昨日强势 +3.8% 今日 gap 可控",
          "Gap 未过度延伸"
        ],
        "why_chain": "RS vs QQQ +2.93% · 昨日强势 +3.8% 今日 gap 可控 · Gap 未过度延伸",
        "why_vs_runner_up": "—",
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.93,
          "relative_strength_vs_smh": -1.0,
          "relative_weakness_score": -2.33,
          "gap_pct": 0.84,
          "beta_proxy": 3.74,
          "volume_signal": false,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 3.84
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(71%) × ER(2.1%) × rr_weight(0.5) / 100",
        "expected_high": 318.83,
        "expected_low": 305.67,
        "expected_close": 318.83,
        "current_price": 312.25,
        "upside_pct": 2.11,
        "downside_risk_pct": 2.11,
        "why_factors": [
          "RS vs QQQ +2.93%",
          "昨日强势 +3.8% 今日 gap 可控",
          "Gap 未过度延伸"
        ],
        "why_today": "RS vs QQQ +2.93% · 昨日强势 +3.8% 今日 gap 可控 · Gap 未过度延伸",
        "gap_pct": 0.84,
        "rr_display": {
          "reward_risk_ratio": 0.59,
          "risk_reward_ratio": 1.69,
          "reward_per_share": 6.94,
          "risk_per_share": 11.74,
          "label_reward_risk": "Reward/Risk 0.59",
          "label_risk_reward": "Risk:Reward 1:1.69",
          "display": "Reward/Risk 0.59 · Risk:Reward 1:1.69",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "catalyst": "Geopolitical Risk · Geopolitical Risk",
        "invalidation": "Close below stop $300.15 · Geopolitical escalation invalidates mean-reversion",
        "advisory": true,
        "level_reasons": {
          "entry": {
            "price": 311.89,
            "source": "vwap",
            "confidence": 89,
            "reasons": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 311.89,
                "weight_pct": 70.0,
                "matched": true,
                "primary": true
              },
              {
                "source": "current",
                "label": "Above Current",
                "price": 312.25,
                "weight_pct": 30.0,
                "matched": true,
                "primary": false
              }
            ]
          },
          "stop": {
            "price": 300.15,
            "source": "orb_low",
            "confidence": 77,
            "reasons": [
              {
                "source": "orb_low",
                "label": "ORB Low",
                "price": 300.15,
                "weight_pct": 100.0,
                "matched": true,
                "primary": true
              }
            ]
          },
          "target": {
            "price": 318.83,
            "source": "expected_close",
            "confidence": 77,
            "reasons": [
              {
                "source": "expected_close",
                "label": "Expected Close",
                "price": 318.83,
                "weight_pct": 100.0,
                "matched": true,
                "primary": true
              }
            ]
          }
        },
        "return_calculation": "(318.83-311.89)/311.89=2.23%",
        "heuristic_expected_return_pct": 2.11,
        "target_action": "卖出/获利",
        "trade_summary_cn": "做多 ARM:在 311.89 附近入场,目标 318.83,预期 +2.23%",
        "trade_economics": {
          "account_size": 10000.0,
          "risk_pct": 1.0,
          "position_pct": 25.0,
          "shares": 8,
          "contracts": 1,
          "max_loss_usd": 93.92,
          "win_usd": 55.52,
          "loss_usd": 93.92,
          "expected_value_usd": 12.18,
          "risk_per_share": 11.74,
          "reward_per_share": 6.94,
          "rr_display": {
            "reward_risk_ratio": 0.59,
            "risk_reward_ratio": 1.69,
            "reward_per_share": 6.94,
            "risk_per_share": 11.74,
            "label_reward_risk": "Reward/Risk 0.59",
            "label_risk_reward": "Risk:Reward 1:1.69",
            "display": "Reward/Risk 0.59 · Risk:Reward 1:1.69",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "size_label": "Small",
          "display": "$10,000 → Win +$56 / Loss -$94"
        },
        "position_sizing": {
          "risk_pct": 1.0,
          "position_pct": 25.0,
          "contracts": 1,
          "shares": 8,
          "max_loss_usd": 93.92,
          "size_label": "Small",
          "display": "Risk 1.0% → Position 25.0% → 1 unit(s) → Max Loss $93.92"
        },
        "why_wins_today": [],
        "why_not_alternatives": [
          {
            "symbol": "MU",
            "rank": 1,
            "reasons": [
              "Win% 71 vs 77",
              "ER 2.2% vs 4.0%",
              "Score 0.75 vs 1.54",
              "RS +2.9% vs +4.3%"
            ],
            "summary": "Why ARM over MU: Win% 71 vs 77 · ER 2.2% vs 4.0% · Score 0.75 vs 1.54 · RS +2.9% vs +4.3%"
          },
          {
            "symbol": "AVGO",
            "rank": 2,
            "reasons": [
              "ER 2.2% vs 3.9%",
              "Score 0.75 vs 1.39",
              "RS +2.9% vs +2.4%"
            ],
            "summary": "Why ARM over AVGO: ER 2.2% vs 3.9% · Score 0.75 vs 1.39 · RS +2.9% vs +2.4%"
          },
          {
            "symbol": "AMD",
            "rank": 4,
            "reasons": [
              "ER 2.2% vs 1.8%",
              "Score 0.75 vs 0.64",
              "RS +2.9% vs +2.2%"
            ],
            "summary": "Why ARM over AMD: ER 2.2% vs 1.8% · Score 0.75 vs 0.64 · RS +2.9% vs +2.2%"
          },
          {
            "symbol": "SMH",
            "rank": 5,
            "reasons": [
              "Win% 71 vs 66",
              "ER 2.2% vs 1.1%",
              "Score 0.75 vs 0.36",
              "RS +2.9% vs +3.9%",
              "R:R 0.59 vs 0.38",
              "Tradeable (Small) vs Pass"
            ],
            "summary": "Why ARM over SMH: Win% 71 vs 66 · ER 2.2% vs 1.1% · Score 0.75 vs 0.36 · RS +2.9% vs +3.9% · R:R 0.59 vs 0.38 · Tradeable (Small) vs Pass"
          },
          {
            "symbol": "NVDA",
            "rank": 6,
            "reasons": [
              "Win% 71 vs 65",
              "ER 2.2% vs 0.9%",
              "Score 0.75 vs 0.3",
              "RS +2.9% vs +3.3%",
              "Tradeable (Small) vs Pass"
            ],
            "summary": "Why ARM over NVDA: Win% 71 vs 65 · ER 2.2% vs 0.9% · Score 0.75 vs 0.3 · RS +2.9% vs +3.3% · Tradeable (Small) vs Pass"
          }
        ],
        "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"
        },
        "ev_distribution": {
          "expected_value_usd": 12.18,
          "win_scenario_usd": 55.52,
          "loss_scenario_usd": 93.92,
          "win_prob_pct": 71.0,
          "display": "EV $+12 (win +$56 @ 71.0% · loss -$94)"
        }
      },
      "index_trade": "NO TRADE",
      "threshold_message": null,
      "stock_trades": [
        {
          "rank": 1,
          "symbol": "MU",
          "direction": "LONG",
          "confidence": 77,
          "expected_move": "+5.56%",
          "why": "RS vs QQQ +4.31% · 昨日强势 +6.8% 今日 gap 可控 · News 1"
        },
        {
          "rank": 2,
          "symbol": "AVGO",
          "direction": "LONG",
          "confidence": 71,
          "expected_move": "+5.60%",
          "why": "RS vs QQQ +2.35% · 昨日强势 +8.6% 今日 gap 可控 · Gap 未过度延伸"
        },
        {
          "rank": 3,
          "symbol": "ARM",
          "direction": "LONG",
          "confidence": 71,
          "expected_move": "+2.23%",
          "why": "RS vs QQQ +2.93% · 昨日强势 +3.8% 今日 gap 可控 · Gap 未过度延伸"
        }
      ],
      "top_trades": [
        {
          "rank": 1,
          "symbol": "MU",
          "direction": "LONG",
          "instrument": "Stock",
          "confidence": 77,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+5.56%",
          "expected_return_pct": 5.56,
          "win_prob": 77.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 12.0
              },
              {
                "factor": "Trend",
                "key": "trend",
                "points": 10.0
              },
              {
                "factor": "Catalyst",
                "key": "catalyst",
                "points": 5.0
              }
            ],
            "total": 77.0,
            "raw_total": 77.0,
            "was_clamped": false
          },
          "risk_reward": 1.09,
          "final_score": 1.54,
          "trade_action": "Small",
          "relative_strength": 4.31,
          "entry": "Above 985.1 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 985.14,
          "entry_zone": {
            "low": 982.18,
            "high": 988.1,
            "mid": 985.14,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 985.14
              }
            ],
            "display": "Entry Zone 982–988",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "935.0 (ORB低点)",
          "stop_source": "orb_low",
          "stop_price": 935.0,
          "target": "1039.9 (预期收盘)",
          "target_source": "expected_close",
          "target_price": 1039.88,
          "targets": [
            "1039.9 (预期收盘)"
          ],
          "level_anchors": {
            "vwap": 985.14,
            "orb_high": 994.38,
            "orb_low": 935.0,
            "prev_high": null,
            "prev_low": null,
            "prior_close": 948.8,
            "orb_from_minute": true
          },
          "why": [
            "RS vs QQQ +4.31%",
            "昨日强势 +6.8% 今日 gap 可控",
            "News 1"
          ],
          "why_chain": "RS vs QQQ +4.31% · 昨日强势 +6.8% 今日 gap 可控 · News 1",
          "why_vs_runner_up": "MU RS +4.3% vs AVGO +2.4%;ER 4.0% vs 3.9%;Win% 77 vs 71;higher beta (5.0 vs 3.2);relative strength",
          "factor_breakdown": {
            "relative_strength_vs_qqq": 4.31,
            "relative_strength_vs_smh": 0.38,
            "relative_weakness_score": -4.54,
            "gap_pct": 3.97,
            "beta_proxy": 5.03,
            "volume_signal": false,
            "news_count": 1,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 1.01,
            "prior_day_change_pct": 6.77
          },
          "edge_type": "Stock Edge",
          "score_formula_display": "final = win_prob(77%) × ER(4.0%) × rr_weight(0.5) / 100",
          "expected_high": 1039.88,
          "expected_low": 959.88,
          "expected_close": 1039.88,
          "current_price": 999.88,
          "upside_pct": 4.0,
          "downside_risk_pct": 4.0,
          "why_factors": [
            "RS vs QQQ +4.31%",
            "昨日强势 +6.8% 今日 gap 可控",
            "News 1"
          ],
          "why_today": "RS vs QQQ +4.31% · 昨日强势 +6.8% 今日 gap 可控 · News 1",
          "gap_pct": 3.97,
          "rr_display": {
            "reward_risk_ratio": 1.09,
            "risk_reward_ratio": 0.92,
            "reward_per_share": 54.74,
            "risk_per_share": 50.14,
            "label_reward_risk": "Reward/Risk 1.09",
            "label_risk_reward": "Risk:Reward 1:0.92",
            "display": "Reward/Risk 1.09 · Risk:Reward 1:0.92",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close below stop $935.0 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 985.14,
              "source": "vwap",
              "confidence": 77,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 985.14,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 935.0,
              "source": "orb_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 935.0,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "target": {
              "price": 1039.88,
              "source": "expected_close",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_close",
                  "label": "Expected Close",
                  "price": 1039.88,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(1039.88-985.14)/985.14=5.56%",
          "heuristic_expected_return_pct": 4.0,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 MU:在 985.14 附近入场,目标 1039.88,预期 +5.56%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 9.9,
            "shares": 1,
            "contracts": 1,
            "max_loss_usd": 50.14,
            "win_usd": 54.74,
            "loss_usd": 50.14,
            "expected_value_usd": 30.62,
            "risk_per_share": 50.14,
            "reward_per_share": 54.74,
            "rr_display": {
              "reward_risk_ratio": 1.09,
              "risk_reward_ratio": 0.92,
              "reward_per_share": 54.74,
              "risk_per_share": 50.14,
              "label_reward_risk": "Reward/Risk 1.09",
              "label_risk_reward": "Risk:Reward 1:0.92",
              "display": "Reward/Risk 1.09 · Risk:Reward 1:0.92",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "Small",
            "display": "$10,000 → Win +$55 / Loss -$50"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 9.9,
            "contracts": 1,
            "shares": 1,
            "max_loss_usd": 50.14,
            "size_label": "Small",
            "display": "Risk 1.0% → Position 9.9% → 1 unit(s) → Max Loss $50.14"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "relative_strength",
              "label": "Highest Relative Strength",
              "primary_value": 4.31,
              "runner_up_value": 3.93,
              "wins": true
            },
            {
              "rank": 2,
              "dimension": "expected_range",
              "label": "Largest Expected Range",
              "primary_value": 8.0,
              "runner_up_value": 7.84,
              "wins": true
            },
            {
              "rank": 3,
              "dimension": "win_prob",
              "label": "Highest Probability",
              "primary_value": 77.0,
              "runner_up_value": 71.0,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "AVGO",
              "rank": 2,
              "reasons": [
                "Win% 77 vs 71",
                "ER 5.6% vs 3.9%",
                "Score 1.54 vs 1.39",
                "RS +4.3% vs +2.4%",
                "R:R 1.09 vs 1.0"
              ],
              "summary": "Why MU over AVGO: Win% 77 vs 71 · ER 5.6% vs 3.9% · Score 1.54 vs 1.39 · RS +4.3% vs +2.4% · R:R 1.09 vs 1.0"
            },
            {
              "symbol": "ARM",
              "rank": 3,
              "reasons": [
                "Win% 77 vs 71",
                "ER 5.6% vs 2.1%",
                "Score 1.54 vs 0.75",
                "RS +4.3% vs +2.9%",
                "R:R 1.09 vs 1.0"
              ],
              "summary": "Why MU over ARM: Win% 77 vs 71 · ER 5.6% vs 2.1% · Score 1.54 vs 0.75 · RS +4.3% vs +2.9% · R:R 1.09 vs 1.0"
            },
            {
              "symbol": "AMD",
              "rank": 4,
              "reasons": [
                "Win% 77 vs 71",
                "ER 5.6% vs 1.8%",
                "Score 1.54 vs 0.64",
                "RS +4.3% vs +2.2%",
                "R:R 1.09 vs 1.0"
              ],
              "summary": "Why MU over AMD: Win% 77 vs 71 · ER 5.6% vs 1.8% · Score 1.54 vs 0.64 · RS +4.3% vs +2.2% · R:R 1.09 vs 1.0"
            },
            {
              "symbol": "SMH",
              "rank": 5,
              "reasons": [
                "Win% 77 vs 66",
                "ER 5.6% vs 1.1%",
                "Score 1.54 vs 0.36",
                "RS +4.3% vs +3.9%",
                "R:R 1.09 vs 0.38",
                "Tradeable (Small) vs Pass"
              ],
              "summary": "Why MU over SMH: Win% 77 vs 66 · ER 5.6% vs 1.1% · Score 1.54 vs 0.36 · RS +4.3% vs +3.9% · R:R 1.09 vs 0.38 · Tradeable (Small) vs Pass"
            },
            {
              "symbol": "NVDA",
              "rank": 6,
              "reasons": [
                "Win% 77 vs 65",
                "ER 5.6% vs 0.9%",
                "Score 1.54 vs 0.3",
                "RS +4.3% vs +3.3%",
                "R:R 1.09 vs 1.0",
                "Tradeable (Small) vs Pass"
              ],
              "summary": "Why MU over NVDA: Win% 77 vs 65 · ER 5.6% vs 0.9% · Score 1.54 vs 0.3 · RS +4.3% vs +3.3% · R:R 1.09 vs 1.0 · Tradeable (Small) vs Pass"
            }
          ],
          "rank_summary": "MU ranked #1 because weakest RS + largest expected range + highest probability",
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 77.0,
            "sample_size": 0,
            "confidence_interval": null,
            "source": "rules_fallback",
            "match_quality": "insufficient",
            "win_prob_source": "rules",
            "disclaimer": "No historical matches; using rules breakdown"
          },
          "ev_distribution": {
            "expected_value_usd": 30.62,
            "win_scenario_usd": 54.74,
            "loss_scenario_usd": 50.14,
            "win_prob_pct": 77.0,
            "display": "EV $+31 (win +$55 @ 77.0% · loss -$50)"
          }
        },
        {
          "rank": 2,
          "symbol": "AVGO",
          "direction": "LONG",
          "instrument": "Stock",
          "confidence": 71,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+5.60%",
          "expected_return_pct": 5.6,
          "win_prob": 71.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": 71.0,
            "raw_total": 71.0,
            "was_clamped": false
          },
          "risk_reward": 3.2,
          "final_score": 1.39,
          "trade_action": "Small",
          "relative_strength": 2.35,
          "entry": "Above 395.2 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 395.61,
          "entry_zone": {
            "low": 395.25,
            "high": 395.96,
            "mid": 395.61,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 395.25
              },
              {
                "source": "orb_high",
                "label": "ORB高点",
                "price": 395.96
              }
            ],
            "display": "Entry Zone 395.25–395.96",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "388.7 (ORB低点)",
          "stop_source": "orb_low",
          "stop_price": 388.69,
          "target": "417.8 (预期收盘)",
          "target_source": "expected_close",
          "target_price": 417.76,
          "targets": [
            "417.8 (预期收盘)"
          ],
          "level_anchors": {
            "vwap": 395.25,
            "orb_high": 395.96,
            "orb_low": 388.69,
            "prev_high": null,
            "prev_low": null,
            "prior_close": 388.69,
            "orb_from_minute": true
          },
          "why": [
            "RS vs QQQ +2.35%",
            "昨日强势 +8.6% 今日 gap 可控",
            "Gap 未过度延伸"
          ],
          "why_chain": "RS vs QQQ +2.35% · 昨日强势 +8.6% 今日 gap 可控 · Gap 未过度延伸",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": 2.35,
            "relative_strength_vs_smh": -1.58,
            "relative_weakness_score": -1.4,
            "gap_pct": 1.49,
            "beta_proxy": 3.2,
            "volume_signal": false,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 1.01,
            "prior_day_change_pct": 8.59
          },
          "edge_type": "Stock Edge",
          "score_formula_display": "final = win_prob(71%) × ER(3.9%) × rr_weight(0.5) / 100",
          "expected_high": 417.76,
          "expected_low": 386.24,
          "expected_close": 417.76,
          "current_price": 402.0,
          "upside_pct": 3.92,
          "downside_risk_pct": 3.92,
          "why_factors": [
            "RS vs QQQ +2.35%",
            "昨日强势 +8.6% 今日 gap 可控",
            "Gap 未过度延伸"
          ],
          "why_today": "RS vs QQQ +2.35% · 昨日强势 +8.6% 今日 gap 可控 · Gap 未过度延伸",
          "gap_pct": 1.49,
          "rr_display": {
            "reward_risk_ratio": 3.2,
            "risk_reward_ratio": 0.31,
            "reward_per_share": 22.15,
            "risk_per_share": 6.92,
            "label_reward_risk": "Reward/Risk 3.20",
            "label_risk_reward": "Risk:Reward 1:0.31",
            "display": "Reward/Risk 3.20 · Risk:Reward 1:0.31",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close below stop $388.69 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 395.61,
              "source": "vwap",
              "confidence": 89,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 395.25,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 395.96,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "stop": {
              "price": 388.69,
              "source": "orb_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 388.69,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "target": {
              "price": 417.76,
              "source": "expected_close",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_close",
                  "label": "Expected Close",
                  "price": 417.76,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(417.76-395.61)/395.61=5.60%",
          "heuristic_expected_return_pct": 3.92,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 AVGO:在 395.61 附近入场,目标 417.76,预期 +5.60%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 55.4,
            "shares": 14,
            "contracts": 1,
            "max_loss_usd": 96.88,
            "win_usd": 310.1,
            "loss_usd": 96.88,
            "expected_value_usd": 192.08,
            "risk_per_share": 6.92,
            "reward_per_share": 22.15,
            "rr_display": {
              "reward_risk_ratio": 3.2,
              "risk_reward_ratio": 0.31,
              "reward_per_share": 22.15,
              "risk_per_share": 6.92,
              "label_reward_risk": "Reward/Risk 3.20",
              "label_risk_reward": "Risk:Reward 1:0.31",
              "display": "Reward/Risk 3.20 · Risk:Reward 1:0.31",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "Small",
            "display": "$10,000 → Win +$310 / Loss -$97"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 55.4,
            "contracts": 1,
            "shares": 14,
            "max_loss_usd": 96.88,
            "size_label": "Small",
            "display": "Risk 1.0% → Position 55.4% → 1 unit(s) → Max Loss $96.88"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "risk_reward",
              "label": "Best Risk Reward",
              "primary_value": 3.2,
              "runner_up_value": 2.3,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "MU",
              "rank": 1,
              "reasons": [
                "Win% 71 vs 77",
                "ER 5.6% vs 4.0%",
                "Score 1.39 vs 1.54",
                "RS +2.4% vs +4.3%",
                "R:R 3.2 vs 1.0"
              ],
              "summary": "Why AVGO over MU: Win% 71 vs 77 · ER 5.6% vs 4.0% · Score 1.39 vs 1.54 · RS +2.4% vs +4.3% · R:R 3.2 vs 1.0"
            },
            {
              "symbol": "ARM",
              "rank": 3,
              "reasons": [
                "ER 5.6% vs 2.1%",
                "Score 1.39 vs 0.75",
                "RS +2.4% vs +2.9%",
                "R:R 3.2 vs 1.0"
              ],
              "summary": "Why AVGO over ARM: ER 5.6% vs 2.1% · Score 1.39 vs 0.75 · RS +2.4% vs +2.9% · R:R 3.2 vs 1.0"
            },
            {
              "symbol": "AMD",
              "rank": 4,
              "reasons": [
                "ER 5.6% vs 1.8%",
                "Score 1.39 vs 0.64",
                "RS +2.4% vs +2.2%",
                "R:R 3.2 vs 1.0"
              ],
              "summary": "Why AVGO over AMD: ER 5.6% vs 1.8% · Score 1.39 vs 0.64 · RS +2.4% vs +2.2% · R:R 3.2 vs 1.0"
            },
            {
              "symbol": "SMH",
              "rank": 5,
              "reasons": [
                "Win% 71 vs 66",
                "ER 5.6% vs 1.1%",
                "Score 1.39 vs 0.36",
                "RS +2.4% vs +3.9%",
                "R:R 3.2 vs 0.38",
                "Tradeable (Small) vs Pass"
              ],
              "summary": "Why AVGO over SMH: Win% 71 vs 66 · ER 5.6% vs 1.1% · Score 1.39 vs 0.36 · RS +2.4% vs +3.9% · R:R 3.2 vs 0.38 · Tradeable (Small) vs Pass"
            },
            {
              "symbol": "NVDA",
              "rank": 6,
              "reasons": [
                "Win% 71 vs 65",
                "ER 5.6% vs 0.9%",
                "Score 1.39 vs 0.3",
                "RS +2.4% vs +3.3%",
                "R:R 3.2 vs 1.0",
                "Tradeable (Small) vs Pass"
              ],
              "summary": "Why AVGO over NVDA: Win% 71 vs 65 · ER 5.6% vs 0.9% · Score 1.39 vs 0.3 · RS +2.4% vs +3.3% · R:R 3.2 vs 1.0 · Tradeable (Small) vs Pass"
            }
          ],
          "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"
          },
          "ev_distribution": {
            "expected_value_usd": 192.08,
            "win_scenario_usd": 310.1,
            "loss_scenario_usd": 96.88,
            "win_prob_pct": 71.0,
            "display": "EV $+192 (win +$310 @ 71.0% · loss -$97)"
          }
        },
        {
          "rank": 3,
          "symbol": "ARM",
          "direction": "LONG",
          "instrument": "Stock",
          "confidence": 71,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+2.23%",
          "expected_return_pct": 2.23,
          "win_prob": 71.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": 71.0,
            "raw_total": 71.0,
            "was_clamped": false
          },
          "risk_reward": 0.59,
          "final_score": 0.75,
          "trade_action": "Small",
          "relative_strength": 2.93,
          "entry": "Above 311.9 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 311.89,
          "entry_zone": {
            "low": 310.95,
            "high": 312.83,
            "mid": 311.89,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 311.89
              }
            ],
            "display": "Entry Zone 311–313",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "300.1 (ORB低点)",
          "stop_source": "orb_low",
          "stop_price": 300.15,
          "target": "318.8 (预期收盘)",
          "target_source": "expected_close",
          "target_price": 318.83,
          "targets": [
            "318.8 (预期收盘)"
          ],
          "level_anchors": {
            "vwap": 311.89,
            "orb_high": 314.98,
            "orb_low": 300.15,
            "prev_high": null,
            "prev_low": null,
            "prior_close": 300.24,
            "orb_from_minute": true
          },
          "why": [
            "RS vs QQQ +2.93%",
            "昨日强势 +3.8% 今日 gap 可控",
            "Gap 未过度延伸"
          ],
          "why_chain": "RS vs QQQ +2.93% · 昨日强势 +3.8% 今日 gap 可控 · Gap 未过度延伸",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": 2.93,
            "relative_strength_vs_smh": -1.0,
            "relative_weakness_score": -2.33,
            "gap_pct": 0.84,
            "beta_proxy": 3.74,
            "volume_signal": false,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 1.01,
            "prior_day_change_pct": 3.84
          },
          "edge_type": "Stock Edge",
          "score_formula_display": "final = win_prob(71%) × ER(2.1%) × rr_weight(0.5) / 100",
          "expected_high": 318.83,
          "expected_low": 305.67,
          "expected_close": 318.83,
          "current_price": 312.25,
          "upside_pct": 2.11,
          "downside_risk_pct": 2.11,
          "why_factors": [
            "RS vs QQQ +2.93%",
            "昨日强势 +3.8% 今日 gap 可控",
            "Gap 未过度延伸"
          ],
          "why_today": "RS vs QQQ +2.93% · 昨日强势 +3.8% 今日 gap 可控 · Gap 未过度延伸",
          "gap_pct": 0.84,
          "rr_display": {
            "reward_risk_ratio": 0.59,
            "risk_reward_ratio": 1.69,
            "reward_per_share": 6.94,
            "risk_per_share": 11.74,
            "label_reward_risk": "Reward/Risk 0.59",
            "label_risk_reward": "Risk:Reward 1:1.69",
            "display": "Reward/Risk 0.59 · Risk:Reward 1:1.69",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close below stop $300.15 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 311.89,
              "source": "vwap",
              "confidence": 89,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 311.89,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "current",
                  "label": "Above Current",
                  "price": 312.25,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "stop": {
              "price": 300.15,
              "source": "orb_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 300.15,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "target": {
              "price": 318.83,
              "source": "expected_close",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_close",
                  "label": "Expected Close",
                  "price": 318.83,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(318.83-311.89)/311.89=2.23%",
          "heuristic_expected_return_pct": 2.11,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 ARM:在 311.89 附近入场,目标 318.83,预期 +2.23%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 25.0,
            "shares": 8,
            "contracts": 1,
            "max_loss_usd": 93.92,
            "win_usd": 55.52,
            "loss_usd": 93.92,
            "expected_value_usd": 12.18,
            "risk_per_share": 11.74,
            "reward_per_share": 6.94,
            "rr_display": {
              "reward_risk_ratio": 0.59,
              "risk_reward_ratio": 1.69,
              "reward_per_share": 6.94,
              "risk_per_share": 11.74,
              "label_reward_risk": "Reward/Risk 0.59",
              "label_risk_reward": "Risk:Reward 1:1.69",
              "display": "Reward/Risk 0.59 · Risk:Reward 1:1.69",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "Small",
            "display": "$10,000 → Win +$56 / Loss -$94"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 25.0,
            "contracts": 1,
            "shares": 8,
            "max_loss_usd": 93.92,
            "size_label": "Small",
            "display": "Risk 1.0% → Position 25.0% → 1 unit(s) → Max Loss $93.92"
          },
          "why_wins_today": [],
          "why_not_alternatives": [
            {
              "symbol": "MU",
              "rank": 1,
              "reasons": [
                "Win% 71 vs 77",
                "ER 2.2% vs 4.0%",
                "Score 0.75 vs 1.54",
                "RS +2.9% vs +4.3%"
              ],
              "summary": "Why ARM over MU: Win% 71 vs 77 · ER 2.2% vs 4.0% · Score 0.75 vs 1.54 · RS +2.9% vs +4.3%"
            },
            {
              "symbol": "AVGO",
              "rank": 2,
              "reasons": [
                "ER 2.2% vs 3.9%",
                "Score 0.75 vs 1.39",
                "RS +2.9% vs +2.4%"
              ],
              "summary": "Why ARM over AVGO: ER 2.2% vs 3.9% · Score 0.75 vs 1.39 · RS +2.9% vs +2.4%"
            },
            {
              "symbol": "AMD",
              "rank": 4,
              "reasons": [
                "ER 2.2% vs 1.8%",
                "Score 0.75 vs 0.64",
                "RS +2.9% vs +2.2%"
              ],
              "summary": "Why ARM over AMD: ER 2.2% vs 1.8% · Score 0.75 vs 0.64 · RS +2.9% vs +2.2%"
            },
            {
              "symbol": "SMH",
              "rank": 5,
              "reasons": [
                "Win% 71 vs 66",
                "ER 2.2% vs 1.1%",
                "Score 0.75 vs 0.36",
                "RS +2.9% vs +3.9%",
                "R:R 0.59 vs 0.38",
                "Tradeable (Small) vs Pass"
              ],
              "summary": "Why ARM over SMH: Win% 71 vs 66 · ER 2.2% vs 1.1% · Score 0.75 vs 0.36 · RS +2.9% vs +3.9% · R:R 0.59 vs 0.38 · Tradeable (Small) vs Pass"
            },
            {
              "symbol": "NVDA",
              "rank": 6,
              "reasons": [
                "Win% 71 vs 65",
                "ER 2.2% vs 0.9%",
                "Score 0.75 vs 0.3",
                "RS +2.9% vs +3.3%",
                "Tradeable (Small) vs Pass"
              ],
              "summary": "Why ARM over NVDA: Win% 71 vs 65 · ER 2.2% vs 0.9% · Score 0.75 vs 0.3 · RS +2.9% vs +3.3% · Tradeable (Small) vs Pass"
            }
          ],
          "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"
          },
          "ev_distribution": {
            "expected_value_usd": 12.18,
            "win_scenario_usd": 55.52,
            "loss_scenario_usd": 93.92,
            "win_prob_pct": 71.0,
            "display": "EV $+12 (win +$56 @ 71.0% · loss -$94)"
          }
        },
        {
          "rank": 4,
          "symbol": "AMD",
          "direction": "LONG",
          "instrument": "Stock",
          "confidence": 71,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+2.85%",
          "expected_return_pct": 2.85,
          "win_prob": 71.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": 71.0,
            "raw_total": 71.0,
            "was_clamped": false
          },
          "risk_reward": 1.05,
          "final_score": 0.64,
          "trade_action": "Small",
          "relative_strength": 2.17,
          "entry": "Above 528.7 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 528.72,
          "entry_zone": {
            "low": 527.13,
            "high": 530.31,
            "mid": 528.72,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 528.72
              }
            ],
            "display": "Entry Zone 527–530",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "514.4 (ORB低点)",
          "stop_source": "orb_low",
          "stop_price": 514.4,
          "target": "543.8 (预期收盘)",
          "target_source": "expected_close",
          "target_price": 543.81,
          "targets": [
            "543.8 (预期收盘)"
          ],
          "level_anchors": {
            "vwap": 528.72,
            "orb_high": 531.92,
            "orb_low": 514.4,
            "prev_high": null,
            "prev_low": null,
            "prior_close": 517.41,
            "orb_from_minute": true
          },
          "why": [
            "RS vs QQQ +2.17%",
            "昨日强势 +3.6% 今日 gap 可控",
            "Gap 未过度延伸"
          ],
          "why_chain": "RS vs QQQ +2.17% · 昨日强势 +3.6% 今日 gap 可控 · Gap 未过度延伸",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": 2.17,
            "relative_strength_vs_smh": -1.76,
            "relative_weakness_score": -1.11,
            "gap_pct": 1.47,
            "beta_proxy": 3.03,
            "volume_signal": false,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 1.01,
            "prior_day_change_pct": 3.58
          },
          "edge_type": "Stock Edge",
          "score_formula_display": "final = win_prob(71%) × ER(1.8%) × rr_weight(0.5) / 100",
          "expected_high": 543.81,
          "expected_low": 524.49,
          "expected_close": 543.81,
          "current_price": 534.15,
          "upside_pct": 1.81,
          "downside_risk_pct": 1.81,
          "why_factors": [
            "RS vs QQQ +2.17%",
            "昨日强势 +3.6% 今日 gap 可控",
            "Gap 未过度延伸"
          ],
          "why_today": "RS vs QQQ +2.17% · 昨日强势 +3.6% 今日 gap 可控 · Gap 未过度延伸",
          "gap_pct": 1.47,
          "rr_display": {
            "reward_risk_ratio": 1.05,
            "risk_reward_ratio": 0.95,
            "reward_per_share": 15.09,
            "risk_per_share": 14.32,
            "label_reward_risk": "Reward/Risk 1.05",
            "label_risk_reward": "Risk:Reward 1:0.95",
            "display": "Reward/Risk 1.05 · Risk:Reward 1:0.95",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close below stop $514.4 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 528.72,
              "source": "vwap",
              "confidence": 77,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 528.72,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 514.4,
              "source": "orb_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 514.4,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "target": {
              "price": 543.81,
              "source": "expected_close",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_close",
                  "label": "Expected Close",
                  "price": 543.81,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(543.81-528.72)/528.72=2.85%",
          "heuristic_expected_return_pct": 1.81,
          "target_action": "卖出/获利",
          "trade_summary_cn": "做多 AMD:在 528.72 附近入场,目标 543.81,预期 +2.85%",
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 31.7,
            "shares": 6,
            "contracts": 1,
            "max_loss_usd": 85.92,
            "win_usd": 90.54,
            "loss_usd": 85.92,
            "expected_value_usd": 39.37,
            "risk_per_share": 14.32,
            "reward_per_share": 15.09,
            "rr_display": {
              "reward_risk_ratio": 1.05,
              "risk_reward_ratio": 0.95,
              "reward_per_share": 15.09,
              "risk_per_share": 14.32,
              "label_reward_risk": "Reward/Risk 1.05",
              "label_risk_reward": "Risk:Reward 1:0.95",
              "display": "Reward/Risk 1.05 · Risk:Reward 1:0.95",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "Small",
            "display": "$10,000 → Win +$91 / Loss -$86"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 31.7,
            "contracts": 1,
            "shares": 6,
            "max_loss_usd": 85.92,
            "size_label": "Small",
            "display": "Risk 1.0% → Position 31.7% → 1 unit(s) → Max Loss $85.92"
          },
          "why_wins_today": [],
          "why_not_alternatives": [
            {
              "symbol": "MU",
              "rank": 1,
              "reasons": [
                "Win% 71 vs 77",
                "ER 2.9% vs 4.0%",
                "Score 0.64 vs 1.54",
                "RS +2.2% vs +4.3%",
                "R:R 1.05 vs 1.0"
              ],
              "summary": "Why AMD over MU: Win% 71 vs 77 · ER 2.9% vs 4.0% · Score 0.64 vs 1.54 · RS +2.2% vs +4.3% · R:R 1.05 vs 1.0"
            },
            {
              "symbol": "AVGO",
              "rank": 2,
              "reasons": [
                "ER 2.9% vs 3.9%",
                "Score 0.64 vs 1.39",
                "RS +2.2% vs +2.4%",
                "R:R 1.05 vs 1.0"
              ],
              "summary": "Why AMD over AVGO: ER 2.9% vs 3.9% · Score 0.64 vs 1.39 · RS +2.2% vs +2.4% · R:R 1.05 vs 1.0"
            },
            {
              "symbol": "ARM",
              "rank": 3,
              "reasons": [
                "ER 2.9% vs 2.1%",
                "Score 0.64 vs 0.75",
                "RS +2.2% vs +2.9%",
                "R:R 1.05 vs 1.0"
              ],
              "summary": "Why AMD over ARM: ER 2.9% vs 2.1% · Score 0.64 vs 0.75 · RS +2.2% vs +2.9% · R:R 1.05 vs 1.0"
            },
            {
              "symbol": "SMH",
              "rank": 5,
              "reasons": [
                "Win% 71 vs 66",
                "ER 2.9% vs 1.1%",
                "Score 0.64 vs 0.36",
                "RS +2.2% vs +3.9%",
                "R:R 1.05 vs 0.38",
                "Tradeable (Small) vs Pass"
              ],
              "summary": "Why AMD over SMH: Win% 71 vs 66 · ER 2.9% vs 1.1% · Score 0.64 vs 0.36 · RS +2.2% vs +3.9% · R:R 1.05 vs 0.38 · Tradeable (Small) vs Pass"
            },
            {
              "symbol": "NVDA",
              "rank": 6,
              "reasons": [
                "Win% 71 vs 65",
                "ER 2.9% vs 0.9%",
                "Score 0.64 vs 0.3",
                "RS +2.2% vs +3.3%",
                "R:R 1.05 vs 1.0",
                "Tradeable (Small) vs Pass"
              ],
              "summary": "Why AMD over NVDA: Win% 71 vs 65 · ER 2.9% vs 0.9% · Score 0.64 vs 0.3 · RS +2.2% vs +3.3% · R:R 1.05 vs 1.0 · Tradeable (Small) vs Pass"
            }
          ],
          "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"
          },
          "ev_distribution": {
            "expected_value_usd": 39.37,
            "win_scenario_usd": 90.54,
            "loss_scenario_usd": 85.92,
            "win_prob_pct": 71.0,
            "display": "EV $+39 (win +$91 @ 71.0% · loss -$86)"
          }
        }
      ],
      "watchlist_items": [
        {
          "symbol": "SMH",
          "rank": 5,
          "win_prob": 66.0,
          "expected_return_pct": 1.09,
          "trade_action": "Pass",
          "why": "RS vs QQQ +3.93% · Volume 信号",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "NVDA",
          "rank": 6,
          "win_prob": 65.0,
          "expected_return_pct": 0.93,
          "trade_action": "Pass",
          "why": "RS vs QQQ +3.34% · News 3 · Volume 信号 · 上行空间 <1.0%",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "TQQQ",
          "rank": 7,
          "win_prob": 66.0,
          "expected_return_pct": 0.66,
          "trade_action": "Pass",
          "why": "RS vs QQQ +2.07% · Volume 信号 · 上行空间 <1.0%",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "QQQ",
          "rank": 8,
          "win_prob": 59.0,
          "expected_return_pct": 0.08,
          "trade_action": "Pass",
          "why": "Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "SPY",
          "rank": 9,
          "win_prob": 49.0,
          "expected_return_pct": -0.24,
          "trade_action": "Pass",
          "why": "RS 弱于 QQQ -1.17% · Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
          "note": "Monitor — below trade threshold"
        }
      ],
      "advisory": true
    },
    "edges": {
      "macro_edge": {
        "edge": "YES",
        "why": "今日有重大催化剂(含地缘/突发):Geopolitical Risk、Oil Selloff、Trade Policy",
        "catalyst": "Geopolitical Risk、Oil Selloff、Trade Policy"
      },
      "index_edge": {
        "edge": "YES",
        "why": "QQQ 盘前/开盘 +1.06%"
      },
      "sector_edge": {
        "edge": "YES",
        "why": "SMH 领先 QQQ +3.96%",
        "sector": "Semiconductor"
      },
      "stock_edge": {
        "edge": "YES",
        "why": "NVDA RS+新闻+量能",
        "symbol": "NVDA"
      },
      "advisory": "ADVISORY — 不构成投资建议"
    },
    "trade_candidates": [
      {
        "symbol": "MU",
        "win_prob": 77.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 12.0
            },
            {
              "factor": "Trend",
              "key": "trend",
              "points": 10.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": 5.0
            }
          ],
          "total": 77.0,
          "raw_total": 77.0,
          "was_clamped": false
        },
        "expected_return_pct": 4.0,
        "expected_high": 1039.88,
        "expected_low": 959.88,
        "expected_close": 1039.88,
        "current_price": 999.88,
        "upside_pct": 4.0,
        "downside_risk_pct": 4.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": 1.54,
        "trade_action": "Small",
        "trade": "Small",
        "gap_pct": 3.97,
        "relative_strength": 4.31,
        "relative_strength_vs_smh": 0.38,
        "relative_weakness_score": -4.54,
        "prior_day_change_pct": 6.77,
        "why_factors": [
          "RS vs QQQ +4.31%",
          "昨日强势 +6.8% 今日 gap 可控",
          "News 1"
        ],
        "why": "RS vs QQQ +4.31% · 昨日强势 +6.8% 今日 gap 可控 · News 1",
        "score": 15,
        "news_count": 1,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 4.31,
          "relative_strength_vs_smh": 0.38,
          "relative_weakness_score": -4.54,
          "gap_pct": 3.97,
          "beta_proxy": 5.03,
          "volume_signal": false,
          "news_count": 1,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 6.77
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(77%) × ER(4.0%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "MU RS +4.3% vs AVGO +2.4%;ER 4.0% vs 3.9%;Win% 77 vs 71;higher beta (5.0 vs 3.2);relative strength",
        "advisory": true,
        "rank": 1,
        "direction": "LONG"
      },
      {
        "symbol": "AVGO",
        "win_prob": 71.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": 71.0,
          "raw_total": 71.0,
          "was_clamped": false
        },
        "expected_return_pct": 3.92,
        "expected_high": 417.76,
        "expected_low": 386.24,
        "expected_close": 417.76,
        "current_price": 402.0,
        "upside_pct": 3.92,
        "downside_risk_pct": 3.92,
        "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": 1.39,
        "trade_action": "Small",
        "trade": "Small",
        "gap_pct": 1.49,
        "relative_strength": 2.35,
        "relative_strength_vs_smh": -1.58,
        "relative_weakness_score": -1.4,
        "prior_day_change_pct": 8.59,
        "why_factors": [
          "RS vs QQQ +2.35%",
          "昨日强势 +8.6% 今日 gap 可控",
          "Gap 未过度延伸"
        ],
        "why": "RS vs QQQ +2.35% · 昨日强势 +8.6% 今日 gap 可控 · Gap 未过度延伸",
        "score": 14,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.35,
          "relative_strength_vs_smh": -1.58,
          "relative_weakness_score": -1.4,
          "gap_pct": 1.49,
          "beta_proxy": 3.2,
          "volume_signal": false,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 8.59
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(71%) × ER(3.9%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 2,
        "direction": "LONG"
      },
      {
        "symbol": "ARM",
        "win_prob": 71.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": 71.0,
          "raw_total": 71.0,
          "was_clamped": false
        },
        "expected_return_pct": 2.11,
        "expected_high": 318.83,
        "expected_low": 305.67,
        "expected_close": 318.83,
        "current_price": 312.25,
        "upside_pct": 2.11,
        "downside_risk_pct": 2.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.75,
        "trade_action": "Small",
        "trade": "Small",
        "gap_pct": 0.84,
        "relative_strength": 2.93,
        "relative_strength_vs_smh": -1.0,
        "relative_weakness_score": -2.33,
        "prior_day_change_pct": 3.84,
        "why_factors": [
          "RS vs QQQ +2.93%",
          "昨日强势 +3.8% 今日 gap 可控",
          "Gap 未过度延伸"
        ],
        "why": "RS vs QQQ +2.93% · 昨日强势 +3.8% 今日 gap 可控 · Gap 未过度延伸",
        "score": 8,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.93,
          "relative_strength_vs_smh": -1.0,
          "relative_weakness_score": -2.33,
          "gap_pct": 0.84,
          "beta_proxy": 3.74,
          "volume_signal": false,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 3.84
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(71%) × ER(2.1%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 3,
        "direction": "LONG"
      },
      {
        "symbol": "AMD",
        "win_prob": 71.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": 71.0,
          "raw_total": 71.0,
          "was_clamped": false
        },
        "expected_return_pct": 1.81,
        "expected_high": 543.81,
        "expected_low": 524.49,
        "expected_close": 543.81,
        "current_price": 534.15,
        "upside_pct": 1.81,
        "downside_risk_pct": 1.81,
        "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.64,
        "trade_action": "Small",
        "trade": "Small",
        "gap_pct": 1.47,
        "relative_strength": 2.17,
        "relative_strength_vs_smh": -1.76,
        "relative_weakness_score": -1.11,
        "prior_day_change_pct": 3.58,
        "why_factors": [
          "RS vs QQQ +2.17%",
          "昨日强势 +3.6% 今日 gap 可控",
          "Gap 未过度延伸"
        ],
        "why": "RS vs QQQ +2.17% · 昨日强势 +3.6% 今日 gap 可控 · Gap 未过度延伸",
        "score": 6,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.17,
          "relative_strength_vs_smh": -1.76,
          "relative_weakness_score": -1.11,
          "gap_pct": 1.47,
          "beta_proxy": 3.03,
          "volume_signal": false,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 3.58
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(71%) × ER(1.8%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 4,
        "direction": "LONG"
      },
      {
        "symbol": "SMH",
        "win_prob": 66.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 12.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 66.0,
          "raw_total": 66.0,
          "was_clamped": false
        },
        "expected_return_pct": 1.09,
        "expected_high": 617.17,
        "expected_low": 593.0,
        "expected_close": 617.17,
        "current_price": 610.54,
        "upside_pct": 1.09,
        "downside_risk_pct": 2.87,
        "risk_reward": 0.38,
        "rr_display": {
          "reward_risk_ratio": 0.38,
          "risk_reward_ratio": 2.63,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.38",
          "label_risk_reward": "Risk:Reward 1:2.63",
          "display": "Reward/Risk 0.38 · Risk:Reward 1:2.63",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.36,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 3.74,
        "relative_strength": 3.93,
        "relative_strength_vs_smh": 0.0,
        "relative_weakness_score": -3.93,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS vs QQQ +3.93%",
          "Volume 信号"
        ],
        "why": "RS vs QQQ +3.93% · Volume 信号",
        "score": 4,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 3.93,
          "relative_strength_vs_smh": 0.0,
          "relative_weakness_score": -3.93,
          "gap_pct": 3.74,
          "beta_proxy": 4.67,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Sector Edge",
        "score_formula_display": "final = win_prob(66%) × ER(1.1%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 5,
        "direction": "LONG"
      },
      {
        "symbol": "NVDA",
        "win_prob": 65.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 6.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 65.0,
          "raw_total": 65.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.93,
        "expected_high": 207.53,
        "expected_low": 203.71,
        "expected_close": 207.53,
        "current_price": 205.62,
        "upside_pct": 0.93,
        "downside_risk_pct": 0.93,
        "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.3,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 4.16,
        "relative_strength": 3.34,
        "relative_strength_vs_smh": -0.59,
        "relative_weakness_score": -2.99,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS vs QQQ +3.34%",
          "News 3",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS vs QQQ +3.34% · News 3 · Volume 信号 · 上行空间 <1.0%",
        "score": 3,
        "news_count": 3,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 3.34,
          "relative_strength_vs_smh": -0.59,
          "relative_weakness_score": -2.99,
          "gap_pct": 4.16,
          "beta_proxy": 4.12,
          "volume_signal": true,
          "news_count": 3,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(65%) × ER(0.9%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 6,
        "direction": "LONG"
      },
      {
        "symbol": "TQQQ",
        "win_prob": 66.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 12.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 66.0,
          "raw_total": 66.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.66,
        "expected_high": 74.99,
        "expected_low": 72.72,
        "expected_close": 74.99,
        "current_price": 74.5,
        "upside_pct": 0.66,
        "downside_risk_pct": 2.39,
        "risk_reward": 0.27,
        "rr_display": {
          "reward_risk_ratio": 0.27,
          "risk_reward_ratio": 3.7,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.27",
          "label_risk_reward": "Risk:Reward 1:3.70",
          "display": "Reward/Risk 0.27 · Risk:Reward 1:3.70",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.22,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 3.02,
        "relative_strength": 2.07,
        "relative_strength_vs_smh": -1.86,
        "relative_weakness_score": -0.95,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS vs QQQ +2.07%",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS vs QQQ +2.07% · Volume 信号 · 上行空间 <1.0%",
        "score": 2,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.07,
          "relative_strength_vs_smh": -1.86,
          "relative_weakness_score": -0.95,
          "gap_pct": 3.02,
          "beta_proxy": 2.93,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(66%) × ER(0.7%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 7,
        "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.08,
        "expected_high": 720.61,
        "expected_low": 711.28,
        "expected_close": 717.62,
        "current_price": 717.02,
        "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.02,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 1.05,
        "relative_strength": 0.0,
        "relative_strength_vs_smh": -3.93,
        "relative_weakness_score": 2.36,
        "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": -3.93,
          "relative_weakness_score": 2.36,
          "gap_pct": 1.05,
          "beta_proxy": 1.0,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "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": 8,
        "direction": "LONG"
      },
      {
        "symbol": "SPY",
        "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.24,
        "expected_high": 750.7,
        "expected_low": 740.99,
        "expected_close": 745.2,
        "current_price": 746.97,
        "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.03,
        "relative_strength": -1.17,
        "relative_strength_vs_smh": -5.1,
        "relative_weakness_score": 4.23,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS 弱于 QQQ -1.17%",
          "Gap 未过度延伸",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS 弱于 QQQ -1.17% · Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -1.17,
          "relative_strength_vs_smh": -5.1,
          "relative_weakness_score": 4.23,
          "gap_pct": -0.03,
          "beta_proxy": -0.09,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(49%) × ER(-0.2%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 9,
        "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.72,
        "expected_high": 397.08,
        "expected_low": 391.94,
        "expected_close": 392.25,
        "current_price": 395.1,
        "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": -1.48,
        "relative_strength": -3.01,
        "relative_strength_vs_smh": -6.94,
        "relative_weakness_score": 7.17,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS 弱于 QQQ -3.01%",
          "Gap 未过度延伸",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS 弱于 QQQ -3.01% · Gap 未过度延伸 · Volume 信号 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -3.01,
          "relative_strength_vs_smh": -6.94,
          "relative_weakness_score": 7.17,
          "gap_pct": -1.48,
          "beta_proxy": -1.81,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(49%) × ER(-0.7%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 10,
        "direction": "LONG"
      },
      {
        "symbol": "META",
        "win_prob": 44.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -10.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 44.0,
          "raw_total": 44.0,
          "was_clamped": false
        },
        "expected_return_pct": -1.38,
        "expected_high": 603.12,
        "expected_low": 576.43,
        "expected_close": 576.43,
        "current_price": 584.51,
        "upside_pct": 3.18,
        "downside_risk_pct": 1.38,
        "risk_reward": 2.3,
        "rr_display": {
          "reward_risk_ratio": 2.3,
          "risk_reward_ratio": 0.43,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 2.30",
          "label_risk_reward": "Risk:Reward 1:0.43",
          "display": "Reward/Risk 2.30 · Risk:Reward 1:0.43",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -1.99,
        "relative_strength": -6.12,
        "relative_strength_vs_smh": -10.05,
        "relative_weakness_score": 12.15,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS 弱于 QQQ -6.12%",
          "Volume 信号",
          "上行空间 <1.0%"
        ],
        "why": "RS 弱于 QQQ -6.12% · Volume 信号 · 上行空间 <1.0%",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -6.12,
          "relative_strength_vs_smh": -10.05,
          "relative_weakness_score": 12.15,
          "gap_pct": -1.99,
          "beta_proxy": -4.72,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 1.01,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Stock Edge",
        "score_formula_display": "final = win_prob(44%) × ER(-1.4%) × rr_weight(1.15) / 100",
        "rr_weight": 1.15,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 11,
        "direction": "LONG"
      }
    ]
  },
  "intraday": {
    "s5": {
      "driver_still_valid": true,
      "action": "Hold"
    },
    "s6": {
      "trade_valid": true,
      "action": "Hold"
    },
    "s7": {
      "actual_driver": "AI/Semiconductor",
      "attribution": {
        "ai": 0.902,
        "bond": 0.026,
        "oil": 0.0,
        "macro": 0.022,
        "other": 0.05,
        "splits": {}
      }
    }
  },
  "trade_plan": {},
  "actual": {},
  "attribution": {
    "ai": 0.902,
    "bond": 0.026,
    "oil": 0.0,
    "macro": 0.022,
    "other": 0.05,
    "splits": {}
  },
  "labels": {
    "actual_driver": "AI/Semiconductor",
    "agent_driver": "Geopolitical Risk",
    "agent_driver_type": "Political",
    "corrected_driver_from_verify": null,
    "driver_splits": {},
    "hypothesis_correct": "部分对",
    "scenario_primary": "A",
    "scenario_actual": "A",
    "scenario_correct": true,
    "trade_recommendation": "MU",
    "trade_direction": "LONG",
    "primary_symbol": "MU",
    "predicted_return_pct": 5.56,
    "prediction_error_pct": null
  },
  "surprise": "AI/Semiconductor dominated more than typical day",
  "lesson": "AI Expansion Regime 下,单日 SMH/NVDA 抛售可压过 Macro 利好,指数分化(Dow+ / QQQ-)比「大盘涨跌」更有信息量",
  "playbook_refs": [
    "Case-5"
  ],
  "bayesian_drivers": {
    "AI": 0.9999,
    "Bond": 0.0,
    "Macro": 0.0,
    "Oil": 0.0,
    "Risk": 0.0
  },
  "data_gaps": []
}