{
  "as_of": "2026-11-02",
  "period": {
    "days": 5,
    "label": "周",
    "horizon": "短线",
    "momentum": 20,
    "trend": 20,
    "reversal": 0.2
  },
  "weights": {
    "momentum": 0.2608695652173913,
    "quality_momentum": 0.13043478260869565,
    "low_vol": 0.1739130434782609,
    "trend": 0.1739130434782609,
    "reversal": 0.1739130434782609,
    "high_52w": 0.04347826086956522,
    "liquidity": 0.04347826086956522
  },
  "factor_labels": {
    "momentum": "动量",
    "quality_momentum": "质量动量",
    "low_vol": "低波",
    "trend": "趋势",
    "reversal": "短期反转",
    "high_52w": "52周高点",
    "liquidity": "流动性"
  },
  "invested": 0.95,
  "n_candidates": 41,
  "recommendations": [
    {
      "rank": 1,
      "code": "601857",
      "name": "中国石油",
      "score": 1.2095,
      "weight": 0.0792,
      "close": 14.02,
      "ma200_dev": 0.3059,
      "vol60": 0.2627,
      "contrib": {
        "momentum": 0.6829,
        "quality_momentum": 0.2283,
        "low_vol": 0.0521,
        "trend": 0.3249,
        "reversal": -0.1693,
        "high_52w": 0.0654,
        "liquidity": 0.0251
      }
    },
    {
      "rank": 2,
      "code": "300760",
      "name": "迈瑞医疗",
      "score": 0.842,
      "weight": 0.0792,
      "close": 179.29,
      "ma200_dev": 0.0984,
      "vol60": 0.2787,
      "contrib": {
        "momentum": 0.4459,
        "quality_momentum": 0.0975,
        "low_vol": 0.0304,
        "trend": 0.1539,
        "reversal": 0.0748,
        "high_52w": 0.0214,
        "liquidity": 0.018
      }
    },
    {
      "rank": 3,
      "code": "601728",
      "name": "中国电信",
      "score": 0.765,
      "weight": 0.0792,
      "close": 7.04,
      "ma200_dev": 0.1898,
      "vol60": 0.2073,
      "contrib": {
        "momentum": 0.3219,
        "quality_momentum": 0.1913,
        "low_vol": 0.1276,
        "trend": 0.1274,
        "reversal": -0.056,
        "high_52w": 0.0654,
        "liquidity": -0.0126
      }
    },
    {
      "rank": 4,
      "code": "601398",
      "name": "工商银行",
      "score": 0.7503,
      "weight": 0.0792,
      "close": 8.69,
      "ma200_dev": 0.1765,
      "vol60": 0.2044,
      "contrib": {
        "momentum": 0.2285,
        "quality_momentum": 0.2438,
        "low_vol": 0.1315,
        "trend": 0.091,
        "reversal": -0.0506,
        "high_52w": 0.063,
        "liquidity": 0.0431
      }
    },
    {
      "rank": 5,
      "code": "601816",
      "name": "京沪高铁",
      "score": 0.7462,
      "weight": 0.0792,
      "close": 5.22,
      "ma200_dev": 0.072,
      "vol60": 0.1639,
      "contrib": {
        "momentum": 0.2721,
        "quality_momentum": 0.1501,
        "low_vol": 0.1868,
        "trend": 0.0813,
        "reversal": -0.0007,
        "high_52w": 0.0649,
        "liquidity": -0.0082
      }
    },
    {
      "rank": 6,
      "code": "600900",
      "name": "长江电力",
      "score": 0.7031,
      "weight": 0.0792,
      "close": 29.5,
      "ma200_dev": 0.0915,
      "vol60": 0.1457,
      "contrib": {
        "momentum": 0.1609,
        "quality_momentum": 0.1902,
        "low_vol": 0.2115,
        "trend": -0.001,
        "reversal": 0.0336,
        "high_52w": 0.0616,
        "liquidity": 0.0462
      }
    },
    {
      "rank": 7,
      "code": "601939",
      "name": "建设银行",
      "score": 0.6604,
      "weight": 0.0792,
      "close": 12.06,
      "ma200_dev": 0.2258,
      "vol60": 0.2148,
      "contrib": {
        "momentum": 0.205,
        "quality_momentum": 0.2645,
        "low_vol": 0.1174,
        "trend": 0.1381,
        "reversal": -0.1385,
        "high_52w": 0.0654,
        "liquidity": 0.0085
      }
    },
    {
      "rank": 8,
      "code": "601088",
      "name": "中国神华",
      "score": 0.6597,
      "weight": 0.0792,
      "close": 51.84,
      "ma200_dev": 0.1824,
      "vol60": 0.242,
      "contrib": {
        "momentum": 0.29,
        "quality_momentum": 0.1764,
        "low_vol": 0.0803,
        "trend": 0.149,
        "reversal": -0.1214,
        "high_52w": 0.0647,
        "liquidity": 0.0208
      }
    },
    {
      "rank": 9,
      "code": "600887",
      "name": "伊利股份",
      "score": 0.6584,
      "weight": 0.0792,
      "close": 30.62,
      "ma200_dev": 0.175,
      "vol60": 0.1686,
      "contrib": {
        "momentum": 0.208,
        "quality_momentum": 0.1908,
        "low_vol": 0.1804,
        "trend": 0.2413,
        "reversal": -0.2465,
        "high_52w": 0.0654,
        "liquidity": 0.019
      }
    },
    {
      "rank": 10,
      "code": "601288",
      "name": "农业银行",
      "score": 0.6248,
      "weight": 0.0792,
      "close": 7.47,
      "ma200_dev": 0.1344,
      "vol60": 0.2267,
      "contrib": {
        "momentum": 0.2627,
        "quality_momentum": 0.1507,
        "low_vol": 0.1011,
        "trend": 0.1022,
        "reversal": -0.0719,
        "high_52w": 0.0443,
        "liquidity": 0.0356
      }
    },
    {
      "rank": 11,
      "code": "600941",
      "name": "中国移动",
      "score": 0.6176,
      "weight": 0.0792,
      "close": 102.84,
      "ma200_dev": 0.1095,
      "vol60": 0.1983,
      "contrib": {
        "momentum": 0.2107,
        "quality_momentum": 0.174,
        "low_vol": 0.1398,
        "trend": 0.0831,
        "reversal": -0.0587,
        "high_52w": 0.0622,
        "liquidity": 0.0065
      }
    },
    {
      "rank": 12,
      "code": "600036",
      "name": "招商银行",
      "score": 0.6166,
      "weight": 0.0792,
      "close": 43.18,
      "ma200_dev": 0.1163,
      "vol60": 0.1839,
      "contrib": {
        "momentum": 0.1384,
        "quality_momentum": 0.2186,
        "low_vol": 0.1595,
        "trend": 0.0491,
        "reversal": -0.0614,
        "high_52w": 0.0634,
        "liquidity": 0.049
      }
    }
  ],
  "data_notes": {
    "kline_source": "腾讯/新浪日线（公开接口）",
    "universe": "内置大市值样本池（123 只有效标的，静态列表含幸存者偏差）",
    "method": "截面 MAD 去极值 + Z-score 加权合成，200 日线之上才入选"
  }
}