← 全部 Cases · 今日流程

Market Case · 2026-08-25

Day 38

Day 38
9/9 Steps

Regime · Hypothesis

R0 Regime
Range (50.0%)
Hypothesis
Macro is today's primary market driver
ID
H-2026-08-25-001

Labels · Attribution

真正 Driver
AI/Semiconductor
Hypothesis 结果
错
Scenario 预测
A
Scenario 实际
B
Scenario 命中
✗
AI 贡献
55%
Bond
38%

Surprise · Lesson

Surprise:No major surprises vs typical driver mix

Lesson:AI Expansion Regime 下,单日 SMH/NVDA 抛售可压过 Macro 利好,指数分化(Dow+ / QQQ-)比「大盘涨跌」更有信息量;Morning Hypothesis 被 Chip/Macro 冲突推翻——复盘 P10/P15 权重

Evidence / Counter

Evidence

  • VIX=15.8 (low fear)
  • Breadth 71% (broad participation)

Counter

  • 10Y=4.74% (elevated rates)

Step 快捷入口

原始 JSON
{
  "date": "2026-08-25",
  "features": {
    "dgs10": 4.74,
    "dgs2": null,
    "vix": 15.79,
    "vix_chg": -0.38,
    "qqq_chg": -0.37,
    "smh_chg": -0.76,
    "nvda_chg": -0.75,
    "spy_chg": 0.0,
    "oil_chg": 0.0,
    "dxy_chg": 0.02,
    "breadth_proxy": 0.7142857142857143,
    "qqq_gap": -0.53,
    "news_headline_count": 21,
    "news_bearish_ratio": 0.5,
    "news_ai_mentions": 36,
    "news_macro_mentions": 2,
    "news_oil_mentions": 1,
    "news_risk_mentions": 0
  },
  "regime": {
    "label": "Range",
    "confidence": 0.5
  },
  "hypothesis": {
    "id": "H-2026-08-25-001",
    "statement": "Macro is today's primary market driver",
    "evidence": [
      "VIX=15.8 (low fear)",
      "Breadth 71% (broad participation)"
    ],
    "counter_evidence": [
      "10Y=4.74% (elevated rates)"
    ],
    "confidence": 0.47,
    "status": "待验证"
  },
  "morning": {
    "bias": "Bear",
    "total": -3,
    "driver_type": "Political",
    "daily_driver": "Geopolitical Risk",
    "best_opportunity": {
      "direction": "NO TRADE",
      "symbol": "—",
      "instrument": "—",
      "horizon": "—",
      "confidence": 45,
      "entry": "—",
      "stop": "—",
      "target": "—",
      "targets": [],
      "duration": "—",
      "why": [
        "今日无任何标的达到交易阈值"
      ],
      "why_chain": "今日无任何标的达到交易阈值",
      "avoid": [],
      "one_liner": "今日无任何标的达到交易阈值",
      "p16_gate": "No Trade",
      "threshold_message": "今日无任何标的达到交易阈值",
      "advisory": true
    },
    "best_trades": {
      "primary": null,
      "secondary": null,
      "watchlist": null,
      "index_trade": "NO TRADE",
      "p16_gate": "No Trade",
      "threshold_message": "今日无任何标的达到交易阈值",
      "stock_trades": [],
      "top_trades": [
        {
          "rank": 1,
          "symbol": "MU",
          "direction": "SHORT",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 74,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+0.45%",
          "expected_return_pct": 0.45,
          "win_prob": 74.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 20.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              }
            ],
            "total": 74.0,
            "raw_total": 74.0,
            "was_clamped": false
          },
          "risk_reward": 0.27,
          "final_score": 0.91,
          "trade_action": "Pass",
          "relative_strength": -3.37,
          "entry": "Below 914.6 (ORB低点)",
          "entry_source": "orb_low",
          "entry_price": 914.58,
          "entry_zone": {
            "low": 911.84,
            "high": 917.32,
            "mid": 914.58,
            "anchors": [
              {
                "source": "orb_low",
                "label": "ORB低点",
                "price": 914.58
              }
            ],
            "display": "Entry Zone 912–917",
            "entry_source": "orb_low",
            "tolerance_pct": 0.3
          },
          "stop": "930.0 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 930.0,
          "target": "910.4 (预期低点)",
          "target_source": "expected_low",
          "target_price": 910.43,
          "targets": [
            "910.4 (预期低点)"
          ],
          "level_anchors": {
            "vwap": 930.65,
            "orb_high": 930.0,
            "orb_low": 914.58,
            "prev_high": 966.78,
            "prev_low": 966.78,
            "prior_close": 966.78,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -3.37%",
            "RS弱于SMH -2.86%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -3.37% · RS弱于SMH -2.86% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "why_vs_runner_up": "MU RS -3.4% vs AVGO -1.4%;ER 1.4% vs 0.6%;higher beta (49.1 vs 21.7);relative weakness play",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -3.37,
            "relative_strength_vs_smh": -2.86,
            "relative_weakness_score": 5.09,
            "gap_pct": -4.63,
            "beta_proxy": 49.14,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": -0.38,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(74%) × ER(1.4%) × rr_weight(0.89) / 100",
          "expected_high": 946.5,
          "expected_low": 910.43,
          "expected_close": 920.6,
          "current_price": 933.55,
          "upside_pct": 2.48,
          "downside_risk_pct": 1.39,
          "why_factors": [
            "RS弱于QQQ -3.37%",
            "RS弱于SMH -2.86%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -3.37% · RS弱于SMH -2.86% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "gap_pct": -4.63,
          "rr_display": {
            "reward_risk_ratio": 0.27,
            "risk_reward_ratio": 3.7,
            "reward_per_share": 4.15,
            "risk_per_share": 15.42,
            "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"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $930.0 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 914.58,
              "source": "orb_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 914.58,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 930.0,
              "source": "orb_high",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 930.0,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 930.65,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 910.43,
              "source": "expected_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_low",
                  "label": "Expected Low",
                  "price": 910.43,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(914.58-910.43)/914.58=0.45%",
          "heuristic_expected_return_pct": 1.39,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 MU:在 914.58 附近入场,目标 910.43,预期 +0.45%",
          "expected_r": -0.0602,
          "rr_below_hard_min": true,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 54.9,
            "shares": 6,
            "contracts": 0,
            "max_loss_usd": 92.52,
            "win_usd": 24.9,
            "loss_usd": 92.52,
            "expected_value_usd": -5.63,
            "risk_per_share": 15.42,
            "reward_per_share": 4.15,
            "rr_display": {
              "reward_risk_ratio": 0.27,
              "risk_reward_ratio": 3.7,
              "reward_per_share": 4.15,
              "risk_per_share": 15.42,
              "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"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$25 / Loss -$93"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 54.9,
            "contracts": 0,
            "shares": 6,
            "max_loss_usd": 92.52,
            "size_label": "None",
            "display": "Risk 1.0% → Position 54.9% → 6 unit(s) → Max Loss $92.52"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "relative_strength",
              "label": "Highest Relative Strength",
              "primary_value": -3.37,
              "runner_up_value": 2.68,
              "wins": true
            },
            {
              "rank": 2,
              "dimension": "expected_range",
              "label": "Largest Expected Range",
              "primary_value": 3.87,
              "runner_up_value": 3.21,
              "wins": true
            },
            {
              "rank": 3,
              "dimension": "win_prob",
              "label": "Highest Probability",
              "primary_value": 74.0,
              "runner_up_value": 74.0,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "AVGO",
              "rank": 2,
              "reasons": [
                "ER 0.5% vs 0.6%",
                "Score 0.91 vs 0.42",
                "RS -3.4% vs -1.4%"
              ],
              "summary": "Why MU over AVGO: ER 0.5% vs 0.6% · Score 0.91 vs 0.42 · RS -3.4% vs -1.4%"
            },
            {
              "symbol": "AMD",
              "rank": 3,
              "reasons": [
                "Win% 74 vs 70",
                "ER 0.5% vs 0.3%",
                "Score 0.91 vs 0.33",
                "RS -3.4% vs -0.8%"
              ],
              "summary": "Why MU over AMD: Win% 74 vs 70 · ER 0.5% vs 0.3% · Score 0.91 vs 0.33 · RS -3.4% vs -0.8%"
            },
            {
              "symbol": "TSLA",
              "rank": 4,
              "reasons": [
                "Win% 74 vs 66",
                "ER 0.5% vs 0.9%",
                "Score 0.91 vs 0.3",
                "RS -3.4% vs -3.2%"
              ],
              "summary": "Why MU over TSLA: Win% 74 vs 66 · ER 0.5% vs 0.9% · Score 0.91 vs 0.3 · RS -3.4% vs -3.2%"
            },
            {
              "symbol": "NVDA",
              "rank": 5,
              "reasons": [
                "Win% 74 vs 51",
                "ER 0.5% vs 0.6%",
                "Score 0.91 vs 0.3",
                "RS -3.4% vs -1.7%"
              ],
              "summary": "Why MU over NVDA: Win% 74 vs 51 · ER 0.5% vs 0.6% · Score 0.91 vs 0.3 · RS -3.4% vs -1.7%"
            },
            {
              "symbol": "XLE",
              "rank": 6,
              "reasons": [
                "Win% 74 vs 71",
                "ER 0.5% vs 0.5%",
                "Score 0.91 vs 0.16",
                "RS -3.4% vs -1.7%"
              ],
              "summary": "Why MU over XLE: Win% 74 vs 71 · ER 0.5% vs 0.5% · Score 0.91 vs 0.16 · RS -3.4% vs -1.7%"
            }
          ],
          "rank_summary": "MU ranked #1 because weakest RS + largest expected range + highest probability",
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 74.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": -5.63,
            "win_scenario_usd": 24.9,
            "loss_scenario_usd": 92.52,
            "win_prob_pct": 74.0,
            "display": "EV $-6 (win +$25 @ 74.0% · loss -$93)"
          },
          "entry_status": {
            "current_price": 933.55,
            "ideal_entry": 914.58,
            "distance_pct": -2.07,
            "remaining_er_pct": 2.48,
            "live_expected_return_pct": 2.48,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 911.84,
            "zone_high": 917.32,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 2,
          "symbol": "AVGO",
          "direction": "SHORT",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 74,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+0.00%",
          "expected_return_pct": 0.0,
          "win_prob": 74.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 20.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              }
            ],
            "total": 74.0,
            "raw_total": 74.0,
            "was_clamped": false
          },
          "risk_reward": 0.0,
          "final_score": 0.42,
          "trade_action": "Pass",
          "relative_strength": -1.45,
          "entry": "Below 358.8 (ORB低点)",
          "entry_source": "orb_low",
          "entry_price": 358.76,
          "entry_zone": {
            "low": 358.76,
            "high": 358.76,
            "mid": 358.76,
            "anchors": [],
            "display": "Entry Zone 358.76–358.76",
            "entry_source": "orb_low",
            "tolerance_pct": 0.3
          },
          "stop": "362.0 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 362.0,
          "target": "358.8 (预期低点)",
          "target_source": "expected_low",
          "target_price": 358.76,
          "targets": [
            "358.8 (预期低点)"
          ],
          "level_anchors": {
            "vwap": 362.13,
            "orb_high": 362.0,
            "orb_low": 358.76,
            "prev_high": 368.45,
            "prev_low": 368.45,
            "prior_close": 368.45,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -1.45%",
            "RS弱于SMH -0.94%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -1.45% · RS弱于SMH -0.94% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -1.45,
            "relative_strength_vs_smh": -0.94,
            "relative_weakness_score": 2.01,
            "gap_pct": -1.91,
            "beta_proxy": 21.71,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": -0.38,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(74%) × ER(0.6%) × rr_weight(1.01) / 100",
          "expected_high": 364.88,
          "expected_low": 358.76,
          "expected_close": 360.84,
          "current_price": 362.86,
          "upside_pct": 1.13,
          "downside_risk_pct": 0.56,
          "why_factors": [
            "RS弱于QQQ -1.45%",
            "RS弱于SMH -0.94%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -1.45% · RS弱于SMH -0.94% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "gap_pct": -1.91,
          "rr_display": {},
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $362.0 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 358.76,
              "source": "orb_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 358.76,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 362.0,
              "source": "orb_high",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 362.0,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 362.13,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 358.76,
              "source": "expected_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_low",
                  "label": "Expected Low",
                  "price": 358.76,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(358.76-358.76)/358.76=0.00%",
          "heuristic_expected_return_pct": 0.56,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 AVGO:在 358.76 附近入场,目标 358.76,预期 +0.00%",
          "expected_r": null,
          "rr_below_hard_min": true,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "shares": 30,
            "contracts": 0,
            "max_loss_usd": 97.2,
            "win_usd": 0.0,
            "loss_usd": 97.2,
            "expected_value_usd": -25.27,
            "risk_per_share": 3.24,
            "reward_per_share": 0.0,
            "rr_display": {},
            "size_label": "None",
            "display": "$10,000 → Win +$0 / Loss -$97"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "contracts": 0,
            "shares": 30,
            "max_loss_usd": 97.2,
            "size_label": "None",
            "display": "Risk 1.0% → Position 100.0% → 30 unit(s) → Max Loss $97.2"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "win_prob",
              "label": "Highest Probability",
              "primary_value": 74.0,
              "runner_up_value": 74.0,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "MU",
              "rank": 1,
              "reasons": [
                "ER 0.0% vs 1.4%",
                "Score 0.42 vs 0.91",
                "RS -1.4% vs -3.4%"
              ],
              "summary": "Why AVGO over MU: ER 0.0% vs 1.4% · Score 0.42 vs 0.91 · RS -1.4% vs -3.4%"
            },
            {
              "symbol": "AMD",
              "rank": 3,
              "reasons": [
                "Win% 74 vs 70",
                "ER 0.0% vs 0.3%",
                "Score 0.42 vs 0.33",
                "RS -1.4% vs -0.8%"
              ],
              "summary": "Why AVGO over AMD: Win% 74 vs 70 · ER 0.0% vs 0.3% · Score 0.42 vs 0.33 · RS -1.4% vs -0.8%"
            },
            {
              "symbol": "TSLA",
              "rank": 4,
              "reasons": [
                "Win% 74 vs 66",
                "ER 0.0% vs 0.9%",
                "Score 0.42 vs 0.3",
                "RS -1.4% vs -3.2%"
              ],
              "summary": "Why AVGO over TSLA: Win% 74 vs 66 · ER 0.0% vs 0.9% · Score 0.42 vs 0.3 · RS -1.4% vs -3.2%"
            },
            {
              "symbol": "NVDA",
              "rank": 5,
              "reasons": [
                "Win% 74 vs 51",
                "ER 0.0% vs 0.6%",
                "Score 0.42 vs 0.3",
                "RS -1.4% vs -1.7%"
              ],
              "summary": "Why AVGO over NVDA: Win% 74 vs 51 · ER 0.0% vs 0.6% · Score 0.42 vs 0.3 · RS -1.4% vs -1.7%"
            },
            {
              "symbol": "XLE",
              "rank": 6,
              "reasons": [
                "Win% 74 vs 71",
                "ER 0.0% vs 0.5%",
                "Score 0.42 vs 0.16",
                "RS -1.4% vs -1.7%"
              ],
              "summary": "Why AVGO over XLE: Win% 74 vs 71 · ER 0.0% vs 0.5% · Score 0.42 vs 0.16 · RS -1.4% vs -1.7%"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 74.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": -25.27,
            "win_scenario_usd": 0.0,
            "loss_scenario_usd": 97.2,
            "win_prob_pct": 74.0,
            "display": "EV $-25 (win +$0 @ 74.0% · loss -$97)"
          },
          "entry_status": {
            "current_price": 362.86,
            "ideal_entry": 358.76,
            "distance_pct": -1.14,
            "remaining_er_pct": 1.13,
            "live_expected_return_pct": 1.13,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 358.76,
            "zone_high": 358.76,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 3,
          "symbol": "AMD",
          "direction": "SHORT",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 70,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+0.32%",
          "expected_return_pct": 0.32,
          "win_prob": 70.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 16.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              }
            ],
            "total": 70.0,
            "raw_total": 70.0,
            "was_clamped": false
          },
          "risk_reward": 0.16,
          "final_score": 0.33,
          "trade_action": "Pass",
          "relative_strength": -0.76,
          "entry": "Below 457.9 (ORB低点)",
          "entry_source": "orb_low",
          "entry_price": 458.23,
          "entry_zone": {
            "low": 457.21,
            "high": 459.25,
            "mid": 458.23,
            "anchors": [
              {
                "source": "orb_low",
                "label": "ORB低点",
                "price": 457.88
              }
            ],
            "display": "Entry Zone 457–459",
            "entry_source": "orb_low",
            "tolerance_pct": 0.3
          },
          "stop": "467.6 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 467.61,
          "target": "456.8 (预期低点)",
          "target_source": "expected_low",
          "target_price": 456.75,
          "targets": [
            "456.8 (预期低点)"
          ],
          "level_anchors": {
            "vwap": 467.92,
            "orb_high": 467.61,
            "orb_low": 457.88,
            "prev_high": 473.25,
            "prev_low": 473.25,
            "prior_close": 473.25,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -0.76%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -0.76% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -0.76,
            "relative_strength_vs_smh": -0.25,
            "relative_weakness_score": 0.91,
            "gap_pct": -1.64,
            "beta_proxy": 11.86,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": -0.38,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(70%) × ER(0.3%) × rr_weight(1.5) / 100",
          "expected_high": 471.65,
          "expected_low": 456.75,
          "expected_close": 467.83,
          "current_price": 469.3,
          "upside_pct": 2.67,
          "downside_risk_pct": 0.5,
          "why_factors": [
            "RS弱于QQQ -0.76%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -0.76% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "gap_pct": -1.64,
          "rr_display": {
            "reward_risk_ratio": 0.16,
            "risk_reward_ratio": 6.25,
            "reward_per_share": 1.48,
            "risk_per_share": 9.38,
            "label_reward_risk": "Reward/Risk 0.16",
            "label_risk_reward": "Risk:Reward 1:6.25",
            "display": "Reward/Risk 0.16 · Risk:Reward 1:6.25",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $467.61 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 458.23,
              "source": "orb_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 457.88,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 467.61,
              "source": "orb_high",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 467.61,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 467.92,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 456.75,
              "source": "expected_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_low",
                  "label": "Expected Low",
                  "price": 456.75,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(458.23-456.75)/458.23=0.32%",
          "heuristic_expected_return_pct": 0.31,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 AMD:在 458.23 附近入场,目标 456.75,预期 +0.32%",
          "expected_r": -0.188,
          "rr_below_hard_min": true,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 45.8,
            "shares": 10,
            "contracts": 0,
            "max_loss_usd": 93.8,
            "win_usd": 14.8,
            "loss_usd": 93.8,
            "expected_value_usd": -17.78,
            "risk_per_share": 9.38,
            "reward_per_share": 1.48,
            "rr_display": {
              "reward_risk_ratio": 0.16,
              "risk_reward_ratio": 6.25,
              "reward_per_share": 1.48,
              "risk_per_share": 9.38,
              "label_reward_risk": "Reward/Risk 0.16",
              "label_risk_reward": "Risk:Reward 1:6.25",
              "display": "Reward/Risk 0.16 · Risk:Reward 1:6.25",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$15 / Loss -$94"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 45.8,
            "contracts": 0,
            "shares": 10,
            "max_loss_usd": 93.8,
            "size_label": "None",
            "display": "Risk 1.0% → Position 45.8% → 10 unit(s) → Max Loss $93.8"
          },
          "why_wins_today": [],
          "why_not_alternatives": [
            {
              "symbol": "MU",
              "rank": 1,
              "reasons": [
                "Win% 70 vs 74",
                "ER 0.3% vs 1.4%",
                "Score 0.33 vs 0.91",
                "RS -0.8% vs -3.4%"
              ],
              "summary": "Why AMD over MU: Win% 70 vs 74 · ER 0.3% vs 1.4% · Score 0.33 vs 0.91 · RS -0.8% vs -3.4%"
            },
            {
              "symbol": "AVGO",
              "rank": 2,
              "reasons": [
                "Win% 70 vs 74",
                "ER 0.3% vs 0.6%",
                "Score 0.33 vs 0.42",
                "RS -0.8% vs -1.4%"
              ],
              "summary": "Why AMD over AVGO: Win% 70 vs 74 · ER 0.3% vs 0.6% · Score 0.33 vs 0.42 · RS -0.8% vs -1.4%"
            },
            {
              "symbol": "TSLA",
              "rank": 4,
              "reasons": [
                "Win% 70 vs 66",
                "ER 0.3% vs 0.9%",
                "Score 0.33 vs 0.3",
                "RS -0.8% vs -3.2%"
              ],
              "summary": "Why AMD over TSLA: Win% 70 vs 66 · ER 0.3% vs 0.9% · Score 0.33 vs 0.3 · RS -0.8% vs -3.2%"
            },
            {
              "symbol": "NVDA",
              "rank": 5,
              "reasons": [
                "Win% 70 vs 51",
                "ER 0.3% vs 0.6%",
                "Score 0.33 vs 0.3",
                "RS -0.8% vs -1.7%"
              ],
              "summary": "Why AMD over NVDA: Win% 70 vs 51 · ER 0.3% vs 0.6% · Score 0.33 vs 0.3 · RS -0.8% vs -1.7%"
            },
            {
              "symbol": "XLE",
              "rank": 6,
              "reasons": [
                "Win% 70 vs 71",
                "ER 0.3% vs 0.5%",
                "Score 0.33 vs 0.16",
                "RS -0.8% vs -1.7%"
              ],
              "summary": "Why AMD over XLE: Win% 70 vs 71 · ER 0.3% vs 0.5% · Score 0.33 vs 0.16 · RS -0.8% vs -1.7%"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 70.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": -17.78,
            "win_scenario_usd": 14.8,
            "loss_scenario_usd": 93.8,
            "win_prob_pct": 70.0,
            "display": "EV $-18 (win +$15 @ 70.0% · loss -$94)"
          },
          "entry_status": {
            "current_price": 469.3,
            "ideal_entry": 458.23,
            "distance_pct": -2.42,
            "remaining_er_pct": 2.67,
            "live_expected_return_pct": 2.67,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 457.21,
            "zone_high": 459.25,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 4,
          "symbol": "TSLA",
          "direction": "SHORT",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 66,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+1.02%",
          "expected_return_pct": 1.02,
          "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
          },
          "risk_reward": 3.94,
          "final_score": 0.3,
          "trade_action": "Pass",
          "relative_strength": -3.18,
          "entry": "Below 351.5 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 351.52,
          "entry_zone": {
            "low": 350.62,
            "high": 352.43,
            "mid": 351.52,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 351.46
              },
              {
                "source": "orb_high",
                "label": "ORB高点",
                "price": 352.43
              },
              {
                "source": "orb_low",
                "label": "ORB低点",
                "price": 350.62
              }
            ],
            "display": "Entry Zone 351–352",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "352.4 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 352.43,
          "target": "347.9 (预期收盘)",
          "target_source": "expected_close",
          "target_price": 347.92,
          "targets": [
            "347.9 (预期收盘)"
          ],
          "level_anchors": {
            "vwap": 351.46,
            "orb_high": 352.43,
            "orb_low": 350.62,
            "prev_high": 362.86,
            "prev_low": 362.86,
            "prior_close": 362.86,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -3.18%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -3.18% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -3.18,
            "relative_strength_vs_smh": -2.67,
            "relative_weakness_score": 4.78,
            "gap_pct": -3.27,
            "beta_proxy": 46.43,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": -0.38,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(66%) × ER(0.9%) × rr_weight(0.5) / 100",
          "expected_high": 354.22,
          "expected_low": 347.92,
          "expected_close": 347.92,
          "current_price": 351.07,
          "upside_pct": 0.9,
          "downside_risk_pct": 0.9,
          "why_factors": [
            "RS弱于QQQ -3.18%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -3.18% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "gap_pct": -3.27,
          "rr_display": {
            "reward_risk_ratio": 3.96,
            "risk_reward_ratio": 0.25,
            "reward_per_share": 3.6,
            "risk_per_share": 0.91,
            "label_reward_risk": "Reward/Risk 3.96",
            "label_risk_reward": "Risk:Reward 1:0.25",
            "display": "Reward/Risk 3.96 · Risk:Reward 1:0.25",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $352.43 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 351.52,
              "source": "vwap",
              "confidence": 98,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 350.62,
                  "weight_pct": 23.0,
                  "matched": true,
                  "primary": false
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 351.46,
                  "weight_pct": 54.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "current",
                  "label": "Below Current",
                  "price": 351.07,
                  "weight_pct": 23.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "stop": {
              "price": 352.43,
              "source": "orb_high",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 352.43,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 351.46,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 347.92,
              "source": "expected_close",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_close",
                  "label": "Expected Close",
                  "price": 347.92,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(351.52-347.92)/351.52=1.02%",
          "heuristic_expected_return_pct": 0.9,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 TSLA:在 351.52 附近入场,目标 347.92,预期 +1.02%",
          "expected_r": 2.2604,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "shares": 109,
            "contracts": 0,
            "max_loss_usd": 99.19,
            "win_usd": 392.4,
            "loss_usd": 99.19,
            "expected_value_usd": 225.26,
            "risk_per_share": 0.91,
            "reward_per_share": 3.6,
            "rr_display": {
              "reward_risk_ratio": 3.96,
              "risk_reward_ratio": 0.25,
              "reward_per_share": 3.6,
              "risk_per_share": 0.91,
              "label_reward_risk": "Reward/Risk 3.96",
              "label_risk_reward": "Risk:Reward 1:0.25",
              "display": "Reward/Risk 3.96 · Risk:Reward 1:0.25",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$392 / Loss -$99"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "contracts": 0,
            "shares": 109,
            "max_loss_usd": 99.19,
            "size_label": "None",
            "display": "Risk 1.0% → Position 100.0% → 109 unit(s) → Max Loss $99.19"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "relative_strength",
              "label": "Highest Relative Strength",
              "primary_value": -3.18,
              "runner_up_value": 2.68,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "MU",
              "rank": 1,
              "reasons": [
                "Win% 66 vs 74",
                "ER 1.0% vs 1.4%",
                "Score 0.3 vs 0.91",
                "RS -3.2% vs -3.4%",
                "R:R 3.94 vs 1.78"
              ],
              "summary": "Why TSLA over MU: Win% 66 vs 74 · ER 1.0% vs 1.4% · Score 0.3 vs 0.91 · RS -3.2% vs -3.4% · R:R 3.94 vs 1.78"
            },
            {
              "symbol": "AVGO",
              "rank": 2,
              "reasons": [
                "Win% 66 vs 74",
                "ER 1.0% vs 0.6%",
                "Score 0.3 vs 0.42",
                "RS -3.2% vs -1.4%",
                "R:R 3.94 vs 2.03"
              ],
              "summary": "Why TSLA over AVGO: Win% 66 vs 74 · ER 1.0% vs 0.6% · Score 0.3 vs 0.42 · RS -3.2% vs -1.4% · R:R 3.94 vs 2.03"
            },
            {
              "symbol": "AMD",
              "rank": 3,
              "reasons": [
                "Win% 66 vs 70",
                "ER 1.0% vs 0.3%",
                "Score 0.3 vs 0.33",
                "RS -3.2% vs -0.8%"
              ],
              "summary": "Why TSLA over AMD: Win% 66 vs 70 · ER 1.0% vs 0.3% · Score 0.3 vs 0.33 · RS -3.2% vs -0.8%"
            },
            {
              "symbol": "NVDA",
              "rank": 5,
              "reasons": [
                "Win% 66 vs 51",
                "ER 1.0% vs 0.6%",
                "RS -3.2% vs -1.7%",
                "R:R 3.94 vs 1.84"
              ],
              "summary": "Why TSLA over NVDA: Win% 66 vs 51 · ER 1.0% vs 0.6% · RS -3.2% vs -1.7% · R:R 3.94 vs 1.84"
            },
            {
              "symbol": "XLE",
              "rank": 6,
              "reasons": [
                "Win% 66 vs 71",
                "ER 1.0% vs 0.5%",
                "Score 0.3 vs 0.16",
                "RS -3.2% vs -1.7%",
                "R:R 3.94 vs 0.81"
              ],
              "summary": "Why TSLA over XLE: Win% 66 vs 71 · ER 1.0% vs 0.5% · Score 0.3 vs 0.16 · RS -3.2% vs -1.7% · R:R 3.94 vs 0.81"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 66.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": 225.26,
            "win_scenario_usd": 392.4,
            "loss_scenario_usd": 99.19,
            "win_prob_pct": 66.0,
            "display": "EV $+225 (win +$392 @ 66.0% · loss -$99)"
          },
          "entry_status": {
            "current_price": 351.07,
            "ideal_entry": 351.52,
            "distance_pct": 0.13,
            "remaining_er_pct": 0.9,
            "live_expected_return_pct": 0.9,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 350.62,
            "zone_high": 352.43,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 5,
          "symbol": "NVDA",
          "direction": "SHORT",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 51,
          "confidence_stars": "★★☆☆☆",
          "expected_move": "+1.15%",
          "expected_return_pct": 1.15,
          "win_prob": 51.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 20.0
              },
              {
                "factor": "Catalyst",
                "key": "catalyst",
                "points": -5.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              },
              {
                "factor": "Macro",
                "key": "macro",
                "points": -18.0
              }
            ],
            "total": 51.0,
            "raw_total": 51.0,
            "was_clamped": false
          },
          "risk_reward": 80.84,
          "final_score": 0.3,
          "trade_action": "Pass",
          "relative_strength": -1.69,
          "entry": "Below 210.9 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 210.9,
          "entry_zone": {
            "low": 210.86,
            "high": 210.93,
            "mid": 210.9,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 210.86
              },
              {
                "source": "orb_high",
                "label": "ORB高点",
                "price": 210.93
              }
            ],
            "display": "Entry Zone 210.86–210.93",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "210.9 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 210.93,
          "target": "208.5 (预期低点)",
          "target_source": "expected_low",
          "target_price": 208.48,
          "targets": [
            "208.5 (预期低点)"
          ],
          "level_anchors": {
            "vwap": 210.86,
            "orb_high": 210.93,
            "orb_low": 208.48,
            "prev_high": 214.72,
            "prev_low": 214.72,
            "prior_close": 214.72,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -1.69%",
            "RS弱于SMH -1.18%",
            "News 5 (利空做空)",
            "Volume 信号",
            "Geo-risk day — avoid blind NVDA short vs escalation",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -1.69% · RS弱于SMH -1.18% · News 5 (利空做空) · Volume 信号",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -1.69,
            "relative_strength_vs_smh": -1.18,
            "relative_weakness_score": 2.4,
            "gap_pct": -1.96,
            "beta_proxy": 25.14,
            "volume_signal": true,
            "news_count": 5,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": -0.38,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(51%) × ER(0.6%) × rr_weight(0.92) / 100",
          "expected_high": 212.29,
          "expected_low": 208.48,
          "expected_close": 209.61,
          "current_price": 210.95,
          "upside_pct": 1.17,
          "downside_risk_pct": 0.64,
          "why_factors": [
            "RS弱于QQQ -1.69%",
            "RS弱于SMH -1.18%",
            "News 5 (利空做空)",
            "Volume 信号",
            "Geo-risk day — avoid blind NVDA short vs escalation",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -1.69% · RS弱于SMH -1.18% · News 5 (利空做空) · Volume 信号",
          "gap_pct": -1.96,
          "rr_display": {
            "reward_risk_ratio": 80.67,
            "risk_reward_ratio": 0.01,
            "reward_per_share": 2.42,
            "risk_per_share": 0.03,
            "label_reward_risk": "Reward/Risk 80.67",
            "label_risk_reward": "Risk:Reward 1:0.01",
            "display": "Reward/Risk 80.67 · Risk:Reward 1:0.01",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $210.93 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 210.9,
              "source": "vwap",
              "confidence": 77,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 210.86,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 210.93,
              "source": "orb_high",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 210.93,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 210.86,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 208.48,
              "source": "expected_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_low",
                  "label": "Expected Low",
                  "price": 208.48,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(210.9-208.48)/210.9=1.15%",
          "heuristic_expected_return_pct": 0.64,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 NVDA:在 210.9 附近入场,目标 208.48,预期 +1.15%",
          "expected_r": 40.7384,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "shares": 3333,
            "contracts": 0,
            "max_loss_usd": 99.99,
            "win_usd": 8065.86,
            "loss_usd": 99.99,
            "expected_value_usd": 4064.59,
            "risk_per_share": 0.03,
            "reward_per_share": 2.42,
            "rr_display": {
              "reward_risk_ratio": 80.67,
              "risk_reward_ratio": 0.01,
              "reward_per_share": 2.42,
              "risk_per_share": 0.03,
              "label_reward_risk": "Reward/Risk 80.67",
              "label_risk_reward": "Risk:Reward 1:0.01",
              "display": "Reward/Risk 80.67 · Risk:Reward 1:0.01",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$8066 / Loss -$100"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "contracts": 0,
            "shares": 3333,
            "max_loss_usd": 99.99,
            "size_label": "None",
            "display": "Risk 1.0% → Position 100.0% → 3333 unit(s) → Max Loss $99.99"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "risk_reward",
              "label": "Best Risk Reward",
              "primary_value": 80.84,
              "runner_up_value": 5.41,
              "wins": true
            },
            {
              "rank": 2,
              "dimension": "catalyst",
              "label": "Best Catalyst Alignment",
              "primary_value": 5.0,
              "runner_up_value": 2.0,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "MU",
              "rank": 1,
              "reasons": [
                "Win% 51 vs 74",
                "ER 1.1% vs 1.4%",
                "Score 0.3 vs 0.91",
                "RS -1.7% vs -3.4%",
                "R:R 80.84 vs 1.78"
              ],
              "summary": "Why NVDA over MU: Win% 51 vs 74 · ER 1.1% vs 1.4% · Score 0.3 vs 0.91 · RS -1.7% vs -3.4% · R:R 80.84 vs 1.78"
            },
            {
              "symbol": "AVGO",
              "rank": 2,
              "reasons": [
                "Win% 51 vs 74",
                "ER 1.1% vs 0.6%",
                "Score 0.3 vs 0.42",
                "RS -1.7% vs -1.4%",
                "R:R 80.84 vs 2.03"
              ],
              "summary": "Why NVDA over AVGO: Win% 51 vs 74 · ER 1.1% vs 0.6% · Score 0.3 vs 0.42 · RS -1.7% vs -1.4% · R:R 80.84 vs 2.03"
            },
            {
              "symbol": "AMD",
              "rank": 3,
              "reasons": [
                "Win% 51 vs 70",
                "ER 1.1% vs 0.3%",
                "Score 0.3 vs 0.33",
                "RS -1.7% vs -0.8%",
                "R:R 80.84 vs 5.35"
              ],
              "summary": "Why NVDA over AMD: Win% 51 vs 70 · ER 1.1% vs 0.3% · Score 0.3 vs 0.33 · RS -1.7% vs -0.8% · R:R 80.84 vs 5.35"
            },
            {
              "symbol": "TSLA",
              "rank": 4,
              "reasons": [
                "Win% 51 vs 66",
                "ER 1.1% vs 0.9%",
                "RS -1.7% vs -3.2%",
                "R:R 80.84 vs 1.0"
              ],
              "summary": "Why NVDA over TSLA: Win% 51 vs 66 · ER 1.1% vs 0.9% · RS -1.7% vs -3.2% · R:R 80.84 vs 1.0"
            },
            {
              "symbol": "XLE",
              "rank": 6,
              "reasons": [
                "Win% 51 vs 71",
                "ER 1.1% vs 0.5%",
                "Score 0.3 vs 0.16",
                "R:R 80.84 vs 0.81"
              ],
              "summary": "Why NVDA over XLE: Win% 51 vs 71 · ER 1.1% vs 0.5% · Score 0.3 vs 0.16 · R:R 80.84 vs 0.81"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 51.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": 4064.59,
            "win_scenario_usd": 8065.86,
            "loss_scenario_usd": 99.99,
            "win_prob_pct": 51.0,
            "display": "EV $+4065 (win +$8066 @ 51.0% · loss -$100)"
          },
          "entry_status": {
            "current_price": 210.95,
            "ideal_entry": 210.9,
            "distance_pct": -0.02,
            "remaining_er_pct": 1.17,
            "live_expected_return_pct": 1.17,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 210.86,
            "zone_high": 210.93,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        }
      ],
      "watchlist_items": [
        {
          "symbol": "XLE",
          "rank": 6,
          "win_prob": 71.0,
          "expected_return_pct": 0.46,
          "trade_action": "Pass",
          "why": "RS弱于QQQ -1.74% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "XLK",
          "rank": 7,
          "win_prob": 65.0,
          "expected_return_pct": 0.2,
          "trade_action": "Pass",
          "why": "RS弱于QQQ -0.50% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "SMH",
          "rank": 8,
          "win_prob": 48.0,
          "expected_return_pct": 0.22,
          "trade_action": "Pass",
          "why": "RS弱于QQQ -0.51% · Volume 信号 · Geo-risk day — avoid blind SMH short vs escalation · 几何上行 <1.5%(软门槛)",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "TQQQ",
          "rank": 9,
          "win_prob": 42.0,
          "expected_return_pct": 0.19,
          "trade_action": "Pass",
          "why": "RS弱于QQQ -0.27% · Volume 信号 · Geo-risk day — avoid blind TQQQ short vs escalation · 几何上行 <1.5%(软门槛)",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "QQQ",
          "rank": 10,
          "win_prob": 59.0,
          "expected_return_pct": 0.04,
          "trade_action": "Pass",
          "why": "Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "note": "Monitor — below trade threshold"
        }
      ],
      "advisory": true,
      "swing": {
        "symbol": "NVDA",
        "direction": "SHORT",
        "instrument": "Stock",
        "horizon": "Swing",
        "duration": "Swing (days–weeks)",
        "confidence": 56,
        "entry": "Near 211.6 (swing zone)",
        "entry_source": "swing_zone",
        "entry_price": 211.58,
        "entry_zone": {
          "low": 210.95,
          "high": 214.52,
          "mid": 211.58,
          "display": "$210.95–$214.52",
          "source": "swing_pullback"
        },
        "stop": "220.4 (1.75xATR)",
        "stop_source": "1.75xATR",
        "stop_price": 220.41,
        "target": "199.8 (T1 ~5.6%)",
        "target_source": "2xATR_or_5pct",
        "target_price": 199.8,
        "targets": [
          {
            "price": 199.8,
            "label": "T1",
            "pct": 5.57
          },
          {
            "price": 190.42,
            "label": "T2",
            "pct": 10.0
          }
        ],
        "expected_return_pct": 5.57,
        "expected_move": "+5.57%",
        "risk_reward": 1.33,
        "win_prob": 51.0,
        "final_score": 0.3,
        "swing_quality": 6.907,
        "atr": 5.8879,
        "atr_source": "ATR14",
        "level_formula": "stop=1.5–2×ATR or prior-week extreme; T1=max(5%, 2×ATR); T2=min(15%, max(10%, 3×ATR))",
        "current_price": 210.95,
        "why": [
          "高流动性波段标的 NVDA",
          "Prior day +0.0%",
          "5D momentum -7.3%",
          "RS vs QQQ -1.69%",
          "News/5 catalyst hints",
          "Swing score 6.9"
        ],
        "why_chain": "高流动性波段标的 NVDA · Prior day +0.0% · 5D momentum -7.3% · RS vs QQQ -1.69%",
        "invalidation": "Close beyond stop $220.41 or thesis broken (trend flip / catalyst fade)",
        "trade_summary_cn": "波段做空 NVDA:理想入场 $210.95–$214.52,止损 $220.41,目标 $199.8(约 +5.6%),持仓天数–数周",
        "one_liner": "波段做空 NVDA:理想入场 $210.95–$214.52,止损 $220.41,目标 $199.8(约 +5.6%),持仓天数–数周",
        "edge_type": "Relative Weakness",
        "advisory": true,
        "label": "长线 · Swing Trade",
        "separate_from_intraday": true
      }
    },
    "edges": {
      "macro_edge": {
        "edge": "YES",
        "why": "今日有重大催化剂(含地缘/突发):Geopolitical Risk、Geopolitical Risk (Iran)、Macro Surprise、Trade Policy",
        "catalyst": "Geopolitical Risk、Geopolitical Risk (Iran)、Macro Surprise、Trade Policy"
      },
      "index_edge": {
        "edge": "YES",
        "why": "SPY 盘前/开盘 +0.17%"
      },
      "sector_edge": {
        "edge": "NO",
        "why": "板块相对强度不足"
      },
      "stock_edge": {
        "edge": "NO",
        "why": "无单票 RS+新闻+量能共振"
      },
      "advisory": "ADVISORY — 不构成投资建议"
    },
    "trade_candidates": [
      {
        "symbol": "MU",
        "win_prob": 74.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 20.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 74.0,
          "raw_total": 74.0,
          "was_clamped": false
        },
        "expected_return_pct": 1.39,
        "expected_high": 946.5,
        "expected_low": 910.43,
        "expected_close": 920.6,
        "current_price": 933.55,
        "upside_pct": 2.48,
        "downside_risk_pct": 1.39,
        "risk_reward": 1.78,
        "rr_display": {
          "reward_risk_ratio": 1.78,
          "risk_reward_ratio": 0.56,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.78",
          "label_risk_reward": "Risk:Reward 1:0.56",
          "display": "Reward/Risk 1.78 · Risk:Reward 1:0.56",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 1.0572,
        "final_score": 0.91,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -4.63,
        "relative_strength": -3.37,
        "relative_strength_vs_smh": -2.86,
        "relative_weakness_score": 5.09,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -3.37%",
          "RS弱于SMH -2.86%",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -3.37% · RS弱于SMH -2.86% · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 9,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -3.37,
          "relative_strength_vs_smh": -2.86,
          "relative_weakness_score": 5.09,
          "gap_pct": -4.63,
          "beta_proxy": 49.14,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(74%) × ER(1.4%) × rr_weight(0.89) / 100",
        "rr_weight": 0.89,
        "why_vs_runner_up": "MU RS -3.4% vs AVGO -1.4%;ER 1.4% vs 0.6%;higher beta (49.1 vs 21.7);relative weakness play",
        "advisory": true,
        "rank": 1,
        "direction": "SHORT"
      },
      {
        "symbol": "AVGO",
        "win_prob": 74.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 20.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 74.0,
          "raw_total": 74.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.56,
        "expected_high": 364.88,
        "expected_low": 358.76,
        "expected_close": 360.84,
        "current_price": 362.86,
        "upside_pct": 1.13,
        "downside_risk_pct": 0.56,
        "risk_reward": 2.03,
        "rr_display": {
          "reward_risk_ratio": 2.03,
          "risk_reward_ratio": 0.49,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 2.03",
          "label_risk_reward": "Risk:Reward 1:0.49",
          "display": "Reward/Risk 2.03 · Risk:Reward 1:0.49",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 1.2422,
        "final_score": 0.42,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -1.91,
        "relative_strength": -1.45,
        "relative_strength_vs_smh": -0.94,
        "relative_weakness_score": 2.01,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -1.45%",
          "RS弱于SMH -0.94%",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -1.45% · RS弱于SMH -0.94% · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 4,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -1.45,
          "relative_strength_vs_smh": -0.94,
          "relative_weakness_score": 2.01,
          "gap_pct": -1.91,
          "beta_proxy": 21.71,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(74%) × ER(0.6%) × rr_weight(1.01) / 100",
        "rr_weight": 1.01,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 2,
        "direction": "SHORT"
      },
      {
        "symbol": "AMD",
        "win_prob": 70.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 16.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 70.0,
          "raw_total": 70.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.31,
        "expected_high": 471.65,
        "expected_low": 456.75,
        "expected_close": 467.83,
        "current_price": 469.3,
        "upside_pct": 2.67,
        "downside_risk_pct": 0.5,
        "risk_reward": 5.35,
        "rr_display": {
          "reward_risk_ratio": 5.35,
          "risk_reward_ratio": 0.19,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 5.35",
          "label_risk_reward": "Risk:Reward 1:0.19",
          "display": "Reward/Risk 5.35 · Risk:Reward 1:0.19",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 3.445,
        "final_score": 0.33,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -1.64,
        "relative_strength": -0.76,
        "relative_strength_vs_smh": -0.25,
        "relative_weakness_score": 0.91,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -0.76%",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -0.76% · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 3,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.76,
          "relative_strength_vs_smh": -0.25,
          "relative_weakness_score": 0.91,
          "gap_pct": -1.64,
          "beta_proxy": 11.86,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(70%) × ER(0.3%) × rr_weight(1.5) / 100",
        "rr_weight": 1.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 3,
        "direction": "SHORT"
      },
      {
        "symbol": "TSLA",
        "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.9,
        "expected_high": 354.22,
        "expected_low": 347.92,
        "expected_close": 347.92,
        "current_price": 351.07,
        "upside_pct": 0.9,
        "downside_risk_pct": 0.9,
        "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"
        },
        "expected_r": 0.32,
        "final_score": 0.3,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -3.27,
        "relative_strength": -3.18,
        "relative_strength_vs_smh": -2.67,
        "relative_weakness_score": 4.78,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -3.18%",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -3.18% · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 3,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -3.18,
          "relative_strength_vs_smh": -2.67,
          "relative_weakness_score": 4.78,
          "gap_pct": -3.27,
          "beta_proxy": 46.43,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(66%) × ER(0.9%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 4,
        "direction": "SHORT"
      },
      {
        "symbol": "NVDA",
        "win_prob": 51.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 20.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": -5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            },
            {
              "factor": "Macro",
              "key": "macro",
              "points": -18.0
            }
          ],
          "total": 51.0,
          "raw_total": 51.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.64,
        "expected_high": 212.29,
        "expected_low": 208.48,
        "expected_close": 209.61,
        "current_price": 210.95,
        "upside_pct": 1.17,
        "downside_risk_pct": 0.64,
        "risk_reward": 1.84,
        "rr_display": {
          "reward_risk_ratio": 1.84,
          "risk_reward_ratio": 0.54,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.84",
          "label_risk_reward": "Risk:Reward 1:0.54",
          "display": "Reward/Risk 1.84 · Risk:Reward 1:0.54",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.4484,
        "final_score": 0.3,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -1.96,
        "relative_strength": -1.69,
        "relative_strength_vs_smh": -1.18,
        "relative_weakness_score": 2.4,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -1.69%",
          "RS弱于SMH -1.18%",
          "News 5 (利空做空)",
          "Volume 信号",
          "Geo-risk day — avoid blind NVDA short vs escalation",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -1.69% · RS弱于SMH -1.18% · News 5 (利空做空) · Volume 信号",
        "score": 3,
        "news_count": 5,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -1.69,
          "relative_strength_vs_smh": -1.18,
          "relative_weakness_score": 2.4,
          "gap_pct": -1.96,
          "beta_proxy": 25.14,
          "volume_signal": true,
          "news_count": 5,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(51%) × ER(0.6%) × rr_weight(0.92) / 100",
        "rr_weight": 0.92,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 5,
        "direction": "SHORT"
      },
      {
        "symbol": "XLE",
        "win_prob": 71.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 12.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 71.0,
          "raw_total": 71.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.46,
        "expected_high": 63.11,
        "expected_low": 61.99,
        "expected_close": 62.2,
        "current_price": 62.49,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.99,
        "risk_reward": 0.81,
        "rr_display": {
          "reward_risk_ratio": 0.81,
          "risk_reward_ratio": 1.23,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.81",
          "label_risk_reward": "Risk:Reward 1:1.23",
          "display": "Reward/Risk 0.81 · Risk:Reward 1:1.23",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.2851,
        "final_score": 0.16,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -1.37,
        "relative_strength": -1.74,
        "relative_strength_vs_smh": -1.23,
        "relative_weakness_score": 2.48,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -1.74%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -1.74% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 2,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -1.74,
          "relative_strength_vs_smh": -1.23,
          "relative_weakness_score": 2.48,
          "gap_pct": -1.37,
          "beta_proxy": 25.86,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(71%) × ER(0.5%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 6,
        "direction": "SHORT"
      },
      {
        "symbol": "XLK",
        "win_prob": 65.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 6.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 65.0,
          "raw_total": 65.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.2,
        "expected_high": 183.17,
        "expected_low": 180.05,
        "expected_close": 181.89,
        "current_price": 182.26,
        "upside_pct": 1.21,
        "downside_risk_pct": 0.5,
        "risk_reward": 2.43,
        "rr_display": {
          "reward_risk_ratio": 2.43,
          "risk_reward_ratio": 0.41,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 2.43",
          "label_risk_reward": "Risk:Reward 1:0.41",
          "display": "Reward/Risk 2.43 · Risk:Reward 1:0.41",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 1.2295,
        "final_score": 0.16,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -1.3,
        "relative_strength": -0.5,
        "relative_strength_vs_smh": 0.01,
        "relative_weakness_score": 0.49,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -0.50%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -0.50% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 2,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.5,
          "relative_strength_vs_smh": 0.01,
          "relative_weakness_score": 0.49,
          "gap_pct": -1.3,
          "beta_proxy": 8.14,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(65%) × ER(0.2%) × rr_weight(1.22) / 100",
        "rr_weight": 1.22,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 7,
        "direction": "SHORT"
      },
      {
        "symbol": "SMH",
        "win_prob": 48.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
            },
            {
              "factor": "Macro",
              "key": "macro",
              "points": -18.0
            }
          ],
          "total": 48.0,
          "raw_total": 48.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.22,
        "expected_high": 559.95,
        "expected_low": 546.8,
        "expected_close": 555.92,
        "current_price": 557.16,
        "upside_pct": 1.86,
        "downside_risk_pct": 0.5,
        "risk_reward": 3.72,
        "rr_display": {
          "reward_risk_ratio": 3.72,
          "risk_reward_ratio": 0.27,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 3.72",
          "label_risk_reward": "Risk:Reward 1:0.27",
          "display": "Reward/Risk 3.72 · Risk:Reward 1:0.27",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 1.2656,
        "final_score": 0.16,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -1.5,
        "relative_strength": -0.51,
        "relative_strength_vs_smh": 0.0,
        "relative_weakness_score": 0.51,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -0.51%",
          "Volume 信号",
          "Geo-risk day — avoid blind SMH short vs escalation",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -0.51% · Volume 信号 · Geo-risk day — avoid blind SMH short vs escalation · 几何上行 <1.5%(软门槛)",
        "score": 2,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.51,
          "relative_strength_vs_smh": 0.0,
          "relative_weakness_score": 0.51,
          "gap_pct": -1.5,
          "beta_proxy": 8.29,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(48%) × ER(0.2%) × rr_weight(1.5) / 100",
        "rr_weight": 1.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 8,
        "direction": "SHORT"
      },
      {
        "symbol": "TQQQ",
        "win_prob": 42.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 6.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            },
            {
              "factor": "Macro",
              "key": "macro",
              "points": -18.0
            }
          ],
          "total": 42.0,
          "raw_total": 42.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.19,
        "expected_high": 71.28,
        "expected_low": 69.01,
        "expected_close": 70.8,
        "current_price": 70.93,
        "upside_pct": 2.71,
        "downside_risk_pct": 0.5,
        "risk_reward": 5.41,
        "rr_display": {
          "reward_risk_ratio": 5.41,
          "risk_reward_ratio": 0.18,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 5.41",
          "label_risk_reward": "Risk:Reward 1:0.18",
          "display": "Reward/Risk 5.41 · Risk:Reward 1:0.18",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 1.6922,
        "final_score": 0.12,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -1.67,
        "relative_strength": -0.27,
        "relative_strength_vs_smh": 0.24,
        "relative_weakness_score": 0.13,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -0.27%",
          "Volume 信号",
          "Geo-risk day — avoid blind TQQQ short vs escalation",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -0.27% · Volume 信号 · Geo-risk day — avoid blind TQQQ short vs escalation · 几何上行 <1.5%(软门槛)",
        "score": 1,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.27,
          "relative_strength_vs_smh": 0.24,
          "relative_weakness_score": 0.13,
          "gap_pct": -1.67,
          "beta_proxy": 4.86,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Index Edge",
        "score_formula_display": "final = win_prob(42%) × ER(0.2%) × rr_weight(1.5) / 100",
        "rr_weight": 1.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 9,
        "direction": "SHORT"
      },
      {
        "symbol": "QQQ",
        "win_prob": 59.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 59.0,
          "raw_total": 59.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.04,
        "expected_high": 716.51,
        "expected_low": 706.32,
        "expected_close": 712.64,
        "current_price": 712.94,
        "upside_pct": 0.93,
        "downside_risk_pct": 0.5,
        "risk_reward": 1.86,
        "rr_display": {
          "reward_risk_ratio": 1.86,
          "risk_reward_ratio": 0.54,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.86",
          "label_risk_reward": "Risk:Reward 1:0.54",
          "display": "Reward/Risk 1.86 · Risk:Reward 1:0.54",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.6874,
        "final_score": 0.02,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.53,
        "relative_strength": 0.0,
        "relative_strength_vs_smh": 0.51,
        "relative_weakness_score": -0.31,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.0,
          "relative_strength_vs_smh": 0.51,
          "relative_weakness_score": -0.31,
          "gap_pct": -0.53,
          "beta_proxy": 1.0,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Index Edge",
        "score_formula_display": "final = win_prob(59%) × ER(0.0%) × rr_weight(0.93) / 100",
        "rr_weight": 0.93,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 10,
        "direction": "SHORT"
      },
      {
        "symbol": "SPY",
        "win_prob": 53.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -6.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 53.0,
          "raw_total": 53.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.03,
        "expected_high": 770.83,
        "expected_low": 760.86,
        "expected_close": 767.26,
        "current_price": 767.0,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.5,
        "risk_reward": 1.6,
        "rr_display": {
          "reward_risk_ratio": 1.6,
          "risk_reward_ratio": 0.62,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.60",
          "label_risk_reward": "Risk:Reward 1:0.62",
          "display": "Reward/Risk 1.60 · Risk:Reward 1:0.62",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.378,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.17,
        "relative_strength": 0.24,
        "relative_strength_vs_smh": 0.75,
        "relative_weakness_score": -0.69,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.24,
          "relative_strength_vs_smh": 0.75,
          "relative_weakness_score": -0.69,
          "gap_pct": -0.17,
          "beta_proxy": -2.43,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Index Edge",
        "score_formula_display": "final = win_prob(53%) × ER(-0.0%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 11,
        "direction": "SHORT"
      },
      {
        "symbol": "AAPL",
        "win_prob": 53.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -6.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 53.0,
          "raw_total": 53.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.05,
        "expected_high": 311.69,
        "expected_low": 307.66,
        "expected_close": 310.28,
        "current_price": 310.14,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.5,
        "risk_reward": 1.6,
        "rr_display": {
          "reward_risk_ratio": 1.6,
          "risk_reward_ratio": 0.62,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.60",
          "label_risk_reward": "Risk:Reward 1:0.62",
          "display": "Reward/Risk 1.60 · Risk:Reward 1:0.62",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.378,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.25,
        "relative_strength": 0.33,
        "relative_strength_vs_smh": 0.84,
        "relative_weakness_score": -0.83,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.33,
          "relative_strength_vs_smh": 0.84,
          "relative_weakness_score": -0.83,
          "gap_pct": -0.25,
          "beta_proxy": -3.71,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Range",
        "score_formula_display": "final = win_prob(53%) × ER(-0.0%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 12,
        "direction": "SHORT"
      },
      {
        "symbol": "MSFT",
        "win_prob": 48.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -6.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": -5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 48.0,
          "raw_total": 48.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.12,
        "expected_high": 487.31,
        "expected_low": 480.96,
        "expected_close": 485.44,
        "current_price": 484.84,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.51,
        "risk_reward": 1.57,
        "rr_display": {
          "reward_risk_ratio": 1.57,
          "risk_reward_ratio": 0.64,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.57",
          "label_risk_reward": "Risk:Reward 1:0.64",
          "display": "Reward/Risk 1.57 · Risk:Reward 1:0.64",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.2336,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.55,
        "relative_strength": 0.4,
        "relative_strength_vs_smh": 0.91,
        "relative_weakness_score": -0.95,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "Gap 未过度延伸",
          "News 1 (利空做空)",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "Gap 未过度延伸 · News 1 (利空做空) · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 1,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.4,
          "relative_strength_vs_smh": 0.91,
          "relative_weakness_score": -0.95,
          "gap_pct": 0.55,
          "beta_proxy": -4.71,
          "volume_signal": true,
          "news_count": 1,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Range",
        "score_formula_display": "final = win_prob(48%) × ER(-0.1%) × rr_weight(0.79) / 100",
        "rr_weight": 0.79,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 13,
        "direction": "SHORT"
      },
      {
        "symbol": "DIA",
        "win_prob": 42.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -12.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": -5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 42.0,
          "raw_total": 42.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.21,
        "expected_high": 539.21,
        "expected_low": 532.24,
        "expected_close": 537.63,
        "current_price": 536.53,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.5,
        "risk_reward": 1.6,
        "rr_display": {
          "reward_risk_ratio": 1.6,
          "risk_reward_ratio": 0.62,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.60",
          "label_risk_reward": "Risk:Reward 1:0.62",
          "display": "Reward/Risk 1.60 · Risk:Reward 1:0.62",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.092,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.37,
        "relative_strength": 0.88,
        "relative_strength_vs_smh": 1.39,
        "relative_weakness_score": -1.71,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +0.88%",
          "Gap 未过度延伸",
          "News 2 (利空做空)",
          "Volume 信号",
          "期望R 0.09 < 0.20(EV门禁)"
        ],
        "why": "板块内相对强势 +0.88% · Gap 未过度延伸 · News 2 (利空做空) · Volume 信号",
        "score": 0,
        "news_count": 2,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.88,
          "relative_strength_vs_smh": 1.39,
          "relative_weakness_score": -1.71,
          "gap_pct": 0.37,
          "beta_proxy": -11.57,
          "volume_signal": true,
          "news_count": 2,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(42%) × ER(-0.2%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 14,
        "direction": "SHORT"
      },
      {
        "symbol": "ARM",
        "win_prob": 37.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -22.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 37.0,
          "raw_total": 37.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.28,
        "expected_high": 246.24,
        "expected_low": 238.78,
        "expected_close": 245.71,
        "current_price": 245.01,
        "upside_pct": 2.54,
        "downside_risk_pct": 0.5,
        "risk_reward": 5.09,
        "rr_display": {
          "reward_risk_ratio": 5.09,
          "risk_reward_ratio": 0.2,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 5.09",
          "label_risk_reward": "Risk:Reward 1:0.20",
          "display": "Reward/Risk 5.09 · Risk:Reward 1:0.20",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 1.2533,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.25,
        "relative_strength": 0.76,
        "relative_strength_vs_smh": 1.27,
        "relative_weakness_score": -1.52,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +0.76%",
          "半导体内领涨 +1.27%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "板块内相对强势 +0.76% · 半导体内领涨 +1.27% · Gap 未过度延伸 · Volume 信号",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.76,
          "relative_strength_vs_smh": 1.27,
          "relative_weakness_score": -1.52,
          "gap_pct": -0.25,
          "beta_proxy": -9.86,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(37%) × ER(-0.3%) × rr_weight(1.5) / 100",
        "rr_weight": 1.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 15,
        "direction": "SHORT"
      },
      {
        "symbol": "GOOGL",
        "win_prob": 47.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -12.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 47.0,
          "raw_total": 47.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.37,
        "expected_high": 351.45,
        "expected_low": 346.9,
        "expected_close": 350.99,
        "current_price": 349.7,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.5,
        "risk_reward": 1.6,
        "rr_display": {
          "reward_risk_ratio": 1.6,
          "risk_reward_ratio": 0.62,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.60",
          "label_risk_reward": "Risk:Reward 1:0.62",
          "display": "Reward/Risk 1.60 · Risk:Reward 1:0.62",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.222,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.89,
        "relative_strength": 1.49,
        "relative_strength_vs_smh": 2.0,
        "relative_weakness_score": -2.69,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +1.49%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "板块内相对强势 +1.49% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 1.49,
          "relative_strength_vs_smh": 2.0,
          "relative_weakness_score": -2.69,
          "gap_pct": 0.89,
          "beta_proxy": -20.29,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(47%) × ER(-0.4%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 16,
        "direction": "SHORT"
      },
      {
        "symbol": "XLF",
        "win_prob": 47.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -12.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 47.0,
          "raw_total": 47.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.43,
        "expected_high": 58.67,
        "expected_low": 57.91,
        "expected_close": 58.63,
        "current_price": 58.38,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.5,
        "risk_reward": 1.6,
        "rr_display": {
          "reward_risk_ratio": 1.6,
          "risk_reward_ratio": 0.62,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.60",
          "label_risk_reward": "Risk:Reward 1:0.62",
          "display": "Reward/Risk 1.60 · Risk:Reward 1:0.62",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.222,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 1.3,
        "relative_strength": 1.63,
        "relative_strength_vs_smh": 2.14,
        "relative_weakness_score": -2.91,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +1.63%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "板块内相对强势 +1.63% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 1.63,
          "relative_strength_vs_smh": 2.14,
          "relative_weakness_score": -2.91,
          "gap_pct": 1.3,
          "beta_proxy": -22.29,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(47%) × ER(-0.4%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 17,
        "direction": "SHORT"
      },
      {
        "symbol": "AMZN",
        "win_prob": 42.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": 42.0,
          "raw_total": 42.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.52,
        "expected_high": 264.84,
        "expected_low": 261.36,
        "expected_close": 264.84,
        "current_price": 263.47,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.52,
        "risk_reward": 1.53,
        "rr_display": {
          "reward_risk_ratio": 1.53,
          "risk_reward_ratio": 0.65,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.53",
          "label_risk_reward": "Risk:Reward 1:0.65",
          "display": "Reward/Risk 1.53 · Risk:Reward 1:0.65",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.0626,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 1.67,
        "relative_strength": 1.94,
        "relative_strength_vs_smh": 2.45,
        "relative_weakness_score": -3.41,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +1.94%",
          "Volume 信号",
          "期望R 0.06 < 0.20(EV门禁)"
        ],
        "why": "板块内相对强势 +1.94% · Volume 信号 · 期望R 0.06 < 0.20(EV门禁)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 1.94,
          "relative_strength_vs_smh": 2.45,
          "relative_weakness_score": -3.41,
          "gap_pct": 1.67,
          "beta_proxy": -26.71,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(42%) × ER(-0.5%) × rr_weight(0.77) / 100",
        "rr_weight": 0.77,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 18,
        "direction": "SHORT"
      },
      {
        "symbol": "META",
        "win_prob": 42.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": 42.0,
          "raw_total": 42.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.69,
        "expected_high": 568.14,
        "expected_low": 559.02,
        "expected_close": 568.14,
        "current_price": 564.25,
        "upside_pct": 0.93,
        "downside_risk_pct": 0.69,
        "risk_reward": 1.35,
        "rr_display": {
          "reward_risk_ratio": 1.35,
          "risk_reward_ratio": 0.74,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.35",
          "label_risk_reward": "Risk:Reward 1:0.74",
          "display": "Reward/Risk 1.35 · Risk:Reward 1:0.74",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": -0.013,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 1.91,
        "relative_strength": 2.68,
        "relative_strength_vs_smh": 3.19,
        "relative_weakness_score": -4.59,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +2.68%",
          "Volume 信号",
          "期望R -0.01 < 0.20(EV门禁)"
        ],
        "why": "板块内相对强势 +2.68% · Volume 信号 · 期望R -0.01 < 0.20(EV门禁)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.68,
          "relative_strength_vs_smh": 3.19,
          "relative_weakness_score": -4.59,
          "gap_pct": 1.91,
          "beta_proxy": -37.29,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": -0.38,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(42%) × ER(-0.7%) × rr_weight(0.68) / 100",
        "rr_weight": 0.68,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 19,
        "direction": "SHORT"
      }
    ]
  },
  "intraday": {
    "s5": {
      "driver_still_valid": true,
      "action": "Hold"
    },
    "s6": {
      "trade_valid": false,
      "action": "N/A"
    },
    "s7": {
      "actual_driver": "AI/Semiconductor",
      "attribution": {
        "ai": 0.546,
        "bond": 0.378,
        "oil": 0.0,
        "macro": 0.026,
        "other": 0.05,
        "splits": {}
      }
    }
  },
  "trade_plan": {},
  "actual": {},
  "attribution": {
    "ai": 0.546,
    "bond": 0.378,
    "oil": 0.0,
    "macro": 0.026,
    "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": "B",
    "scenario_correct": false,
    "trade_recommendation": "—",
    "trade_direction": "NO TRADE",
    "primary_symbol": "—",
    "predicted_return_pct": null,
    "prediction_error_pct": null
  },
  "surprise": "No major surprises vs typical driver mix",
  "lesson": "AI Expansion Regime 下,单日 SMH/NVDA 抛售可压过 Macro 利好,指数分化(Dow+ / QQQ-)比「大盘涨跌」更有信息量;Morning Hypothesis 被 Chip/Macro 冲突推翻——复盘 P10/P15 权重",
  "playbook_refs": [
    "Case-36"
  ],
  "bayesian_drivers": {
    "AI": 1.0,
    "Bond": 0.0,
    "Macro": 0.0,
    "Oil": 0.0,
    "Risk": 0.0
  },
  "data_gaps": []
}