← 全部 Cases · 今日流程

Market Case · 2026-08-20

Day 35

今日 Day 35
2/9 Steps

Regime · Hypothesis

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

Labels · Attribution

真正 Driver
None
Hypothesis 结果
None
Scenario 预测
None
Scenario 实际
None
Scenario 命中
AI 贡献
0%
Bond
0%

Surprise · Lesson

Surprise:

Lesson:

Evidence / Counter

Evidence

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

Counter

  • NVDA -1.0%
  • SMH -2.1%
  • 10Y=4.71% (elevated rates)

Step 快捷入口

原始 JSON
{
  "date": "2026-08-20",
  "features": {
    "dgs10": 4.71,
    "dgs2": null,
    "vix": 15.3,
    "vix_chg": 2.75,
    "qqq_chg": -0.74,
    "smh_chg": -2.12,
    "nvda_chg": -1.03,
    "spy_chg": 0.0,
    "oil_chg": 0.0,
    "dxy_chg": -0.12,
    "breadth_proxy": 0.7142857142857143,
    "qqq_gap": 0.07,
    "news_headline_count": 25,
    "news_bearish_ratio": 0.333,
    "news_ai_mentions": 52,
    "news_macro_mentions": 8,
    "news_oil_mentions": 1,
    "news_risk_mentions": 1
  },
  "regime": {
    "label": "AI Expansion",
    "confidence": 0.82
  },
  "hypothesis": {
    "id": "H-2026-08-20-001",
    "statement": "AI/Semiconductor leads index today; macro is secondary variable",
    "evidence": [
      "VIX=15.3 (low fear)",
      "Breadth 71% (broad participation)"
    ],
    "counter_evidence": [
      "NVDA -1.0%",
      "SMH -2.1%",
      "10Y=4.71% (elevated rates)"
    ],
    "confidence": 0.6,
    "status": "待验证"
  },
  "morning": {
    "bias": "Neutral",
    "total": -1,
    "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": "AVGO",
          "direction": "SHORT",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 74,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+2.04%",
          "expected_return_pct": 2.04,
          "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": 2.02,
          "final_score": 0.47,
          "trade_action": "Pass",
          "relative_strength": -3.8,
          "entry": "Below 365.6 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 365.58,
          "entry_zone": {
            "low": 364.48,
            "high": 366.68,
            "mid": 365.58,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 365.58
              }
            ],
            "display": "Entry Zone 364–367",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "369.3 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 369.28,
          "target": "358.1 (预期收盘)",
          "target_source": "expected_close",
          "target_price": 358.12,
          "targets": [
            "358.1 (预期收盘)"
          ],
          "level_anchors": {
            "vwap": 365.58,
            "orb_high": 369.28,
            "orb_low": 362.48,
            "prev_high": 380.0,
            "prev_low": 380.0,
            "prior_close": 380.0,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -3.80%",
            "RS弱于SMH -2.34%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -3.80% · RS弱于SMH -2.34% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "why_vs_runner_up": "AVGO RS -3.8% vs AMD -3.7%;ER 1.3% vs 1.2%;higher beta (6.1 vs 6.0);relative weakness play",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -3.8,
            "relative_strength_vs_smh": -2.34,
            "relative_weakness_score": 5.2,
            "gap_pct": -2.9,
            "beta_proxy": 6.14,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 2.75,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(74%) × ER(1.3%) × rr_weight(0.5) / 100",
          "expected_high": 367.36,
          "expected_low": 358.12,
          "expected_close": 358.12,
          "current_price": 362.74,
          "upside_pct": 1.27,
          "downside_risk_pct": 1.27,
          "why_factors": [
            "RS弱于QQQ -3.80%",
            "RS弱于SMH -2.34%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -3.80% · RS弱于SMH -2.34% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "gap_pct": -2.9,
          "rr_display": {
            "reward_risk_ratio": 2.02,
            "risk_reward_ratio": 0.5,
            "reward_per_share": 7.46,
            "risk_per_share": 3.7,
            "label_reward_risk": "Reward/Risk 2.02",
            "label_risk_reward": "Risk:Reward 1:0.50",
            "display": "Reward/Risk 2.02 · Risk:Reward 1:0.50",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $369.28 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 365.58,
              "source": "vwap",
              "confidence": 77,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 365.58,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 369.28,
              "source": "orb_high",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 369.28,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "target": {
              "price": 358.12,
              "source": "expected_close",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_close",
                  "label": "Expected Close",
                  "price": 358.12,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(365.58-358.12)/365.58=2.04%",
          "heuristic_expected_return_pct": 1.27,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 AVGO:在 365.58 附近入场,目标 358.12,预期 +2.04%",
          "expected_r": 1.2348,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 98.7,
            "shares": 27,
            "contracts": 0,
            "max_loss_usd": 99.9,
            "win_usd": 201.42,
            "loss_usd": 99.9,
            "expected_value_usd": 123.08,
            "risk_per_share": 3.7,
            "reward_per_share": 7.46,
            "rr_display": {
              "reward_risk_ratio": 2.02,
              "risk_reward_ratio": 0.5,
              "reward_per_share": 7.46,
              "risk_per_share": 3.7,
              "label_reward_risk": "Reward/Risk 2.02",
              "label_risk_reward": "Risk:Reward 1:0.50",
              "display": "Reward/Risk 2.02 · Risk:Reward 1:0.50",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$201 / Loss -$100"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 98.7,
            "contracts": 0,
            "shares": 27,
            "max_loss_usd": 99.9,
            "size_label": "None",
            "display": "Risk 1.0% → Position 98.7% → 27 unit(s) → Max Loss $99.9"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "expected_range",
              "label": "Largest Expected Range",
              "primary_value": 2.54,
              "runner_up_value": 2.48,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "AMD",
              "rank": 2,
              "reasons": [
                "ER 2.0% vs 1.2%",
                "Score 0.47 vs 0.45",
                "R:R 2.02 vs 1.0"
              ],
              "summary": "Why AVGO over AMD: ER 2.0% vs 1.2% · Score 0.47 vs 0.45 · R:R 2.02 vs 1.0"
            },
            {
              "symbol": "ARM",
              "rank": 3,
              "reasons": [
                "Win% 74 vs 75",
                "ER 2.0% vs 0.4%",
                "Score 0.47 vs 0.15",
                "RS -3.8% vs -1.8%",
                "R:R 2.02 vs 0.84"
              ],
              "summary": "Why AVGO over ARM: Win% 74 vs 75 · ER 2.0% vs 0.4% · Score 0.47 vs 0.15 · RS -3.8% vs -1.8% · R:R 2.02 vs 0.84"
            },
            {
              "symbol": "SMH",
              "rank": 4,
              "reasons": [
                "Win% 74 vs 53",
                "ER 2.0% vs 0.3%",
                "Score 0.47 vs 0.11",
                "RS -3.8% vs -1.5%",
                "R:R 2.02 vs 1.21"
              ],
              "summary": "Why AVGO over SMH: Win% 74 vs 53 · ER 2.0% vs 0.3% · Score 0.47 vs 0.11 · RS -3.8% vs -1.5% · R:R 2.02 vs 1.21"
            },
            {
              "symbol": "XLK",
              "rank": 5,
              "reasons": [
                "Win% 74 vs 71",
                "ER 2.0% vs 0.2%",
                "Score 0.47 vs 0.1",
                "RS -3.8% vs -0.8%",
                "R:R 2.02 vs 1.6"
              ],
              "summary": "Why AVGO over XLK: Win% 74 vs 71 · ER 2.0% vs 0.2% · Score 0.47 vs 0.1 · RS -3.8% vs -0.8% · R:R 2.02 vs 1.6"
            },
            {
              "symbol": "TQQQ",
              "rank": 6,
              "reasons": [
                "Win% 74 vs 53",
                "ER 2.0% vs 0.3%",
                "Score 0.47 vs 0.07",
                "RS -3.8% vs -1.6%",
                "R:R 2.02 vs 0.48"
              ],
              "summary": "Why AVGO over TQQQ: Win% 74 vs 53 · ER 2.0% vs 0.3% · Score 0.47 vs 0.07 · RS -3.8% vs -1.6% · R:R 2.02 vs 0.48"
            }
          ],
          "rank_summary": "AVGO ranked #1 because largest expected range",
          "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": 123.08,
            "win_scenario_usd": 201.42,
            "loss_scenario_usd": 99.9,
            "win_prob_pct": 74.0,
            "display": "EV $+123 (win +$201 @ 74.0% · loss -$100)"
          },
          "entry_status": {
            "current_price": 362.74,
            "ideal_entry": 365.58,
            "distance_pct": 0.78,
            "remaining_er_pct": 1.27,
            "live_expected_return_pct": 1.27,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 364.48,
            "zone_high": 366.68,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 2,
          "symbol": "AMD",
          "direction": "SHORT",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 74,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+2.16%",
          "expected_return_pct": 2.16,
          "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": 1.38,
          "final_score": 0.45,
          "trade_action": "Pass",
          "relative_strength": -3.7,
          "entry": "Below 467.7 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 467.38,
          "entry_zone": {
            "low": 467.03,
            "high": 467.73,
            "mid": 467.38,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 467.73
              },
              {
                "source": "orb_low",
                "label": "ORB低点",
                "price": 467.03
              }
            ],
            "display": "Entry Zone 467.03–467.73",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "474.7 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 474.68,
          "target": "457.3 (预期收盘)",
          "target_source": "expected_close",
          "target_price": 457.29,
          "targets": [
            "457.3 (预期收盘)"
          ],
          "level_anchors": {
            "vwap": 467.73,
            "orb_high": 474.68,
            "orb_low": 467.03,
            "prev_high": 484.39,
            "prev_low": 484.39,
            "prior_close": 484.39,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -3.70%",
            "RS弱于SMH -2.24%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -3.70% · RS弱于SMH -2.24% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -3.7,
            "relative_strength_vs_smh": -2.24,
            "relative_weakness_score": 5.04,
            "gap_pct": -2.46,
            "beta_proxy": 6.0,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 2.75,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(74%) × ER(1.2%) × rr_weight(0.5) / 100",
          "expected_high": 468.45,
          "expected_low": 457.29,
          "expected_close": 457.29,
          "current_price": 462.87,
          "upside_pct": 1.21,
          "downside_risk_pct": 1.21,
          "why_factors": [
            "RS弱于QQQ -3.70%",
            "RS弱于SMH -2.24%",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -3.70% · RS弱于SMH -2.24% · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "gap_pct": -2.46,
          "rr_display": {
            "reward_risk_ratio": 1.38,
            "risk_reward_ratio": 0.72,
            "reward_per_share": 10.09,
            "risk_per_share": 7.3,
            "label_reward_risk": "Reward/Risk 1.38",
            "label_risk_reward": "Risk:Reward 1:0.72",
            "display": "Reward/Risk 1.38 · Risk:Reward 1:0.72",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $474.68 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 467.38,
              "source": "vwap",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 467.03,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 467.73,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 474.68,
              "source": "orb_high",
              "confidence": 77,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 474.68,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "target": {
              "price": 457.29,
              "source": "expected_close",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_close",
                  "label": "Expected Close",
                  "price": 457.29,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(467.38-457.29)/467.38=2.16%",
          "heuristic_expected_return_pct": 1.21,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 AMD:在 467.38 附近入场,目标 457.29,预期 +2.16%",
          "expected_r": 0.7612,
          "rr_below_hard_min": true,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 60.8,
            "shares": 13,
            "contracts": 0,
            "max_loss_usd": 94.9,
            "win_usd": 131.17,
            "loss_usd": 94.9,
            "expected_value_usd": 72.39,
            "risk_per_share": 7.3,
            "reward_per_share": 10.09,
            "rr_display": {
              "reward_risk_ratio": 1.38,
              "risk_reward_ratio": 0.72,
              "reward_per_share": 10.09,
              "risk_per_share": 7.3,
              "label_reward_risk": "Reward/Risk 1.38",
              "label_risk_reward": "Risk:Reward 1:0.72",
              "display": "Reward/Risk 1.38 · Risk:Reward 1:0.72",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$131 / Loss -$95"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 60.8,
            "contracts": 0,
            "shares": 13,
            "max_loss_usd": 94.9,
            "size_label": "None",
            "display": "Risk 1.0% → Position 60.8% → 13 unit(s) → Max Loss $94.9"
          },
          "why_wins_today": [],
          "why_not_alternatives": [
            {
              "symbol": "AVGO",
              "rank": 1,
              "reasons": [
                "ER 2.2% vs 1.3%",
                "Score 0.45 vs 0.47",
                "R:R 1.38 vs 1.0"
              ],
              "summary": "Why AMD over AVGO: ER 2.2% vs 1.3% · Score 0.45 vs 0.47 · R:R 1.38 vs 1.0"
            },
            {
              "symbol": "ARM",
              "rank": 3,
              "reasons": [
                "Win% 74 vs 75",
                "ER 2.2% vs 0.4%",
                "Score 0.45 vs 0.15",
                "RS -3.7% vs -1.8%",
                "R:R 1.38 vs 0.84"
              ],
              "summary": "Why AMD over ARM: Win% 74 vs 75 · ER 2.2% vs 0.4% · Score 0.45 vs 0.15 · RS -3.7% vs -1.8% · R:R 1.38 vs 0.84"
            },
            {
              "symbol": "SMH",
              "rank": 4,
              "reasons": [
                "Win% 74 vs 53",
                "ER 2.2% vs 0.3%",
                "Score 0.45 vs 0.11",
                "RS -3.7% vs -1.5%",
                "R:R 1.38 vs 1.21"
              ],
              "summary": "Why AMD over SMH: Win% 74 vs 53 · ER 2.2% vs 0.3% · Score 0.45 vs 0.11 · RS -3.7% vs -1.5% · R:R 1.38 vs 1.21"
            },
            {
              "symbol": "XLK",
              "rank": 5,
              "reasons": [
                "Win% 74 vs 71",
                "ER 2.2% vs 0.2%",
                "Score 0.45 vs 0.1",
                "RS -3.7% vs -0.8%"
              ],
              "summary": "Why AMD over XLK: Win% 74 vs 71 · ER 2.2% vs 0.2% · Score 0.45 vs 0.1 · RS -3.7% vs -0.8%"
            },
            {
              "symbol": "TQQQ",
              "rank": 6,
              "reasons": [
                "Win% 74 vs 53",
                "ER 2.2% vs 0.3%",
                "Score 0.45 vs 0.07",
                "RS -3.7% vs -1.6%",
                "R:R 1.38 vs 0.48"
              ],
              "summary": "Why AMD over TQQQ: Win% 74 vs 53 · ER 2.2% vs 0.3% · Score 0.45 vs 0.07 · RS -3.7% vs -1.6% · R:R 1.38 vs 0.48"
            }
          ],
          "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": 72.39,
            "win_scenario_usd": 131.17,
            "loss_scenario_usd": 94.9,
            "win_prob_pct": 74.0,
            "display": "EV $+72 (win +$131 @ 74.0% · loss -$95)"
          },
          "entry_status": {
            "current_price": 462.87,
            "ideal_entry": 467.38,
            "distance_pct": 0.96,
            "remaining_er_pct": 1.21,
            "live_expected_return_pct": 1.21,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 467.03,
            "zone_high": 467.73,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 3,
          "symbol": "ARM",
          "direction": "SHORT",
          "instrument": "Stock",
          "horizon": "Intraday",
          "confidence": 75,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+1.67%",
          "expected_return_pct": 1.67,
          "win_prob": 75.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 16.0
              },
              {
                "factor": "Gap",
                "key": "gap",
                "points": 5.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              }
            ],
            "total": 75.0,
            "raw_total": 75.0,
            "was_clamped": false
          },
          "risk_reward": 0.82,
          "final_score": 0.15,
          "trade_action": "Pass",
          "relative_strength": -1.75,
          "entry": "Below 249.2 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 249.17,
          "entry_zone": {
            "low": 248.42,
            "high": 249.92,
            "mid": 249.17,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 249.17
              }
            ],
            "display": "Entry Zone 248–250",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "254.2 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 254.23,
          "target": "245.0 (预期低点)",
          "target_source": "expected_low",
          "target_price": 245.02,
          "targets": [
            "245.0 (预期低点)"
          ],
          "level_anchors": {
            "vwap": 249.17,
            "orb_high": 254.23,
            "orb_low": 247.0,
            "prev_high": 253.32,
            "prev_low": 253.32,
            "prior_close": 253.32,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -1.75%",
            "Gap 未过度延伸",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -1.75% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -1.75,
            "relative_strength_vs_smh": -0.29,
            "relative_weakness_score": 1.92,
            "gap_pct": -0.18,
            "beta_proxy": 3.36,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 2.75,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(75%) × ER(0.4%) × rr_weight(0.5) / 100",
          "expected_high": 249.34,
          "expected_low": 245.02,
          "expected_close": 246.01,
          "current_price": 247.0,
          "upside_pct": 0.8,
          "downside_risk_pct": 0.95,
          "why_factors": [
            "RS弱于QQQ -1.75%",
            "Gap 未过度延伸",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -1.75% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "gap_pct": -0.18,
          "rr_display": {
            "reward_risk_ratio": 0.82,
            "risk_reward_ratio": 1.22,
            "reward_per_share": 4.15,
            "risk_per_share": 5.06,
            "label_reward_risk": "Reward/Risk 0.82",
            "label_risk_reward": "Risk:Reward 1:1.22",
            "display": "Reward/Risk 0.82 · Risk:Reward 1:1.22",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $254.23 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 249.17,
              "source": "vwap",
              "confidence": 77,
              "reasons": [
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 249.17,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 254.23,
              "source": "orb_high",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 254.23,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "prev_high",
                  "label": "Yesterday High",
                  "price": 253.32,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 245.02,
              "source": "expected_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_low",
                  "label": "Expected Low",
                  "price": 245.02,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(249.17-245.02)/249.17=1.67%",
          "heuristic_expected_return_pct": 0.4,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 ARM:在 249.17 附近入场,目标 245.02,预期 +1.67%",
          "expected_r": 0.365,
          "rr_below_hard_min": true,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 47.3,
            "shares": 19,
            "contracts": 0,
            "max_loss_usd": 96.14,
            "win_usd": 78.85,
            "loss_usd": 96.14,
            "expected_value_usd": 35.1,
            "risk_per_share": 5.06,
            "reward_per_share": 4.15,
            "rr_display": {
              "reward_risk_ratio": 0.82,
              "risk_reward_ratio": 1.22,
              "reward_per_share": 4.15,
              "risk_per_share": 5.06,
              "label_reward_risk": "Reward/Risk 0.82",
              "label_risk_reward": "Risk:Reward 1:1.22",
              "display": "Reward/Risk 0.82 · Risk:Reward 1:1.22",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$79 / Loss -$96"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 47.3,
            "contracts": 0,
            "shares": 19,
            "max_loss_usd": 96.14,
            "size_label": "None",
            "display": "Risk 1.0% → Position 47.3% → 19 unit(s) → Max Loss $96.14"
          },
          "why_wins_today": [
            {
              "rank": 1,
              "dimension": "win_prob",
              "label": "Highest Probability",
              "primary_value": 75.0,
              "runner_up_value": 74.0,
              "wins": true
            }
          ],
          "why_not_alternatives": [
            {
              "symbol": "AVGO",
              "rank": 1,
              "reasons": [
                "Win% 75 vs 74",
                "ER 1.7% vs 1.3%",
                "Score 0.15 vs 0.47",
                "RS -1.8% vs -3.8%"
              ],
              "summary": "Why ARM over AVGO: Win% 75 vs 74 · ER 1.7% vs 1.3% · Score 0.15 vs 0.47 · RS -1.8% vs -3.8%"
            },
            {
              "symbol": "AMD",
              "rank": 2,
              "reasons": [
                "Win% 75 vs 74",
                "ER 1.7% vs 1.2%",
                "Score 0.15 vs 0.45",
                "RS -1.8% vs -3.7%"
              ],
              "summary": "Why ARM over AMD: Win% 75 vs 74 · ER 1.7% vs 1.2% · Score 0.15 vs 0.45 · RS -1.8% vs -3.7%"
            },
            {
              "symbol": "SMH",
              "rank": 4,
              "reasons": [
                "Win% 75 vs 53",
                "ER 1.7% vs 0.3%",
                "Score 0.15 vs 0.11",
                "RS -1.8% vs -1.5%"
              ],
              "summary": "Why ARM over SMH: Win% 75 vs 53 · ER 1.7% vs 0.3% · Score 0.15 vs 0.11 · RS -1.8% vs -1.5%"
            },
            {
              "symbol": "XLK",
              "rank": 5,
              "reasons": [
                "Win% 75 vs 71",
                "ER 1.7% vs 0.2%",
                "Score 0.15 vs 0.1",
                "RS -1.8% vs -0.8%"
              ],
              "summary": "Why ARM over XLK: Win% 75 vs 71 · ER 1.7% vs 0.2% · Score 0.15 vs 0.1 · RS -1.8% vs -0.8%"
            },
            {
              "symbol": "TQQQ",
              "rank": 6,
              "reasons": [
                "Win% 75 vs 53",
                "ER 1.7% vs 0.3%",
                "Score 0.15 vs 0.07",
                "RS -1.8% vs -1.6%",
                "R:R 0.82 vs 0.48"
              ],
              "summary": "Why ARM over TQQQ: Win% 75 vs 53 · ER 1.7% vs 0.3% · Score 0.15 vs 0.07 · RS -1.8% vs -1.6% · R:R 0.82 vs 0.48"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 75.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": 35.1,
            "win_scenario_usd": 78.85,
            "loss_scenario_usd": 96.14,
            "win_prob_pct": 75.0,
            "display": "EV $+35 (win +$79 @ 75.0% · loss -$96)"
          },
          "entry_status": {
            "current_price": 247.0,
            "ideal_entry": 249.17,
            "distance_pct": 0.87,
            "remaining_er_pct": 0.8,
            "live_expected_return_pct": 0.8,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 248.42,
            "zone_high": 249.92,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 4,
          "symbol": "SMH",
          "direction": "SHORT",
          "instrument": "ETF",
          "horizon": "Intraday",
          "confidence": 53,
          "confidence_stars": "★★☆☆☆",
          "expected_move": "+1.56%",
          "expected_return_pct": 1.56,
          "win_prob": 53.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
              },
              {
                "factor": "Macro",
                "key": "macro",
                "points": -18.0
              }
            ],
            "total": 53.0,
            "raw_total": 53.0,
            "was_clamped": false
          },
          "risk_reward": 1.18,
          "final_score": 0.11,
          "trade_action": "Pass",
          "relative_strength": -1.46,
          "entry": "Below 562.2 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 561.57,
          "entry_zone": {
            "low": 560.92,
            "high": 562.22,
            "mid": 561.57,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 562.22
              },
              {
                "source": "orb_low",
                "label": "ORB低点",
                "price": 560.92
              }
            ],
            "display": "Entry Zone 561–562",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "569.0 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 569.0,
          "target": "552.8 (预期低点)",
          "target_source": "expected_low",
          "target_price": 552.79,
          "targets": [
            "552.8 (预期低点)"
          ],
          "level_anchors": {
            "vwap": 562.22,
            "orb_high": 569.0,
            "orb_low": 560.92,
            "prev_high": 569.77,
            "prev_low": 569.77,
            "prior_close": 569.77,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -1.46%",
            "Gap 未过度延伸",
            "Volume 信号",
            "Geo-risk day — avoid blind SMH short vs escalation",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -1.46% · Gap 未过度延伸 · Volume 信号 · Geo-risk day — avoid blind SMH short vs escalation",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -1.46,
            "relative_strength_vs_smh": 0.0,
            "relative_weakness_score": 1.46,
            "gap_pct": -0.67,
            "beta_proxy": 2.97,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 2.75,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(53%) × ER(0.3%) × rr_weight(0.6) / 100",
          "expected_high": 560.92,
          "expected_low": 552.79,
          "expected_close": 555.32,
          "current_price": 557.25,
          "upside_pct": 0.8,
          "downside_risk_pct": 0.66,
          "why_factors": [
            "RS弱于QQQ -1.46%",
            "Gap 未过度延伸",
            "Volume 信号",
            "Geo-risk day — avoid blind SMH short vs escalation",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -1.46% · Gap 未过度延伸 · Volume 信号 · Geo-risk day — avoid blind SMH short vs escalation",
          "gap_pct": -0.67,
          "rr_display": {
            "reward_risk_ratio": 1.18,
            "risk_reward_ratio": 0.85,
            "reward_per_share": 8.78,
            "risk_per_share": 7.43,
            "label_reward_risk": "Reward/Risk 1.18",
            "label_risk_reward": "Risk:Reward 1:0.85",
            "display": "Reward/Risk 1.18 · Risk:Reward 1:0.85",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $569.0 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 561.57,
              "source": "vwap",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 560.92,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 562.22,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                }
              ]
            },
            "stop": {
              "price": 569.0,
              "source": "orb_high",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 569.0,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "prev_high",
                  "label": "Yesterday High",
                  "price": 569.77,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 552.79,
              "source": "expected_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_low",
                  "label": "Expected Low",
                  "price": 552.79,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(561.57-552.79)/561.57=1.56%",
          "heuristic_expected_return_pct": 0.35,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 SMH:在 561.57 附近入场,目标 552.79,预期 +1.56%",
          "expected_r": 0.1554,
          "rr_below_hard_min": true,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 73.0,
            "shares": 13,
            "contracts": 0,
            "max_loss_usd": 96.59,
            "win_usd": 114.14,
            "loss_usd": 96.59,
            "expected_value_usd": 15.1,
            "risk_per_share": 7.43,
            "reward_per_share": 8.78,
            "rr_display": {
              "reward_risk_ratio": 1.18,
              "risk_reward_ratio": 0.85,
              "reward_per_share": 8.78,
              "risk_per_share": 7.43,
              "label_reward_risk": "Reward/Risk 1.18",
              "label_risk_reward": "Risk:Reward 1:0.85",
              "display": "Reward/Risk 1.18 · Risk:Reward 1:0.85",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$114 / Loss -$97"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 73.0,
            "contracts": 0,
            "shares": 13,
            "max_loss_usd": 96.59,
            "size_label": "None",
            "display": "Risk 1.0% → Position 73.0% → 13 unit(s) → Max Loss $96.59"
          },
          "why_wins_today": [],
          "why_not_alternatives": [
            {
              "symbol": "AVGO",
              "rank": 1,
              "reasons": [
                "Win% 53 vs 74",
                "ER 1.6% vs 1.3%",
                "Score 0.11 vs 0.47",
                "RS -1.5% vs -3.8%",
                "R:R 1.18 vs 1.0"
              ],
              "summary": "Why SMH over AVGO: Win% 53 vs 74 · ER 1.6% vs 1.3% · Score 0.11 vs 0.47 · RS -1.5% vs -3.8% · R:R 1.18 vs 1.0"
            },
            {
              "symbol": "AMD",
              "rank": 2,
              "reasons": [
                "Win% 53 vs 74",
                "ER 1.6% vs 1.2%",
                "Score 0.11 vs 0.45",
                "RS -1.5% vs -3.7%",
                "R:R 1.18 vs 1.0"
              ],
              "summary": "Why SMH over AMD: Win% 53 vs 74 · ER 1.6% vs 1.2% · Score 0.11 vs 0.45 · RS -1.5% vs -3.7% · R:R 1.18 vs 1.0"
            },
            {
              "symbol": "ARM",
              "rank": 3,
              "reasons": [
                "Win% 53 vs 75",
                "ER 1.6% vs 0.4%",
                "Score 0.11 vs 0.15",
                "RS -1.5% vs -1.8%",
                "R:R 1.18 vs 0.84"
              ],
              "summary": "Why SMH over ARM: Win% 53 vs 75 · ER 1.6% vs 0.4% · Score 0.11 vs 0.15 · RS -1.5% vs -1.8% · R:R 1.18 vs 0.84"
            },
            {
              "symbol": "XLK",
              "rank": 5,
              "reasons": [
                "Win% 53 vs 71",
                "ER 1.6% vs 0.2%",
                "Score 0.11 vs 0.1",
                "RS -1.5% vs -0.8%"
              ],
              "summary": "Why SMH over XLK: Win% 53 vs 71 · ER 1.6% vs 0.2% · Score 0.11 vs 0.1 · RS -1.5% vs -0.8%"
            },
            {
              "symbol": "TQQQ",
              "rank": 6,
              "reasons": [
                "ER 1.6% vs 0.3%",
                "Score 0.11 vs 0.07",
                "R:R 1.18 vs 0.48"
              ],
              "summary": "Why SMH over TQQQ: ER 1.6% vs 0.3% · Score 0.11 vs 0.07 · R:R 1.18 vs 0.48"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 53.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": 15.1,
            "win_scenario_usd": 114.14,
            "loss_scenario_usd": 96.59,
            "win_prob_pct": 53.0,
            "display": "EV $+15 (win +$114 @ 53.0% · loss -$97)"
          },
          "entry_status": {
            "current_price": 557.25,
            "ideal_entry": 561.57,
            "distance_pct": 0.77,
            "remaining_er_pct": 0.8,
            "live_expected_return_pct": 0.8,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 560.92,
            "zone_high": 562.22,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        },
        {
          "rank": 5,
          "symbol": "XLK",
          "direction": "SHORT",
          "instrument": "ETF",
          "horizon": "Intraday",
          "confidence": 71,
          "confidence_stars": "★★★☆☆",
          "expected_move": "+1.25%",
          "expected_return_pct": 1.25,
          "win_prob": 71.0,
          "win_prob_breakdown": {
            "components": [
              {
                "factor": "Base",
                "key": "base",
                "points": 50.0
              },
              {
                "factor": "RS",
                "key": "rs",
                "points": 12.0
              },
              {
                "factor": "Gap",
                "key": "gap",
                "points": 5.0
              },
              {
                "factor": "Volume",
                "key": "volume",
                "points": 4.0
              }
            ],
            "total": 71.0,
            "raw_total": 71.0,
            "was_clamped": false
          },
          "risk_reward": 1.64,
          "final_score": 0.1,
          "trade_action": "Pass",
          "relative_strength": -0.77,
          "entry": "Below 183.8 (VWAP)",
          "entry_source": "vwap",
          "entry_price": 183.66,
          "entry_zone": {
            "low": 183.5,
            "high": 183.82,
            "mid": 183.66,
            "anchors": [
              {
                "source": "vwap",
                "label": "VWAP",
                "price": 183.82
              },
              {
                "source": "orb_low",
                "label": "ORB低点",
                "price": 183.5
              }
            ],
            "display": "Entry Zone 183.50–183.82",
            "entry_source": "vwap",
            "tolerance_pct": 0.3
          },
          "stop": "185.1 (ORB高点)",
          "stop_source": "orb_high",
          "stop_price": 185.06,
          "target": "181.4 (预期低点)",
          "target_source": "expected_low",
          "target_price": 181.36,
          "targets": [
            "181.4 (预期低点)"
          ],
          "level_anchors": {
            "vwap": 183.82,
            "orb_high": 185.06,
            "orb_low": 183.5,
            "prev_high": 185.62,
            "prev_low": 185.62,
            "prior_close": 185.62,
            "orb_from_minute": true
          },
          "levels_valid": true,
          "why": [
            "RS弱于QQQ -0.77%",
            "Gap 未过度延伸",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_chain": "RS弱于QQQ -0.77% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "why_vs_runner_up": "—",
          "factor_breakdown": {
            "relative_strength_vs_qqq": -0.77,
            "relative_strength_vs_smh": 0.69,
            "relative_weakness_score": 0.36,
            "gap_pct": -0.35,
            "beta_proxy": 2.04,
            "volume_signal": true,
            "news_count": 0,
            "extended_gap_penalty": 0.0,
            "vix_change_pct": 2.75,
            "prior_day_change_pct": 0.0
          },
          "edge_type": "Relative Weakness",
          "score_formula_display": "final = win_prob(71%) × ER(0.2%) × rr_weight(0.8) / 100",
          "expected_high": 183.73,
          "expected_low": 181.36,
          "expected_close": 182.49,
          "current_price": 182.82,
          "upside_pct": 0.8,
          "downside_risk_pct": 0.5,
          "why_factors": [
            "RS弱于QQQ -0.77%",
            "Gap 未过度延伸",
            "Volume 信号",
            "几何上行 <1.5%(软门槛)"
          ],
          "why_today": "RS弱于QQQ -0.77% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "gap_pct": -0.35,
          "rr_display": {
            "reward_risk_ratio": 1.64,
            "risk_reward_ratio": 0.61,
            "reward_per_share": 2.3,
            "risk_per_share": 1.4,
            "label_reward_risk": "Reward/Risk 1.64",
            "label_risk_reward": "Risk:Reward 1:0.61",
            "display": "Reward/Risk 1.64 · Risk:Reward 1:0.61",
            "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
          },
          "catalyst": "Geopolitical Risk · Geopolitical Risk",
          "invalidation": "Close above stop $185.06 · Geopolitical escalation invalidates mean-reversion",
          "advisory": true,
          "level_reasons": {
            "entry": {
              "price": 183.66,
              "source": "vwap",
              "confidence": 98,
              "reasons": [
                {
                  "source": "orb_low",
                  "label": "ORB Low",
                  "price": 183.5,
                  "weight_pct": 23.0,
                  "matched": true,
                  "primary": false
                },
                {
                  "source": "vwap",
                  "label": "VWAP",
                  "price": 183.82,
                  "weight_pct": 54.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "current",
                  "label": "Below Current",
                  "price": 182.82,
                  "weight_pct": 23.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "stop": {
              "price": 185.06,
              "source": "orb_high",
              "confidence": 89,
              "reasons": [
                {
                  "source": "orb_high",
                  "label": "ORB High",
                  "price": 185.06,
                  "weight_pct": 70.0,
                  "matched": true,
                  "primary": true
                },
                {
                  "source": "prev_high",
                  "label": "Yesterday High",
                  "price": 185.62,
                  "weight_pct": 30.0,
                  "matched": true,
                  "primary": false
                }
              ]
            },
            "target": {
              "price": 181.36,
              "source": "expected_low",
              "confidence": 77,
              "reasons": [
                {
                  "source": "expected_low",
                  "label": "Expected Low",
                  "price": 181.36,
                  "weight_pct": 100.0,
                  "matched": true,
                  "primary": true
                }
              ]
            }
          },
          "return_calculation": "(183.66-181.36)/183.66=1.25%",
          "heuristic_expected_return_pct": 0.18,
          "target_action": "买入/平空仓",
          "trade_summary_cn": "做空 XLK:在 183.66 附近入场,目标 181.36,预期 +1.25%",
          "expected_r": 0.8744,
          "trade_economics": {
            "account_size": 10000.0,
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "shares": 71,
            "contracts": 0,
            "max_loss_usd": 99.4,
            "win_usd": 163.3,
            "loss_usd": 99.4,
            "expected_value_usd": 87.12,
            "risk_per_share": 1.4,
            "reward_per_share": 2.3,
            "rr_display": {
              "reward_risk_ratio": 1.64,
              "risk_reward_ratio": 0.61,
              "reward_per_share": 2.3,
              "risk_per_share": 1.4,
              "label_reward_risk": "Reward/Risk 1.64",
              "label_risk_reward": "Risk:Reward 1:0.61",
              "display": "Reward/Risk 1.64 · Risk:Reward 1:0.61",
              "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
            },
            "size_label": "None",
            "display": "$10,000 → Win +$163 / Loss -$99"
          },
          "position_sizing": {
            "risk_pct": 1.0,
            "position_pct": 100.0,
            "contracts": 0,
            "shares": 71,
            "max_loss_usd": 99.4,
            "size_label": "None",
            "display": "Risk 1.0% → Position 100.0% → 71 unit(s) → Max Loss $99.4"
          },
          "why_wins_today": [],
          "why_not_alternatives": [
            {
              "symbol": "AVGO",
              "rank": 1,
              "reasons": [
                "Win% 71 vs 74",
                "ER 1.2% vs 1.3%",
                "Score 0.1 vs 0.47",
                "RS -0.8% vs -3.8%",
                "R:R 1.64 vs 1.0"
              ],
              "summary": "Why XLK over AVGO: Win% 71 vs 74 · ER 1.2% vs 1.3% · Score 0.1 vs 0.47 · RS -0.8% vs -3.8% · R:R 1.64 vs 1.0"
            },
            {
              "symbol": "AMD",
              "rank": 2,
              "reasons": [
                "Win% 71 vs 74",
                "ER 1.2% vs 1.2%",
                "Score 0.1 vs 0.45",
                "RS -0.8% vs -3.7%",
                "R:R 1.64 vs 1.0"
              ],
              "summary": "Why XLK over AMD: Win% 71 vs 74 · ER 1.2% vs 1.2% · Score 0.1 vs 0.45 · RS -0.8% vs -3.7% · R:R 1.64 vs 1.0"
            },
            {
              "symbol": "ARM",
              "rank": 3,
              "reasons": [
                "Win% 71 vs 75",
                "ER 1.2% vs 0.4%",
                "Score 0.1 vs 0.15",
                "RS -0.8% vs -1.8%",
                "R:R 1.64 vs 0.84"
              ],
              "summary": "Why XLK over ARM: Win% 71 vs 75 · ER 1.2% vs 0.4% · Score 0.1 vs 0.15 · RS -0.8% vs -1.8% · R:R 1.64 vs 0.84"
            },
            {
              "symbol": "SMH",
              "rank": 4,
              "reasons": [
                "Win% 71 vs 53",
                "ER 1.2% vs 0.3%",
                "Score 0.1 vs 0.11",
                "RS -0.8% vs -1.5%",
                "R:R 1.64 vs 1.21"
              ],
              "summary": "Why XLK over SMH: Win% 71 vs 53 · ER 1.2% vs 0.3% · Score 0.1 vs 0.11 · RS -0.8% vs -1.5% · R:R 1.64 vs 1.21"
            },
            {
              "symbol": "TQQQ",
              "rank": 6,
              "reasons": [
                "Win% 71 vs 53",
                "ER 1.2% vs 0.3%",
                "Score 0.1 vs 0.07",
                "RS -0.8% vs -1.6%",
                "R:R 1.64 vs 0.48"
              ],
              "summary": "Why XLK over TQQQ: Win% 71 vs 53 · ER 1.2% vs 0.3% · Score 0.1 vs 0.07 · RS -0.8% vs -1.6% · R:R 1.64 vs 0.48"
            }
          ],
          "win_prob_source": "rules",
          "calibration": {
            "calibrated_win_prob": 71.0,
            "sample_size": 0,
            "confidence_interval": null,
            "source": "rules_fallback",
            "match_quality": "insufficient",
            "win_prob_source": "rules",
            "disclaimer": "No historical matches; using rules breakdown"
          },
          "ev_distribution": {
            "expected_value_usd": 87.12,
            "win_scenario_usd": 163.3,
            "loss_scenario_usd": 99.4,
            "win_prob_pct": 71.0,
            "display": "EV $+87 (win +$163 @ 71.0% · loss -$99)"
          },
          "entry_status": {
            "current_price": 182.82,
            "ideal_entry": 183.66,
            "distance_pct": 0.46,
            "remaining_er_pct": 0.8,
            "live_expected_return_pct": 0.8,
            "new_plan": null,
            "alternate_entry": null,
            "advisory": true,
            "advisory_tag": "ADVISORY — 不构成投资建议",
            "zone_low": 183.5,
            "zone_high": 183.82,
            "miss_threshold_pct": 1.0,
            "status": "PREMARKET",
            "status_reason": "Premarket Ideal Entry — plan not yet live",
            "action_hint": "Entry still valid"
          }
        }
      ],
      "watchlist_items": [
        {
          "symbol": "TQQQ",
          "rank": 6,
          "win_prob": 53.0,
          "expected_return_pct": 0.28,
          "trade_action": "Pass",
          "why": "RS弱于QQQ -1.55% · Gap 未过度延伸 · Volume 信号 · Geo-risk day — avoid blind TQQQ short vs escalation",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "XLF",
          "rank": 7,
          "win_prob": 59.0,
          "expected_return_pct": 0.04,
          "trade_action": "Pass",
          "why": "Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "QQQ",
          "rank": 8,
          "win_prob": 59.0,
          "expected_return_pct": -0.01,
          "trade_action": "Pass",
          "why": "Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "NVDA",
          "rank": 9,
          "win_prob": 32.0,
          "expected_return_pct": -0.04,
          "trade_action": "Pass",
          "why": "RS弱于QQQ -0.34% · 半导体内领涨 +1.12% · Gap 未过度延伸 · News 8 (利空做空)",
          "note": "Monitor — below trade threshold"
        },
        {
          "symbol": "DIA",
          "rank": 10,
          "win_prob": 48.0,
          "expected_return_pct": -0.1,
          "trade_action": "Pass",
          "why": "Gap 未过度延伸 · News 5 (利空做空) · Volume 信号 · 几何上行 <1.5%(软门槛)",
          "note": "Monitor — below trade threshold"
        }
      ],
      "advisory": true,
      "swing": {
        "symbol": "AAPL",
        "direction": "LONG",
        "instrument": "Stock",
        "horizon": "Swing",
        "duration": "Swing (days–weeks)",
        "confidence": 45,
        "entry": "Near 315.8 (swing zone)",
        "entry_source": "swing_zone",
        "entry_price": 315.78,
        "entry_zone": {
          "low": 311.6,
          "high": 316.73,
          "mid": 315.78,
          "display": "$311.60–$316.73",
          "source": "swing_pullback"
        },
        "stop": "303.2 (1.75xATR)",
        "stop_source": "1.75xATR",
        "stop_price": 303.24,
        "target": "332.5 (T1 ~5.3%)",
        "target_source": "2xATR_or_5pct",
        "target_price": 332.5,
        "targets": [
          {
            "price": 332.5,
            "label": "T1",
            "pct": 5.29
          },
          {
            "price": 347.36,
            "label": "T2",
            "pct": 10.0
          }
        ],
        "expected_return_pct": 5.29,
        "expected_move": "+5.29%",
        "risk_reward": 1.33,
        "win_prob": 37.0,
        "final_score": 0.0,
        "swing_quality": 6.205,
        "atr": 8.36,
        "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": 316.73,
        "why": [
          "高流动性波段标的 AAPL",
          "Prior day +0.0%",
          "5D momentum +4.8%",
          "RS vs QQQ +2.90%",
          "News/1 catalyst hints",
          "Swing score 6.2"
        ],
        "why_chain": "高流动性波段标的 AAPL · Prior day +0.0% · 5D momentum +4.8% · RS vs QQQ +2.90%",
        "invalidation": "Close beyond stop $303.24 or thesis broken (trend flip / catalyst fade)",
        "trade_summary_cn": "波段做多 AAPL:理想入场 $311.60–$316.73,止损 $303.24,目标 $332.5(约 +5.3%),持仓天数–数周",
        "one_liner": "波段做多 AAPL:理想入场 $311.60–$316.73,止损 $303.24,目标 $332.5(约 +5.3%),持仓天数–数周",
        "edge_type": "Relative Strength",
        "advisory": true,
        "label": "长线 · Swing Trade",
        "separate_from_intraday": true
      }
    },
    "edges": {
      "macro_edge": {
        "edge": "YES",
        "why": "今日有重大催化剂(含地缘/突发):Geopolitical Risk、Trade Policy",
        "catalyst": "Geopolitical Risk、Trade Policy"
      },
      "index_edge": {
        "edge": "YES",
        "why": "QQQ 走弱 -0.74%(做空 edge)"
      },
      "sector_edge": {
        "edge": "NO",
        "why": "板块相对强度不足"
      },
      "stock_edge": {
        "edge": "NO",
        "why": "无单票 RS+新闻+量能共振"
      },
      "advisory": "ADVISORY — 不构成投资建议"
    },
    "trade_candidates": [
      {
        "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": 1.27,
        "expected_high": 367.36,
        "expected_low": 358.12,
        "expected_close": 358.12,
        "current_price": 362.74,
        "upside_pct": 1.27,
        "downside_risk_pct": 1.27,
        "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.48,
        "final_score": 0.47,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -2.9,
        "relative_strength": -3.8,
        "relative_strength_vs_smh": -2.34,
        "relative_weakness_score": 5.2,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -3.80%",
          "RS弱于SMH -2.34%",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -3.80% · RS弱于SMH -2.34% · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 5,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -3.8,
          "relative_strength_vs_smh": -2.34,
          "relative_weakness_score": 5.2,
          "gap_pct": -2.9,
          "beta_proxy": 6.14,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(74%) × ER(1.3%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "AVGO RS -3.8% vs AMD -3.7%;ER 1.3% vs 1.2%;higher beta (6.1 vs 6.0);relative weakness play",
        "advisory": true,
        "rank": 1,
        "direction": "SHORT"
      },
      {
        "symbol": "AMD",
        "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.21,
        "expected_high": 468.45,
        "expected_low": 457.29,
        "expected_close": 457.29,
        "current_price": 462.87,
        "upside_pct": 1.21,
        "downside_risk_pct": 1.21,
        "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.48,
        "final_score": 0.45,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -2.46,
        "relative_strength": -3.7,
        "relative_strength_vs_smh": -2.24,
        "relative_weakness_score": 5.04,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -3.70%",
          "RS弱于SMH -2.24%",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -3.70% · RS弱于SMH -2.24% · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 4,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -3.7,
          "relative_strength_vs_smh": -2.24,
          "relative_weakness_score": 5.04,
          "gap_pct": -2.46,
          "beta_proxy": 6.0,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(74%) × ER(1.2%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 2,
        "direction": "SHORT"
      },
      {
        "symbol": "ARM",
        "win_prob": 75.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": 16.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 75.0,
          "raw_total": 75.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.4,
        "expected_high": 249.34,
        "expected_low": 245.02,
        "expected_close": 246.01,
        "current_price": 247.0,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.95,
        "risk_reward": 0.84,
        "rr_display": {
          "reward_risk_ratio": 0.84,
          "risk_reward_ratio": 1.19,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.84",
          "label_risk_reward": "Risk:Reward 1:1.19",
          "display": "Reward/Risk 0.84 · Risk:Reward 1:1.19",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.38,
        "final_score": 0.15,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.18,
        "relative_strength": -1.75,
        "relative_strength_vs_smh": -0.29,
        "relative_weakness_score": 1.92,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -1.75%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -1.75% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 2,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -1.75,
          "relative_strength_vs_smh": -0.29,
          "relative_weakness_score": 1.92,
          "gap_pct": -0.18,
          "beta_proxy": 3.36,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(75%) × ER(0.4%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 3,
        "direction": "SHORT"
      },
      {
        "symbol": "SMH",
        "win_prob": 53.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
            },
            {
              "factor": "Macro",
              "key": "macro",
              "points": -18.0
            }
          ],
          "total": 53.0,
          "raw_total": 53.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.35,
        "expected_high": 560.92,
        "expected_low": 552.79,
        "expected_close": 555.32,
        "current_price": 557.25,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.66,
        "risk_reward": 1.21,
        "rr_display": {
          "reward_risk_ratio": 1.21,
          "risk_reward_ratio": 0.83,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.21",
          "label_risk_reward": "Risk:Reward 1:0.83",
          "display": "Reward/Risk 1.21 · Risk:Reward 1:0.83",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.1713,
        "final_score": 0.11,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.67,
        "relative_strength": -1.46,
        "relative_strength_vs_smh": 0.0,
        "relative_weakness_score": 1.46,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -1.46%",
          "Gap 未过度延伸",
          "Volume 信号",
          "Geo-risk day — avoid blind SMH short vs escalation",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -1.46% · Gap 未过度延伸 · Volume 信号 · Geo-risk day — avoid blind SMH short vs escalation",
        "score": 1,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -1.46,
          "relative_strength_vs_smh": 0.0,
          "relative_weakness_score": 1.46,
          "gap_pct": -0.67,
          "beta_proxy": 2.97,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(53%) × ER(0.3%) × rr_weight(0.6) / 100",
        "rr_weight": 0.6,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 4,
        "direction": "SHORT"
      },
      {
        "symbol": "XLK",
        "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.18,
        "expected_high": 183.73,
        "expected_low": 181.36,
        "expected_close": 182.49,
        "current_price": 182.82,
        "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.846,
        "final_score": 0.1,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.35,
        "relative_strength": -0.77,
        "relative_strength_vs_smh": 0.69,
        "relative_weakness_score": 0.36,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -0.77%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -0.77% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 1,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.77,
          "relative_strength_vs_smh": 0.69,
          "relative_weakness_score": 0.36,
          "gap_pct": -0.35,
          "beta_proxy": 2.04,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(71%) × ER(0.2%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 5,
        "direction": "SHORT"
      },
      {
        "symbol": "TQQQ",
        "win_prob": 53.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
            },
            {
              "factor": "Macro",
              "key": "macro",
              "points": -18.0
            }
          ],
          "total": 53.0,
          "raw_total": 53.0,
          "was_clamped": false
        },
        "expected_return_pct": 0.28,
        "expected_high": 72.06,
        "expected_low": 70.3,
        "expected_close": 70.67,
        "current_price": 70.87,
        "upside_pct": 0.8,
        "downside_risk_pct": 1.68,
        "risk_reward": 0.48,
        "rr_display": {
          "reward_risk_ratio": 0.48,
          "risk_reward_ratio": 2.08,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.48",
          "label_risk_reward": "Risk:Reward 1:2.08",
          "display": "Reward/Risk 0.48 · Risk:Reward 1:2.08",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": -0.2156,
        "final_score": 0.07,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.34,
        "relative_strength": -1.55,
        "relative_strength_vs_smh": -0.09,
        "relative_weakness_score": 1.6,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -1.55%",
          "Gap 未过度延伸",
          "Volume 信号",
          "Geo-risk day — avoid blind TQQQ short vs escalation",
          "期望R -0.22 < 0.15(EV门禁)"
        ],
        "why": "RS弱于QQQ -1.55% · Gap 未过度延伸 · Volume 信号 · Geo-risk day — avoid blind TQQQ short vs escalation",
        "score": 1,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -1.55,
          "relative_strength_vs_smh": -0.09,
          "relative_weakness_score": 1.6,
          "gap_pct": 0.34,
          "beta_proxy": 3.09,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(53%) × ER(0.3%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 6,
        "direction": "SHORT"
      },
      {
        "symbol": "XLF",
        "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": 57.75,
        "expected_low": 57.0,
        "expected_close": 57.44,
        "current_price": 57.46,
        "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.534,
        "final_score": 0.02,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.69,
        "relative_strength": 0.08,
        "relative_strength_vs_smh": 1.54,
        "relative_weakness_score": -1.0,
        "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.08,
          "relative_strength_vs_smh": 1.54,
          "relative_weakness_score": -1.0,
          "gap_pct": -0.69,
          "beta_proxy": 0.89,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Range",
        "score_formula_display": "final = win_prob(59%) × ER(0.0%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 7,
        "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.01,
        "expected_high": 716.08,
        "expected_low": 706.49,
        "expected_close": 712.23,
        "current_price": 712.19,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.55,
        "risk_reward": 1.46,
        "rr_display": {
          "reward_risk_ratio": 1.46,
          "risk_reward_ratio": 0.68,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.46",
          "label_risk_reward": "Risk:Reward 1:0.68",
          "display": "Reward/Risk 1.46 · Risk:Reward 1:0.68",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.4514,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.07,
        "relative_strength": 0.0,
        "relative_strength_vs_smh": 1.46,
        "relative_weakness_score": -0.88,
        "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": 1.46,
          "relative_weakness_score": -0.88,
          "gap_pct": 0.07,
          "beta_proxy": 1.0,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Index Edge",
        "score_formula_display": "final = win_prob(59%) × ER(-0.0%) × rr_weight(0.73) / 100",
        "rr_weight": 0.73,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 8,
        "direction": "SHORT"
      },
      {
        "symbol": "NVDA",
        "win_prob": 32.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -4.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": -5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            },
            {
              "factor": "Macro",
              "key": "macro",
              "points": -18.0
            }
          ],
          "total": 32.0,
          "raw_total": 32.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.04,
        "expected_high": 218.45,
        "expected_low": 215.62,
        "expected_close": 217.45,
        "current_price": 217.36,
        "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.168,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.3,
        "relative_strength": -0.34,
        "relative_strength_vs_smh": 1.12,
        "relative_weakness_score": -0.33,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -0.34%",
          "半导体内领涨 +1.12%",
          "Gap 未过度延伸",
          "News 8 (利空做空)",
          "Volume 信号",
          "Geo-risk day — avoid blind NVDA short vs escalation"
        ],
        "why": "RS弱于QQQ -0.34% · 半导体内领涨 +1.12% · Gap 未过度延伸 · News 8 (利空做空)",
        "score": 0,
        "news_count": 8,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.34,
          "relative_strength_vs_smh": 1.12,
          "relative_weakness_score": -0.33,
          "gap_pct": -0.3,
          "beta_proxy": 1.46,
          "volume_signal": true,
          "news_count": 8,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(32%) × ER(-0.0%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 9,
        "direction": "SHORT"
      },
      {
        "symbol": "DIA",
        "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.1,
        "expected_high": 534.27,
        "expected_low": 527.15,
        "expected_close": 531.96,
        "current_price": 531.4,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.54,
        "risk_reward": 1.48,
        "rr_display": {
          "reward_risk_ratio": 1.48,
          "risk_reward_ratio": 0.68,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.48",
          "label_risk_reward": "Risk:Reward 1:0.68",
          "display": "Reward/Risk 1.48 · Risk:Reward 1:0.68",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.1904,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.16,
        "relative_strength": 0.46,
        "relative_strength_vs_smh": 1.92,
        "relative_weakness_score": -1.61,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "Gap 未过度延伸",
          "News 5 (利空做空)",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "Gap 未过度延伸 · News 5 (利空做空) · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 5,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.46,
          "relative_strength_vs_smh": 1.92,
          "relative_weakness_score": -1.61,
          "gap_pct": 0.16,
          "beta_proxy": 0.38,
          "volume_signal": true,
          "news_count": 5,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Range",
        "score_formula_display": "final = win_prob(48%) × ER(-0.1%) × rr_weight(0.74) / 100",
        "rr_weight": 0.74,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 10,
        "direction": "SHORT"
      },
      {
        "symbol": "GOOGL",
        "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.1,
        "expected_high": 344.72,
        "expected_low": 340.18,
        "expected_close": 343.26,
        "current_price": 342.92,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.52,
        "risk_reward": 1.52,
        "rr_display": {
          "reward_risk_ratio": 1.52,
          "risk_reward_ratio": 0.66,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.52",
          "label_risk_reward": "Risk:Reward 1:0.66",
          "display": "Reward/Risk 1.52 · Risk:Reward 1:0.66",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.3356,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 0.32,
        "relative_strength": 0.37,
        "relative_strength_vs_smh": 1.83,
        "relative_weakness_score": -1.47,
        "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.37,
          "relative_strength_vs_smh": 1.83,
          "relative_weakness_score": -1.47,
          "gap_pct": 0.32,
          "beta_proxy": 0.5,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Range",
        "score_formula_display": "final = win_prob(53%) × ER(-0.1%) × rr_weight(0.76) / 100",
        "rr_weight": 0.76,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 11,
        "direction": "SHORT"
      },
      {
        "symbol": "SPY",
        "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.15,
        "expected_high": 770.37,
        "expected_low": 760.4,
        "expected_close": 767.7,
        "current_price": 766.54,
        "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.35,
        "relative_strength": 0.62,
        "relative_strength_vs_smh": 2.08,
        "relative_weakness_score": -1.87,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +0.62%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "板块内相对强势 +0.62% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 0.62,
          "relative_strength_vs_smh": 2.08,
          "relative_weakness_score": -1.87,
          "gap_pct": 0.35,
          "beta_proxy": 0.16,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(47%) × ER(-0.2%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 12,
        "direction": "SHORT"
      },
      {
        "symbol": "MU",
        "win_prob": 55.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -4.0
            },
            {
              "factor": "Gap",
              "key": "gap",
              "points": 5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 55.0,
          "raw_total": 55.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.16,
        "expected_high": 937.11,
        "expected_low": 923.03,
        "expected_close": 931.96,
        "current_price": 930.47,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.71,
        "risk_reward": 1.12,
        "rr_display": {
          "reward_risk_ratio": 1.12,
          "risk_reward_ratio": 0.89,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.12",
          "label_risk_reward": "Risk:Reward 1:0.89",
          "display": "Reward/Risk 1.12 · Risk:Reward 1:0.89",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.166,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 1.21,
        "relative_strength": -0.35,
        "relative_strength_vs_smh": 1.11,
        "relative_weakness_score": -0.32,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "RS弱于QQQ -0.35%",
          "半导体内领涨 +1.11%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "RS弱于QQQ -0.35% · 半导体内领涨 +1.11% · Gap 未过度延伸 · Volume 信号",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": -0.35,
          "relative_strength_vs_smh": 1.11,
          "relative_weakness_score": -0.32,
          "gap_pct": 1.21,
          "beta_proxy": 1.47,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Weakness",
        "score_formula_display": "final = win_prob(55%) × ER(-0.2%) × rr_weight(0.56) / 100",
        "rr_weight": 0.56,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 13,
        "direction": "SHORT"
      },
      {
        "symbol": "MSFT",
        "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.27,
        "expected_high": 486.22,
        "expected_low": 479.93,
        "expected_close": 485.12,
        "current_price": 483.8,
        "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.43,
        "relative_strength": 1.19,
        "relative_strength_vs_smh": 2.65,
        "relative_weakness_score": -2.78,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +1.19%",
          "Gap 未过度延伸",
          "News 1 (利空做空)",
          "Volume 信号",
          "期望R 0.09 < 0.15(EV门禁)"
        ],
        "why": "板块内相对强势 +1.19% · Gap 未过度延伸 · News 1 (利空做空) · Volume 信号",
        "score": 0,
        "news_count": 1,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 1.19,
          "relative_strength_vs_smh": 2.65,
          "relative_weakness_score": -2.78,
          "gap_pct": 0.43,
          "beta_proxy": -0.61,
          "volume_signal": true,
          "news_count": 1,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(42%) × ER(-0.3%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 14,
        "direction": "SHORT"
      },
      {
        "symbol": "XLE",
        "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.31,
        "expected_high": 64.59,
        "expected_low": 63.58,
        "expected_close": 64.47,
        "current_price": 64.27,
        "upside_pct": 1.07,
        "downside_risk_pct": 0.5,
        "risk_reward": 2.15,
        "rr_display": {
          "reward_risk_ratio": 2.15,
          "risk_reward_ratio": 0.47,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 2.15",
          "label_risk_reward": "Risk:Reward 1:0.47",
          "display": "Reward/Risk 2.15 · Risk:Reward 1:0.47",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": 0.4805,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": -0.33,
        "relative_strength": 1.67,
        "relative_strength_vs_smh": 3.13,
        "relative_weakness_score": -3.55,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +1.67%",
          "Gap 未过度延伸",
          "Volume 信号",
          "几何上行 <1.5%(软门槛)"
        ],
        "why": "板块内相对强势 +1.67% · Gap 未过度延伸 · Volume 信号 · 几何上行 <1.5%(软门槛)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 1.67,
          "relative_strength_vs_smh": 3.13,
          "relative_weakness_score": -3.55,
          "gap_pct": -0.33,
          "beta_proxy": -1.26,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(47%) × ER(-0.3%) × rr_weight(1.07) / 100",
        "rr_weight": 1.07,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 15,
        "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": "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.41,
        "expected_high": 550.99,
        "expected_low": 543.87,
        "expected_close": 550.52,
        "current_price": 548.25,
        "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": 1.21,
        "relative_strength": 1.58,
        "relative_strength_vs_smh": 3.04,
        "relative_weakness_score": -3.4,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +1.58%",
          "Gap 未过度延伸",
          "News 1 (利空做空)",
          "Volume 信号",
          "期望R 0.09 < 0.15(EV门禁)"
        ],
        "why": "板块内相对强势 +1.58% · Gap 未过度延伸 · News 1 (利空做空) · Volume 信号",
        "score": 0,
        "news_count": 1,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 1.58,
          "relative_strength_vs_smh": 3.04,
          "relative_weakness_score": -3.4,
          "gap_pct": 1.21,
          "beta_proxy": -1.14,
          "volume_signal": true,
          "news_count": 1,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(42%) × ER(-0.4%) × rr_weight(0.8) / 100",
        "rr_weight": 0.8,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 16,
        "direction": "SHORT"
      },
      {
        "symbol": "AAPL",
        "win_prob": 37.0,
        "win_prob_breakdown": {
          "components": [
            {
              "factor": "Base",
              "key": "base",
              "points": 50.0
            },
            {
              "factor": "RS",
              "key": "rs",
              "points": -12.0
            },
            {
              "factor": "Catalyst",
              "key": "catalyst",
              "points": -5.0
            },
            {
              "factor": "Volume",
              "key": "volume",
              "points": 4.0
            }
          ],
          "total": 37.0,
          "raw_total": 37.0,
          "was_clamped": false
        },
        "expected_return_pct": -0.74,
        "expected_high": 319.06,
        "expected_low": 314.19,
        "expected_close": 319.06,
        "current_price": 316.73,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.74,
        "risk_reward": 1.09,
        "rr_display": {
          "reward_risk_ratio": 1.09,
          "risk_reward_ratio": 0.92,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.09",
          "label_risk_reward": "Risk:Reward 1:0.92",
          "display": "Reward/Risk 1.09 · Risk:Reward 1:0.92",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": -0.2267,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 1.94,
        "relative_strength": 2.9,
        "relative_strength_vs_smh": 4.36,
        "relative_weakness_score": -5.52,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +2.90%",
          "News 1 (利空做空)",
          "Volume 信号",
          "期望R -0.23 < 0.15(EV门禁)"
        ],
        "why": "板块内相对强势 +2.90% · News 1 (利空做空) · Volume 信号 · 期望R -0.23 < 0.15(EV门禁)",
        "score": 0,
        "news_count": 1,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.9,
          "relative_strength_vs_smh": 4.36,
          "relative_weakness_score": -5.52,
          "gap_pct": 1.94,
          "beta_proxy": -2.92,
          "volume_signal": true,
          "news_count": 1,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(37%) × ER(-0.7%) × rr_weight(0.55) / 100",
        "rr_weight": 0.55,
        "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.76,
        "expected_high": 266.51,
        "expected_low": 262.38,
        "expected_close": 266.51,
        "current_price": 264.49,
        "upside_pct": 0.8,
        "downside_risk_pct": 0.76,
        "risk_reward": 1.05,
        "rr_display": {
          "reward_risk_ratio": 1.05,
          "risk_reward_ratio": 0.95,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 1.05",
          "label_risk_reward": "Risk:Reward 1:0.95",
          "display": "Reward/Risk 1.05 · Risk:Reward 1:0.95",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": -0.139,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 2.82,
        "relative_strength": 2.68,
        "relative_strength_vs_smh": 4.14,
        "relative_weakness_score": -5.16,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +2.68%",
          "Volume 信号",
          "期望R -0.14 < 0.15(EV门禁)"
        ],
        "why": "板块内相对强势 +2.68% · Volume 信号 · 期望R -0.14 < 0.15(EV门禁)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 2.68,
          "relative_strength_vs_smh": 4.14,
          "relative_weakness_score": -5.16,
          "gap_pct": 2.82,
          "beta_proxy": -2.62,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(42%) × ER(-0.8%) × rr_weight(0.53) / 100",
        "rr_weight": 0.53,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 18,
        "direction": "SHORT"
      },
      {
        "symbol": "TSLA",
        "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": -1.1,
        "expected_high": 351.12,
        "expected_low": 344.52,
        "expected_close": 351.12,
        "current_price": 347.3,
        "upside_pct": 0.8,
        "downside_risk_pct": 1.1,
        "risk_reward": 0.73,
        "rr_display": {
          "reward_risk_ratio": 0.73,
          "risk_reward_ratio": 1.37,
          "reward_per_share": null,
          "risk_per_share": null,
          "label_reward_risk": "Reward/Risk 0.73",
          "label_risk_reward": "Risk:Reward 1:1.37",
          "display": "Reward/Risk 0.73 · Risk:Reward 1:1.37",
          "convention": "reward_risk_ratio = reward ÷ risk; Risk:Reward shows risk per unit reward"
        },
        "expected_r": -0.2734,
        "final_score": 0.0,
        "trade_action": "Pass",
        "trade": "Pass",
        "gap_pct": 4.14,
        "relative_strength": 3.84,
        "relative_strength_vs_smh": 5.3,
        "relative_weakness_score": -7.02,
        "prior_day_change_pct": 0.0,
        "why_factors": [
          "板块内相对强势 +3.84%",
          "Volume 信号",
          "期望R -0.27 < 0.15(EV门禁)"
        ],
        "why": "板块内相对强势 +3.84% · Volume 信号 · 期望R -0.27 < 0.15(EV门禁)",
        "score": 0,
        "news_count": 0,
        "factor_breakdown": {
          "relative_strength_vs_qqq": 3.84,
          "relative_strength_vs_smh": 5.3,
          "relative_weakness_score": -7.02,
          "gap_pct": 4.14,
          "beta_proxy": -4.19,
          "volume_signal": true,
          "news_count": 0,
          "extended_gap_penalty": 0.0,
          "vix_change_pct": 2.75,
          "prior_day_change_pct": 0.0
        },
        "edge_type": "Relative Strength",
        "score_formula_display": "final = win_prob(42%) × ER(-1.1%) × rr_weight(0.5) / 100",
        "rr_weight": 0.5,
        "why_vs_runner_up": "—",
        "advisory": true,
        "rank": 19,
        "direction": "SHORT"
      }
    ]
  },
  "intraday": {},
  "trade_plan": {},
  "actual": {},
  "attribution": {
    "ai": 0.0,
    "bond": 0.0,
    "oil": 0.0,
    "macro": 0.0,
    "other": 0.0,
    "splits": {}
  },
  "labels": {
    "actual_driver": null,
    "agent_driver": "Geopolitical Risk",
    "agent_driver_type": "Political",
    "corrected_driver_from_verify": null,
    "driver_splits": {},
    "hypothesis_correct": null,
    "scenario_primary": null,
    "scenario_actual": null,
    "scenario_correct": null,
    "trade_recommendation": "—",
    "trade_direction": "NO TRADE",
    "primary_symbol": null,
    "predicted_return_pct": null,
    "prediction_error_pct": null
  },
  "surprise": null,
  "lesson": null,
  "playbook_refs": [],
  "bayesian_drivers": {},
  "data_gaps": []
}