{
  "dates": {
    "analysis_as_of": "2026-07-16",
    "analysis_start": "2026-04-01",
    "generated_at": "2026-07-17T04:14:37Z",
    "market_data_as_of": "2026-07-16",
    "signal_as_of": "2026-07-16"
  },
  "downloads": {
    "equity_curve": {
      "sha256": "8aa5ad9904f272ccec9219c6616b40e7aa11f8bbc61fc6f72c9d0f39bb03508b",
      "size_bytes": 10162,
      "url": "downloads/20260717T041437Z-43697f161568/equity_curve.csv"
    },
    "holdings": {
      "sha256": "ed42e679b2faa75229678082a4531267266ecd8f5d4f0e857fdb71852b042733",
      "size_bytes": 3127,
      "url": "downloads/20260717T041437Z-43697f161568/holdings.csv"
    },
    "metrics": {
      "sha256": "0da03567cd317b958ae651db263e1813de908a7ec35b1871503f1ac60ac9fdd6",
      "size_bytes": 1016,
      "url": "downloads/20260717T041437Z-43697f161568/metrics.csv"
    },
    "rebalance_advice": {
      "sha256": "4dfa6f2b872862785f8d9cd9591d9b1adddd4114311b58d9aaf8bafe1f5d836f",
      "size_bytes": 3966,
      "url": "downloads/20260717T041437Z-43697f161568/rebalance_advice.csv"
    },
    "strategy_report": {
      "sha256": "ff703b34d0956a9b64df0e5fd4227512e63588b5dad00805de57356427e4999a",
      "size_bytes": 53505,
      "url": "downloads/20260717T041437Z-43697f161568/strategy_report.html"
    },
    "top20": {
      "sha256": "db23e0850fe474de2051de3a77c6e8f38c504a0fa61b618ecf713d4edf893ea1",
      "size_bytes": 11752,
      "url": "downloads/20260717T041437Z-43697f161568/top20.csv"
    }
  },
  "holdings": {
    "as_of": "2026-07-16",
    "cash_cny": 12944.1669217105,
    "count": 20,
    "items": [
      {
        "bond_code": "110081",
        "bond_name": "闻泰转债",
        "close": 108.195,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 45441.899999999994,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 420,
        "rank": 10,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.7275326797385621,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0469118559414573
      },
      {
        "bond_code": "110092",
        "bond_name": "三房转债",
        "close": 78.555,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 50275.2,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 640,
        "rank": 8,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.7356209150326797,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0519015036745373
      },
      {
        "bond_code": "110093",
        "bond_name": "神马转债",
        "close": 121.111,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 48444.4,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 400,
        "rank": 32,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.5695261437908498,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0500114809013342
      },
      {
        "bond_code": "111015",
        "bond_name": "东亚转债",
        "close": 126.859,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 48206.42,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 380,
        "rank": 31,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.5722222222222222,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0497658027171705
      },
      {
        "bond_code": "111017",
        "bond_name": "蓝天转债",
        "close": 130.175,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 48164.75000000001,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 370,
        "rank": 13,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.6647058823529413,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0497227847747631
      },
      {
        "bond_code": "113052",
        "bond_name": "兴业转债",
        "close": 117.506,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 48177.46,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 410,
        "rank": 4,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.7648692810457517,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0497359059182236
      },
      {
        "bond_code": "113056",
        "bond_name": "重银转债",
        "close": 127.305,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 48375.9,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 380,
        "rank": 5,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.7502450980392157,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0499407650612837
      },
      {
        "bond_code": "113062",
        "bond_name": "常银转债",
        "close": 129.752,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 48008.240000000005,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 370,
        "rank": 3,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.7826797385620915,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0495612119845981
      },
      {
        "bond_code": "113067",
        "bond_name": "燃23转债",
        "close": 129.125,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 49067.5,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 380,
        "rank": 15,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.6568627450980393,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.050654736958786
      },
      {
        "bond_code": "113070",
        "bond_name": "渝水转债",
        "close": 127.543,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 47190.91,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 370,
        "rank": 2,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.8108660130718955,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0487174429692922
      },
      {
        "bond_code": "118024",
        "bond_name": "冠宇转债",
        "close": 127.411,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 47142.07,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 370,
        "rank": 11,
        "reason": "BUY_TOP20",
        "score": 0.7044934640522877,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0486670230915102
      },
      {
        "bond_code": "118027",
        "bond_name": "宏图转债",
        "close": 86.919,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 45197.88,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 520,
        "rank": 6,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.742156862745098,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0466599423751929
      },
      {
        "bond_code": "118031",
        "bond_name": "天23转债",
        "close": 123.673,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 48232.47,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 390,
        "rank": 9,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.7346405228758172,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0497926953833502
      },
      {
        "bond_code": "118034",
        "bond_name": "晶能转债",
        "close": 117.566,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 47026.4,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 400,
        "rank": 17,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.6307189542483661,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0485476113948878
      },
      {
        "bond_code": "123216",
        "bond_name": "科顺转债",
        "close": 125.559,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 47712.42,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 380,
        "rank": 18,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.6244281045751634,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0492558227903831
      },
      {
        "bond_code": "127049",
        "bond_name": "希望转2",
        "close": 114.17,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 47951.4,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 420,
        "rank": 7,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.7416666666666668,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0495025333225767
      },
      {
        "bond_code": "127061",
        "bond_name": "美锦转债",
        "close": 99.243,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 48629.07,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 490,
        "rank": 12,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.6816176470588237,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0502021246120221
      },
      {
        "bond_code": "127083",
        "bond_name": "山路转债",
        "close": 119.387,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 47754.8,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 400,
        "rank": 28,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.5845588235294119,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0492995736998917
      },
      {
        "bond_code": "127089",
        "bond_name": "晶澳转债",
        "close": 123.4,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 46892.0,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 380,
        "rank": 1,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.8311274509803923,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0484088638196646
      },
      {
        "bond_code": "127108",
        "bond_name": "太能转债",
        "close": 125.869,
        "date": "2026-07-16",
        "last_market_date": "2026-07-16",
        "market_value": 47830.22,
        "price_date": "2026-07-16",
        "price_stale": false,
        "quantity": 380,
        "rank": 23,
        "reason": "HOLD_RANK_BUFFER",
        "score": 0.6053921568627453,
        "stale_calendar_days": 0,
        "stale_trading_days": 0,
        "valuation_status": "fresh",
        "weight": 0.0493774333883093
      }
    ],
    "market_value_cny": 955721.41
  },
  "metrics": {
    "annualized_return": -0.10389575256485006,
    "annualized_volatility": 0.10002259226691633,
    "calmar_ratio": -1.1338910285668589,
    "carried_price_position_days": 3,
    "commission_paid": 1190.3058932894999,
    "current_drawdown": -0.048835972813561446,
    "deferred_exit_fill_count": 0,
    "end_date": "2026-07-16",
    "final_cash": 12944.1669217105,
    "final_equity": 968665.5769217105,
    "final_holding_count": 20,
    "historical_result_classification": "exploratory",
    "holdings_count": 20,
    "initial_equity": 1000000.0,
    "max_drawdown": -0.09162585419377356,
    "max_observed_stale_trading_days": 1,
    "max_stale_trading_days": 5,
    "pending_exit_count": 0,
    "positive_day_ratio": 0.4507042253521127,
    "ranking_count": 95,
    "rebalance_advice_count": 21,
    "redeem_status_mode": "available_asof_snapshots_not_full_history",
    "result_quality_status": "degraded",
    "sharpe_ratio": -1.2781517330506411,
    "slippage_cost": 1983.5971849999999,
    "stale_holding_count": 0,
    "stale_price_action": "raise",
    "stale_price_breach_count": 0,
    "start_date": "2026-04-01",
    "total_return": -0.031334423078289486,
    "trade_count": 200,
    "trading_days": 72,
    "turnover": 4.1009659780759415,
    "valuation_complete": true
  },
  "quality": {
    "data": {
      "analysis_start": "2026-04-01",
      "bond_count": 312,
      "bond_price_rows": 48901,
      "collection_start": "2025-11-02",
      "date_end": "2026-07-16",
      "date_start": "2025-11-03",
      "historical_result_classification": "exploratory",
      "notes": [
        "YTM 为 MVP 零息近似，不代表交易所或专业固收定价口径。",
        "AkShare 日线若缺失成交额，数据层会使用 close*volume 近似。",
        "免费强赎接口主要提供当前/可见快照，不等同于完整历史公告序列；历史回测可能低估强赎风险。"
      ],
      "provider": "akshare",
      "quality_checks": {
        "analysis_period_bounds": {
          "actual": {
            "rows": 72,
            "start": "2026-04-01"
          },
          "detail": "预热行只参与因子计算，不进入净值与绩效期间。",
          "required": {
            "rows_min": 2,
            "start_on_or_after": "2026-04-01"
          },
          "status": "valid"
        },
        "factor_coverage": {
          "actual": {
            "full_coverage_ratio": 1.0,
            "median": 0.9999999999999999,
            "observations": 1196
          },
          "detail": "检查各调仓截面是否同时覆盖价值、趋势、流动性与风险因子。",
          "required": {
            "full_coverage_ratio_valid": 0.95,
            "median_min": 0.75
          },
          "status": "valid"
        },
        "holdings_coverage": {
          "actual": 20,
          "detail": "期末持仓是否与当前排名可形成的目标组合相符。",
          "required": 20,
          "status": "valid"
        },
        "ranking_coverage": {
          "actual": 95,
          "detail": "最新有效排名是否足以生成 TOP 组合。",
          "required": 20,
          "status": "valid"
        },
        "trade_coverage": {
          "actual": 200,
          "detail": "是否完成从信号到次日开盘模拟成交的回测闭环。",
          "required": "> 0（存在多个排名截面时）",
          "status": "valid"
        },
        "valuation_completeness": {
          "actual": true,
          "detail": "持仓估值是否未超过允许的行情陈旧阈值。",
          "required": true,
          "status": "valid"
        },
        "warmup_coverage": {
          "actual": 99,
          "detail": "分析起始日前的独立交易日数。",
          "required": 90,
          "status": "valid"
        }
      },
      "redemption_rows": 312,
      "result_quality_status": "degraded",
      "stock_price_rows": 52771,
      "warnings": [
        "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.",
        "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.",
        "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.",
        "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.",
        "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.",
        "bond_cb_redeem_jsl exposes no announcement/effective-date column; returned statuses are dated at as_of as current snapshots and must not be treated as historical notices",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
        "AKShare bond valuation warning(s) for 2 security(s): 118071: bond_zh_hs_cov_daily failed ('date'); using close-only value-analysis fallback with zero volume/amount | 118072: bond_zh_hs_cov_daily failed ('date'); using close-only value-analysis fallback with zero volume/amount"
      ]
    },
    "publication_gate": {
      "checks": {
        "demo_allowed": true,
        "live_trading_disabled": true,
        "qmt_disabled": true,
        "quality_not_invalid": true
      },
      "status": "pass"
    },
    "research_result": {
      "checks": {
        "analysis_period_bounds": {
          "actual": {
            "rows": 72,
            "start": "2026-04-01"
          },
          "detail": "预热行只参与因子计算，不进入净值与绩效期间。",
          "required": {
            "rows_min": 2,
            "start_on_or_after": "2026-04-01"
          },
          "status": "valid"
        },
        "factor_coverage": {
          "actual": {
            "full_coverage_ratio": 1.0,
            "median": 0.9999999999999999,
            "observations": 1196
          },
          "detail": "检查各调仓截面是否同时覆盖价值、趋势、流动性与风险因子。",
          "required": {
            "full_coverage_ratio_valid": 0.95,
            "median_min": 0.75
          },
          "status": "valid"
        },
        "holdings_coverage": {
          "actual": 20,
          "detail": "期末持仓是否与当前排名可形成的目标组合相符。",
          "required": 20,
          "status": "valid"
        },
        "ranking_coverage": {
          "actual": 95,
          "detail": "最新有效排名是否足以生成 TOP 组合。",
          "required": 20,
          "status": "valid"
        },
        "trade_coverage": {
          "actual": 200,
          "detail": "是否完成从信号到次日开盘模拟成交的回测闭环。",
          "required": "> 0（存在多个排名截面时）",
          "status": "valid"
        },
        "valuation_completeness": {
          "actual": true,
          "detail": "持仓估值是否未超过允许的行情陈旧阈值。",
          "required": true,
          "status": "valid"
        },
        "warmup_coverage": {
          "actual": 99,
          "detail": "分析起始日前的独立交易日数。",
          "required": 90,
          "status": "valid"
        }
      },
      "historical_result_classification": "exploratory",
      "label": "降级",
      "reasons": [
        "AkShare 历史结果明确标记为探索性：强赎与历史元数据并非完整时点快照。"
      ],
      "status": "degraded",
      "usable_for_live_trading": false
    }
  },
  "rebalance": {
    "as_of": "2026-07-16",
    "is_rebalance_day": false,
    "items": [
      {
        "action": "BUY",
        "as_of": "2026-07-16",
        "bond_code": "127111",
        "bond_name": "金威转债",
        "composite_score": 0.6654385964912282,
        "current_quantity": 0,
        "current_weight": 0.0,
        "delta_quantity": 370,
        "estimated_target_value": 47915.0,
        "rank": 12.0,
        "reason": "进入 TOP20，建议按目标权重调入",
        "reference_price": 129.5,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 370,
        "target_weight": 0.05
      },
      {
        "action": "SELL",
        "as_of": "2026-07-16",
        "bond_code": "111017",
        "bond_name": "蓝天转债",
        "composite_score": null,
        "current_quantity": 370,
        "current_weight": 0.0497227847747631,
        "delta_quantity": -370,
        "estimated_target_value": 0.0,
        "rank": null,
        "reason": "不在最新可投资池，建议退出",
        "reference_price": 130.175,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 0,
        "target_weight": 0.0
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "113070",
        "bond_name": "渝水转债",
        "composite_score": 0.8189473684210528,
        "current_quantity": 370,
        "current_weight": 0.0487174429692922,
        "delta_quantity": 0,
        "estimated_target_value": 47190.91,
        "rank": 1.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 127.543,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 370,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "113052",
        "bond_name": "兴业转债",
        "composite_score": 0.8092982456140351,
        "current_quantity": 410,
        "current_weight": 0.0497359059182236,
        "delta_quantity": 0,
        "estimated_target_value": 48177.46,
        "rank": 2.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 117.506,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 410,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "110081",
        "bond_name": "闻泰转债",
        "composite_score": 0.8040350877192983,
        "current_quantity": 420,
        "current_weight": 0.0469118559414573,
        "delta_quantity": 20,
        "estimated_target_value": 47605.8,
        "rank": 3.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 108.195,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 440,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "127089",
        "bond_name": "晶澳转债",
        "composite_score": 0.7997368421052633,
        "current_quantity": 380,
        "current_weight": 0.0484088638196646,
        "delta_quantity": 10,
        "estimated_target_value": 48126.0,
        "rank": 4.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 123.4,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 390,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "113062",
        "bond_name": "常银转债",
        "composite_score": 0.7976315789473685,
        "current_quantity": 370,
        "current_weight": 0.0495612119845981,
        "delta_quantity": 0,
        "estimated_target_value": 48008.240000000005,
        "rank": 5.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 129.752,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 370,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "113056",
        "bond_name": "重银转债",
        "composite_score": 0.7839473684210527,
        "current_quantity": 380,
        "current_weight": 0.0499407650612837,
        "delta_quantity": 0,
        "estimated_target_value": 48375.9,
        "rank": 6.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 127.305,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 380,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "127049",
        "bond_name": "希望转2",
        "composite_score": 0.750263157894737,
        "current_quantity": 420,
        "current_weight": 0.0495025333225767,
        "delta_quantity": 0,
        "estimated_target_value": 47951.4,
        "rank": 7.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 114.17,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 420,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "110092",
        "bond_name": "三房转债",
        "composite_score": 0.7121052631578949,
        "current_quantity": 640,
        "current_weight": 0.0519015036745373,
        "delta_quantity": -30,
        "estimated_target_value": 47918.55,
        "rank": 8.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 78.555,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 610,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "113067",
        "bond_name": "燃23转债",
        "composite_score": 0.7119298245614035,
        "current_quantity": 380,
        "current_weight": 0.050654736958786,
        "delta_quantity": -10,
        "estimated_target_value": 47776.25,
        "rank": 9.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 129.125,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 370,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "118031",
        "bond_name": "天23转债",
        "composite_score": 0.7047368421052632,
        "current_quantity": 390,
        "current_weight": 0.0497926953833502,
        "delta_quantity": 0,
        "estimated_target_value": 48232.47,
        "rank": 10.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 123.673,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 390,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "127061",
        "bond_name": "美锦转债",
        "composite_score": 0.6914912280701756,
        "current_quantity": 490,
        "current_weight": 0.0502021246120221,
        "delta_quantity": -10,
        "estimated_target_value": 47636.64,
        "rank": 11.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 99.243,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 480,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "118027",
        "bond_name": "宏图转债",
        "composite_score": 0.6508771929824562,
        "current_quantity": 520,
        "current_weight": 0.0466599423751929,
        "delta_quantity": 30,
        "estimated_target_value": 47805.45,
        "rank": 14.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 86.919,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 550,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "127083",
        "bond_name": "山路转债",
        "composite_score": 0.637982456140351,
        "current_quantity": 400,
        "current_weight": 0.0492995736998917,
        "delta_quantity": 0,
        "estimated_target_value": 47754.8,
        "rank": 17.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 119.387,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 400,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "127108",
        "bond_name": "太能转债",
        "composite_score": 0.6264912280701755,
        "current_quantity": 380,
        "current_weight": 0.0493774333883093,
        "delta_quantity": 0,
        "estimated_target_value": 47830.22,
        "rank": 19.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 125.869,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 380,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "111015",
        "bond_name": "东亚转债",
        "composite_score": 0.6219298245614034,
        "current_quantity": 380,
        "current_weight": 0.0497658027171705,
        "delta_quantity": 0,
        "estimated_target_value": 48206.42,
        "rank": 20.0,
        "reason": "位于 TOP20，继续持有并调整至目标权重",
        "reference_price": 126.859,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 380,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "118034",
        "bond_name": "晶能转债",
        "composite_score": 0.5964035087719299,
        "current_quantity": 400,
        "current_weight": 0.0485476113948878,
        "delta_quantity": 10,
        "estimated_target_value": 48202.06,
        "rank": 25.0,
        "reason": "排名 21-40，按缓冲规则继续持有",
        "reference_price": 117.566,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 410,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "123216",
        "bond_name": "科顺转债",
        "composite_score": 0.5935964912280702,
        "current_quantity": 380,
        "current_weight": 0.0492558227903831,
        "delta_quantity": 0,
        "estimated_target_value": 47712.42,
        "rank": 26.0,
        "reason": "排名 21-40，按缓冲规则继续持有",
        "reference_price": 125.559,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 380,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "110093",
        "bond_name": "神马转债",
        "composite_score": 0.570263157894737,
        "current_quantity": 400,
        "current_weight": 0.0500114809013342,
        "delta_quantity": -10,
        "estimated_target_value": 47233.29,
        "rank": 29.0,
        "reason": "排名 21-40，按缓冲规则继续持有",
        "reference_price": 121.111,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 390,
        "target_weight": 0.05
      },
      {
        "action": "HOLD",
        "as_of": "2026-07-16",
        "bond_code": "118024",
        "bond_name": "冠宇转债",
        "composite_score": 0.550701754385965,
        "current_quantity": 370,
        "current_weight": 0.0486670230915102,
        "delta_quantity": 10,
        "estimated_target_value": 48416.18,
        "rank": 31.0,
        "reason": "排名 21-40，按缓冲规则继续持有",
        "reference_price": 127.411,
        "sizing_basis": "signal_close_estimate",
        "target_quantity": 380,
        "target_weight": 0.05
      }
    ],
    "mode": "preview",
    "summary": {
      "buy_count": 1,
      "hold_count": 19,
      "sell_count": 1
    }
  },
  "risk": {
    "disclaimer": "仅供策略研究与投资决策辅助，不构成投资建议。",
    "live_trading_enabled": false,
    "qmt_enabled": false,
    "warnings": [
      "历史回测结果不代表未来收益，实际成交可能受停牌、涨跌停和流动性影响。",
      "手续费、滑点、税费及数据质量偏差可能使实际结果低于模拟结果。",
      "V1.0 仅用于研究与策略报告，QMT 实盘下单功能保持禁用。",
      "本报告不构成任何投资建议。",
      "AkShare 历史结果仅为探索性（exploratory）：接口和历史元数据可能不完整；强赎数据主要是当前/可见快照，不是完整历史公告序列。",
      "回测以信号后下一交易日开盘价模拟成交，未模拟涨跌停、暂停交易和大额冲击成本。",
      "调仓建议数量按信号日收盘价和期末模拟资产估算，仅供研究展示，不会触发委托。",
      "本次结果质量为 降级；AkShare 历史结果明确标记为探索性：强赎与历史元数据并非完整时点快照。",
      "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.",
      "bond_cb_redeem_jsl exposes no announcement/effective-date column; returned statuses are dated at as_of as current snapshots and must not be treated as historical notices",
      "The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.",
      "AKShare bond valuation warning(s) for 2 security(s): 118071: bond_zh_hs_cov_daily failed ('date'); using close-only value-analysis fallback with zero volume/amount | 118072: bond_zh_hs_cov_daily failed ('date'); using close-only value-analysis fallback with zero volume/amount"
    ]
  },
  "schema_version": "cbquant.site-snapshot.v1",
  "series": {
    "equity": [
      {
        "cumulative_return": 0.0,
        "date": "2026-04-01",
        "drawdown": 0.0,
        "equity": 1000000.0,
        "net_value": 1.0,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0,
        "date": "2026-04-02",
        "drawdown": 0.0,
        "equity": 1000000.0,
        "net_value": 1.0,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0,
        "date": "2026-04-03",
        "drawdown": 0.0,
        "equity": 1000000.0,
        "net_value": 1.0,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0022724383936287,
        "date": "2026-04-07",
        "drawdown": 0.0,
        "equity": 1002272.4383936288,
        "net_value": 1.0022724383936288,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0184001383936289,
        "date": "2026-04-08",
        "drawdown": 0.0,
        "equity": 1018400.138393629,
        "net_value": 1.018400138393629,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.012189098393629,
        "date": "2026-04-09",
        "drawdown": -0.00609882085228,
        "equity": 1012189.098393629,
        "net_value": 1.012189098393629,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0075873183936288,
        "date": "2026-04-10",
        "drawdown": -0.0106174573159973,
        "equity": 1007587.3183936288,
        "net_value": 1.0075873183936288,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0042230958885391,
        "date": "2026-04-13",
        "drawdown": -0.0139208960904619,
        "equity": 1004223.0958885392,
        "net_value": 1.0042230958885392,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0095578458885392,
        "date": "2026-04-14",
        "drawdown": -0.0086825327017699,
        "equity": 1009557.8458885392,
        "net_value": 1.0095578458885393,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0092837558885394,
        "date": "2026-04-15",
        "drawdown": -0.0089516705285108,
        "equity": 1009283.7558885394,
        "net_value": 1.0092837558885397,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0140841558885393,
        "date": "2026-04-16",
        "drawdown": -0.0042380026694589,
        "equity": 1014084.1558885394,
        "net_value": 1.0140841558885394,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0157446258885394,
        "date": "2026-04-17",
        "drawdown": -0.0026075335273209,
        "equity": 1015744.6258885394,
        "net_value": 1.0157446258885394,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0120102252243929,
        "date": "2026-04-20",
        "drawdown": -0.0062744621964753,
        "equity": 1012010.225224393,
        "net_value": 1.012010225224393,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0077664352243929,
        "date": "2026-04-21",
        "drawdown": -0.0104415767126752,
        "equity": 1007766.4352243928,
        "net_value": 1.007766435224393,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0085474152243929,
        "date": "2026-04-22",
        "drawdown": -0.0096747072175159,
        "equity": 1008547.4152243928,
        "net_value": 1.008547415224393,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0057587352243928,
        "date": "2026-04-23",
        "drawdown": -0.0124130022106792,
        "equity": 1005758.7352243928,
        "net_value": 1.0057587352243929,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0046861452243929,
        "date": "2026-04-24",
        "drawdown": -0.0134662129866437,
        "equity": 1004686.1452243928,
        "net_value": 1.004686145224393,
        "valuation_complete": true
      },
      {
        "cumulative_return": 0.0035004012882029,
        "date": "2026-04-27",
        "drawdown": -0.0146305332685128,
        "equity": 1003500.401288203,
        "net_value": 1.003500401288203,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0017876387117971,
        "date": "2026-04-28",
        "drawdown": -0.0198230305990229,
        "equity": 998212.3612882028,
        "net_value": 0.9982123612882028,
        "valuation_complete": true
      },
      {
        "cumulative_return": 6.586128820296189e-05,
        "date": "2026-04-29",
        "drawdown": -0.0180030190631608,
        "equity": 1000065.8612882028,
        "net_value": 1.000065861288203,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0098525887117968,
        "date": "2026-04-30",
        "drawdown": -0.0277422655794118,
        "equity": 990147.4112882032,
        "net_value": 0.9901474112882032,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.020106543440735,
        "date": "2026-05-06",
        "drawdown": -0.0378109550290345,
        "equity": 979893.4565592648,
        "net_value": 0.979893456559265,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.021970963440735,
        "date": "2026-05-07",
        "drawdown": -0.0396416892657175,
        "equity": 978029.036559265,
        "net_value": 0.978029036559265,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0218362734407352,
        "date": "2026-05-08",
        "drawdown": -0.0395094328029365,
        "equity": 978163.7265592648,
        "net_value": 0.9781637265592648,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.023858730046299,
        "date": "2026-05-11",
        "drawdown": -0.0414953482887237,
        "equity": 976141.269953701,
        "net_value": 0.976141269953701,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0355088400462991,
        "date": "2026-05-12",
        "drawdown": -0.0529349677082343,
        "equity": 964491.1599537008,
        "net_value": 0.9644911599537008,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.032892030046299,
        "date": "2026-05-13",
        "drawdown": -0.0503654374211236,
        "equity": 967107.969953701,
        "net_value": 0.967107969953701,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.037548580046299,
        "date": "2026-05-14",
        "drawdown": -0.0549378543174381,
        "equity": 962451.419953701,
        "net_value": 0.962451419953701,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0451303800462991,
        "date": "2026-05-15",
        "drawdown": -0.0623826687024392,
        "equity": 954869.6199537008,
        "net_value": 0.9548696199537008,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0512202008640652,
        "date": "2026-05-18",
        "drawdown": -0.0683624605231394,
        "equity": 948779.7991359348,
        "net_value": 0.9487797991359348,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0406729908640652,
        "date": "2026-05-19",
        "drawdown": -0.0580058142478977,
        "equity": 959327.0091359348,
        "net_value": 0.9593270091359348,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0447277208640651,
        "date": "2026-05-20",
        "drawdown": -0.0619872846416427,
        "equity": 955272.2791359348,
        "net_value": 0.9552722791359348,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0522925608640648,
        "date": "2026-05-21",
        "drawdown": -0.0694154454546724,
        "equity": 947707.4391359352,
        "net_value": 0.9477074391359352,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0533483408640651,
        "date": "2026-05-22",
        "drawdown": -0.0704521499485127,
        "equity": 946651.6591359348,
        "net_value": 0.9466516591359349,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0547643837259996,
        "date": "2026-05-25",
        "drawdown": -0.0718426081864388,
        "equity": 945235.6162740004,
        "net_value": 0.9452356162740004,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0637662537259997,
        "date": "2026-05-26",
        "drawdown": -0.0806818351863479,
        "equity": 936233.7462740004,
        "net_value": 0.9362337462740002,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0723027337259994,
        "date": "2026-05-27",
        "drawdown": -0.0890640807086873,
        "equity": 927697.2662740004,
        "net_value": 0.9276972662740004,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0624746037259993,
        "date": "2026-05-28",
        "drawdown": -0.0794135223186398,
        "equity": 937525.3962740006,
        "net_value": 0.9375253962740008,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0581954337259998,
        "date": "2026-05-29",
        "drawdown": -0.0752116670373265,
        "equity": 941804.566274,
        "net_value": 0.941804566274,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0456336040528829,
        "date": "2026-06-01",
        "drawdown": -0.0628768006134754,
        "equity": 954366.395947117,
        "net_value": 0.954366395947117,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0440396940528831,
        "date": "2026-06-02",
        "drawdown": -0.061311688885865,
        "equity": 955960.3059471168,
        "net_value": 0.9559603059471168,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.048308024052883,
        "date": "2026-06-03",
        "drawdown": -0.0655029000209426,
        "equity": 951691.975947117,
        "net_value": 0.951691975947117,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0571445740528832,
        "date": "2026-06-04",
        "drawdown": -0.074179793971427,
        "equity": 942855.4259471168,
        "net_value": 0.9428554259471168,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0548498640528831,
        "date": "2026-06-05",
        "drawdown": -0.0719265440812417,
        "equity": 945150.1359471168,
        "net_value": 0.9451501359471168,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.057455505665201,
        "date": "2026-06-08",
        "drawdown": -0.0744851077676411,
        "equity": 942544.4943347988,
        "net_value": 0.9425444943347988,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0543743456652008,
        "date": "2026-06-09",
        "drawdown": -0.0714596172125628,
        "equity": 945625.6543347992,
        "net_value": 0.9456256543347992,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0578783456652008,
        "date": "2026-06-10",
        "drawdown": -0.0749003080254363,
        "equity": 942121.6543347992,
        "net_value": 0.9421216543347992,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0567485256652009,
        "date": "2026-06-11",
        "drawdown": -0.0737909012633928,
        "equity": 943251.4743347992,
        "net_value": 0.9432514743347992,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0501826956652011,
        "date": "2026-06-12",
        "drawdown": -0.0673437006469864,
        "equity": 949817.3043347988,
        "net_value": 0.9498173043347988,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0462123692996141,
        "date": "2026-06-15",
        "drawdown": -0.06344510890892,
        "equity": 953787.630700386,
        "net_value": 0.953787630700386,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.040422299299614,
        "date": "2026-06-16",
        "drawdown": -0.0577596521010164,
        "equity": 959577.700700386,
        "net_value": 0.959577700700386,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0359791992996139,
        "date": "2026-06-17",
        "drawdown": -0.0533968286561882,
        "equity": 964020.800700386,
        "net_value": 0.964020800700386,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0464648192996141,
        "date": "2026-06-18",
        "drawdown": -0.063692997720481,
        "equity": 953535.180700386,
        "net_value": 0.953535180700386,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0503620041977446,
        "date": "2026-06-22",
        "drawdown": -0.0675197694884797,
        "equity": 949637.9958022552,
        "net_value": 0.9496379958022554,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0529710841977445,
        "date": "2026-06-23",
        "drawdown": -0.0700817094388368,
        "equity": 947028.9158022556,
        "net_value": 0.9470289158022556,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0616492741977445,
        "date": "2026-06-24",
        "drawdown": -0.0786031045887712,
        "equity": 938350.7258022554,
        "net_value": 0.9383507258022554,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0729105541977446,
        "date": "2026-06-25",
        "drawdown": -0.0896609192683361,
        "equity": 927089.4458022554,
        "net_value": 0.9270894458022554,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0749116441977444,
        "date": "2026-06-26",
        "drawdown": -0.0916258541937735,
        "equity": 925088.3558022556,
        "net_value": 0.9250883558022556,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0690841769420775,
        "date": "2026-06-29",
        "drawdown": -0.0859036758122399,
        "equity": 930915.8230579224,
        "net_value": 0.9309158230579224,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0659604769420775,
        "date": "2026-06-30",
        "drawdown": -0.0828364138567111,
        "equity": 934039.5230579224,
        "net_value": 0.9340395230579224,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0572090769420772,
        "date": "2026-07-01",
        "drawdown": -0.0742431314423899,
        "equity": 942790.9230579227,
        "net_value": 0.9427909230579228,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0539125569420776,
        "date": "2026-07-02",
        "drawdown": -0.0710061719451146,
        "equity": 946087.4430579224,
        "net_value": 0.9460874430579224,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0456051369420774,
        "date": "2026-07-03",
        "drawdown": -0.0628488478376142,
        "equity": 954394.8630579226,
        "net_value": 0.9543948630579224,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.042466426645277,
        "date": "2026-07-06",
        "drawdown": -0.0597668467866802,
        "equity": 957533.573354723,
        "net_value": 0.957533573354723,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.049779116645277,
        "date": "2026-07-07",
        "drawdown": -0.0669474133678422,
        "equity": 950220.883354723,
        "net_value": 0.950220883354723,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0470063166452768,
        "date": "2026-07-08",
        "drawdown": -0.0642247114597555,
        "equity": 952993.6833547232,
        "net_value": 0.9529936833547232,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0491295966452767,
        "date": "2026-07-09",
        "drawdown": -0.066309628694104,
        "equity": 950870.4033547232,
        "net_value": 0.9508704033547232,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0390185866452769,
        "date": "2026-07-10",
        "drawdown": -0.0563813012923143,
        "equity": 960981.4133547232,
        "net_value": 0.9609814133547232,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0427781430782895,
        "date": "2026-07-13",
        "drawdown": -0.0600729312236917,
        "equity": 957221.8569217104,
        "net_value": 0.9572218569217104,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0376250930782895,
        "date": "2026-07-14",
        "drawdown": -0.0550129849356558,
        "equity": 962374.9069217104,
        "net_value": 0.9623749069217103,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0319820230782897,
        "date": "2026-07-15",
        "drawdown": -0.0494718721772652,
        "equity": 968017.9769217102,
        "net_value": 0.9680179769217102,
        "valuation_complete": true
      },
      {
        "cumulative_return": -0.0313344230782894,
        "date": "2026-07-16",
        "drawdown": -0.0488359728135614,
        "equity": 968665.5769217104,
        "net_value": 0.9686655769217104,
        "valuation_complete": true
      }
    ]
  },
  "snapshot_id": "20260717T041437Z-43697f161568",
  "source": {
    "historical_result_classification": "exploratory",
    "is_demo": false,
    "provider": "akshare"
  },
  "strategy": {
    "analysis_frequency": "daily",
    "live_trading_enabled": false,
    "mode": "research_only",
    "name": "可转债低风险多因子策略 V1.0 MVP",
    "rebalance_frequency": "W-FRI",
    "version": "1.0"
  },
  "top20": {
    "as_of": "2026-07-16",
    "eligible_universe_count": 95,
    "items": [
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 53354755.7125,
        "bond_code": "113070",
        "bond_name": "渝水转债",
        "close": 127.543,
        "composite_score": 0.8189473684210528,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.5789473684210527,
          "risk": 0.9157894736842104,
          "trend": 0.7894736842105263,
          "value": 0.8736842105263157
        },
        "rank": 1,
        "rating": "AAA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1638,
        "stock_code": "601158",
        "valuation": {
          "conversion_premium_pct": 44.71225,
          "double_low": 172.25525,
          "ytm_pct": -5.280342274837846
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 416261154.5735,
        "bond_code": "113052",
        "bond_name": "兴业转债",
        "close": 117.506,
        "composite_score": 0.8092982456140351,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.9578947368421052,
          "risk": 0.968421052631579,
          "trend": 0.8473684210526315,
          "value": 0.7017543859649122
        },
        "rank": 2,
        "rating": "AAA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 529,
        "stock_code": "601166",
        "valuation": {
          "conversion_premium_pct": 33.9408708947,
          "double_low": 151.4468708947,
          "ytm_pct": -10.540434354120633
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 1171720840.9375,
        "bond_code": "110081",
        "bond_name": "闻泰转债",
        "close": 108.195,
        "composite_score": 0.8040350877192983,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 1.0,
          "risk": 0.1263157894736842,
          "trend": 1.0,
          "value": 0.8701754385964913
        },
        "rank": 3,
        "rating": "BBB+",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 377,
        "stock_code": "600745",
        "valuation": {
          "conversion_premium_pct": 5.6066028708,
          "double_low": 113.8016028708,
          "ytm_pct": -7.347114744715666
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 169410268.2097,
        "bond_code": "127089",
        "bond_name": "晶澳转债",
        "close": 123.4,
        "composite_score": 0.7997368421052633,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.8842105263157894,
          "risk": 0.7631578947368421,
          "trend": 0.7105263157894737,
          "value": 0.8210526315789474
        },
        "rank": 4,
        "rating": "AA+sti",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1098,
        "stock_code": "002459",
        "valuation": {
          "conversion_premium_pct": 54.6845070423,
          "double_low": 178.0845070423,
          "ytm_pct": -6.755336250714472
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 141237975.553,
        "bond_code": "113062",
        "bond_name": "常银转债",
        "close": 129.752,
        "composite_score": 0.7976315789473685,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.8421052631578947,
          "risk": 0.9947368421052633,
          "trend": 0.8473684210526315,
          "value": 0.7052631578947368
        },
        "rank": 5,
        "rating": "AAA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 792,
        "stock_code": "601128",
        "valuation": {
          "conversion_premium_pct": 9.1663461538,
          "double_low": 138.9183461538,
          "ytm_pct": -11.318157287434028
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 187900888.941,
        "bond_code": "113056",
        "bond_name": "重银转债",
        "close": 127.305,
        "composite_score": 0.7839473684210527,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.9157894736842104,
          "risk": 0.9842105263157894,
          "trend": 0.8105263157894737,
          "value": 0.6736842105263158
        },
        "rank": 6,
        "rating": "AAA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 616,
        "stock_code": "601963",
        "valuation": {
          "conversion_premium_pct": 11.3616793169,
          "double_low": 138.6666793169,
          "ytm_pct": -13.337121652214146
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 169829318.05119997,
        "bond_code": "127049",
        "bond_name": "希望转2",
        "close": 114.17,
        "composite_score": 0.750263157894737,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.8947368421052632,
          "risk": 0.7947368421052632,
          "trend": 0.8526315789473684,
          "value": 0.6526315789473685
        },
        "rank": 7,
        "rating": "AAA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 474,
        "stock_code": "000876",
        "valuation": {
          "conversion_premium_pct": 65.6246986301,
          "double_low": 179.79469863010002,
          "ytm_pct": -9.707396346784126
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 596548299.425,
        "bond_code": "110092",
        "bond_name": "三房转债",
        "close": 78.555,
        "composite_score": 0.7121052631578949,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.968421052631579,
          "risk": 0.0105263157894736,
          "trend": 0.4052631578947368,
          "value": 0.968421052631579
        },
        "rank": 8,
        "rating": "A-",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 905,
        "stock_code": "600370",
        "valuation": {
          "conversion_premium_pct": 29.6372131148,
          "double_low": 108.1922131148,
          "ytm_pct": 10.231803861579516
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 60220213.2225,
        "bond_code": "113067",
        "bond_name": "燃23转债",
        "close": 129.125,
        "composite_score": 0.7119298245614035,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.631578947368421,
          "risk": 0.631578947368421,
          "trend": 0.7526315789473683,
          "value": 0.743859649122807
        },
        "rank": 9,
        "rating": "AAA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1107,
        "stock_code": "601139",
        "valuation": {
          "conversion_premium_pct": 51.0282714055,
          "double_low": 180.1532714055,
          "ytm_pct": -8.087917463107154
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 118816604.8545,
        "bond_code": "118031",
        "bond_name": "天23转债",
        "close": 123.673,
        "composite_score": 0.7047368421052632,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.8210526315789474,
          "risk": 0.8105263157894737,
          "trend": 0.5894736842105264,
          "value": 0.6842105263157895
        },
        "rank": 10,
        "rating": "AA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 943,
        "stock_code": "688599",
        "valuation": {
          "conversion_premium_pct": 62.4604269294,
          "double_low": 186.1334269294,
          "ytm_pct": -7.900053292426568
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 104147471.61885,
        "bond_code": "127061",
        "bond_name": "美锦转债",
        "close": 99.243,
        "composite_score": 0.6914912280701756,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.7894736842105263,
          "risk": 0.0684210526315789,
          "trend": 0.5157894736842105,
          "value": 0.9192982456140352
        },
        "rank": 11,
        "rating": "A",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 644,
        "stock_code": "000723",
        "valuation": {
          "conversion_premium_pct": 51.3096173913,
          "double_low": 150.5526173913,
          "ytm_pct": 0.4319022138821848
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 59956476.9349,
        "bond_code": "127111",
        "bond_name": "金威转债",
        "close": 129.5,
        "composite_score": 0.6654385964912282,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.6210526315789474,
          "risk": 0.5052631578947369,
          "trend": 0.5526315789473685,
          "value": 0.7719298245614036
        },
        "rank": 12,
        "rating": "AA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1861,
        "stock_code": "002626",
        "valuation": {
          "conversion_premium_pct": 62.957704918,
          "double_low": 192.457704918,
          "ytm_pct": -4.947110485481687
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 48882911.60349999,
        "bond_code": "113682",
        "bond_name": "益丰转债",
        "close": 129.625,
        "composite_score": 0.6626315789473686,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.5157894736842106,
          "risk": 0.7157894736842105,
          "trend": 0.9421052631578948,
          "value": 0.5789473684210527
        },
        "rank": 13,
        "rating": "AA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1327,
        "stock_code": "603939",
        "valuation": {
          "conversion_premium_pct": 90.1731217919,
          "double_low": 219.7981217919,
          "ytm_pct": -6.892859370986704
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 186254530.102,
        "bond_code": "118027",
        "bond_name": "宏图转债",
        "close": 86.919,
        "composite_score": 0.6508771929824562,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.9052631578947368,
          "risk": 0.0421052631578947,
          "trend": 0.1052631578947368,
          "value": 0.975438596491228
        },
        "rank": 14,
        "rating": "B-",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 866,
        "stock_code": "688066",
        "valuation": {
          "conversion_premium_pct": 14.037728,
          "double_low": 100.956728,
          "ytm_pct": 6.09120587507932
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 607943198.904,
        "bond_code": "113632",
        "bond_name": "鹤21转债",
        "close": 104.46,
        "composite_score": 0.6460526315789474,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.9789473684210528,
          "risk": 0.0368421052631579,
          "trend": 0.0210526315789473,
          "value": 0.9789473684210526
        },
        "rank": 15,
        "rating": "AA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 489,
        "stock_code": "603733",
        "valuation": {
          "conversion_premium_pct": 0.2399475341,
          "double_low": 104.6999475341,
          "ytm_pct": -3.206629539162631
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 846848587.3134999,
        "bond_code": "118040",
        "bond_name": "宏微转债",
        "close": 102.586,
        "composite_score": 0.6386842105263159,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.9894736842105264,
          "risk": 0.0263157894736842,
          "trend": 0.0105263157894736,
          "value": 0.968421052631579
        },
        "rank": 16,
        "rating": "A",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1105,
        "stock_code": "688711",
        "valuation": {
          "conversion_premium_pct": 5.8916314265,
          "double_low": 108.4776314265,
          "ytm_pct": -0.8403677277323829
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 56568480.25385,
        "bond_code": "127083",
        "bond_name": "山路转债",
        "close": 119.387,
        "composite_score": 0.637982456140351,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.6,
          "risk": 0.7526315789473684,
          "trend": 0.3947368421052631,
          "value": 0.712280701754386
        },
        "rank": 17,
        "rating": "AAA",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 982,
        "stock_code": "000498",
        "valuation": {
          "conversion_premium_pct": 75.0694743083,
          "double_low": 194.4564743083,
          "ytm_pct": -6.378366741081676
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 94303284.20545,
        "bond_code": "127105",
        "bond_name": "龙星转债",
        "close": 128.561,
        "composite_score": 0.6292105263157896,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.7684210526315789,
          "risk": 0.2263157894736842,
          "trend": 0.4263157894736842,
          "value": 0.7894736842105264
        },
        "rank": 18,
        "rating": "AA-",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1296,
        "stock_code": "002442",
        "valuation": {
          "conversion_premium_pct": 55.6688517745,
          "double_low": 184.2298517745,
          "ytm_pct": -6.83562307326
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 79433449.94455001,
        "bond_code": "127108",
        "bond_name": "太能转债",
        "close": 125.869,
        "composite_score": 0.6264912280701755,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.7263157894736842,
          "risk": 0.3157894736842105,
          "trend": 0.3157894736842105,
          "value": 0.8140350877192982
        },
        "rank": 19,
        "rating": "AA+",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1716,
        "stock_code": "000591",
        "valuation": {
          "conversion_premium_pct": 59.9344633028,
          "double_low": 185.8034633028,
          "ytm_pct": -4.77909117726385
        }
      },
      {
        "as_of": "2026-07-16",
        "average_amount_cny": 57704826.9685,
        "bond_code": "111015",
        "bond_name": "东亚转债",
        "close": 126.859,
        "composite_score": 0.6219298245614034,
        "factor_scores": {
          "coverage": 1.0,
          "liquidity": 0.6105263157894737,
          "risk": 0.3473684210526315,
          "trend": 0.5578947368421052,
          "value": 0.7333333333333334
        },
        "rank": 20,
        "rating": "A+",
        "redeem_status": null,
        "redeem_status_source": "historical",
        "remaining_days": 1086,
        "stock_code": "605177",
        "valuation": {
          "conversion_premium_pct": 56.9676949359,
          "double_low": 183.8266949359,
          "ytm_pct": -7.689656001783152
        }
      }
    ]
  }
}
