Skip to main content

pull_all_market_status

Function pull_all_market_status 

Source
pub async fn pull_all_market_status(
    backend: &BackendConn,
) -> Result<Vec<MarketStatus>>
Expand description

v1.4.48 修:CMD 6823 返回全市场子交易所列表(~100+ 条),一次查询即可拿所有市场 状态。旧版 (v1.4.47) 8 次查询 + 盲取 statuses[0] 导致误读市场状态。

参考 C++ market_tradingDay.proto::MarketID enum:

  • 1-4: HK 股票 (主板/创业板/纳斯达克/扩展板)
  • 5-6: HK Future (old / new)
  • 7-8: HK Option
  • 10-29: US 股票 (NYSE, NASDAQ, AMEX, …)
  • 30-40: CN A 股 (SH / SZ)
  • 41-45: US Option
  • 60-109: US Future (NYMEX=60, COMEX=70, CBOT 80-84, CME 90-99, CBOE 100-109)
  • 110-119: HK Future 扩展
  • 120-123: Forex
  • 130-159: Bonds
  • 50-51: Stock Connect (港股通 / A股通) — v1.4.49 加
  • 60-109: US Future (NYMEX, COMEX, CBOT, CME, CBOE)
  • 110-119: HK Future 扩展
  • 120-123: Forex
  • 130-159: Bonds — v1.4.49 加
  • 160-179: SGX Future
  • 180-184: SGX Market (新加坡股票) — v1.4.49 加
  • 185-194: JPX Future
  • 260-359: Global Index — v1.4.49 加
  • 360-459: Digital Currency — v1.4.49 加
  • 460-559: Treasury Yield — v1.4.49 加
  • 560-569: Fund — v1.4.50 加(NN_QuoteMktID_FUND_*
  • 570-579: HK Index Option 扩展 — v1.4.50 加入 HKOption
  • 830-849: JP TSE 股票 — v1.4.111 加(C++ NN_QuoteMktID_JP_TSE_*
  • 1000-1049: HK HSI Index — v1.4.50 加入 HK(C++ 源码确认归 HK 市场)
  • 1200-1249: US New VIX — v1.4.50 加入 US(C++ 源码确认归 US 市场)
  • 1350-1399: MY 股票 — v1.4.111 加(C++ NN_QuoteMktID_MY_Security_*

v1.4.48 新:一次 CMD 6823 query 拿全市场状态 snapshot,避免重复 8 次查询。

v1.4.55 修正(同事反馈 market_hkfuture: NONE 即使夜盘交易中): backend 对 CMD 6823 在 reserved=HK 时返的 snapshot 不含期货市场 (HK 主板 / 港股通 / US / CN / Bond 等都在,但 HK/US/SG/JP 期货 market_id 缺席)。 真机实测 v1.4.48 一次 snapshot 里 market_hk/us/sh/sz 都能填,但 market_hk_future / market_us_future / market_sg_future / market_jp_future 全是 NONE

修法:并发发 5 个 CMD 6823(HK / HKFuture / USFuture / SGFuture / JPFuture),合并结果按 market_id 去重。backend 对 reserved=HKFuture 等 期货 market type 会下发对应 market_id ∈ {5, 6, 110-119} (HK) / 60-109 (US) / 160-179 (SG) 的状态条目,合并后 pick_market_state(HKFuture) 就能命中。

代价:5 个并发请求而非 1 个(~5x backend load),但 CMD 6823 是轻量 snapshot, 实测每次 ~10-20ms,合计 <100ms 仍在可接受范围(global_state 不是高频 API)。