# QuantSonar

> China A-share market data for research, backtesting and AI agents via MCP.

- name: io.github.QuantSonar/quantsonar
- version: 1.0.0
- connection class: R1 (autonomous)
- trust: 77/100 flags: no-repository
- quality: 77/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.QuantSonar%2Fquantsonar
- tools: https://api.protogrid.dev/v1/servers/io.github.QuantSonar%2Fquantsonar/tools

**An agent can connect on its own if it already holds `X_API_KEY`, `X_API_KEY`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "quantsonar": {
      "type": "http",
      "url": "https://quantsonar.com/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}",
        "Authorization": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`, `${X_API_KEY}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 45
- drivers: +website +reachable +uptime-100% ~updated-73d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 77/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 57 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: top_list (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); holder_trade (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); basic (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- warn `tools.token_cost`: about 11,881 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 45, about 11,881 tokens to load them all
- tool set hash: bbd08eab6499a5e567dd188922cc7caf
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.QuantSonar/quantsonar.svg)](https://protogrid.dev/servers/io.github.QuantSonar/quantsonar)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://quantsonar.com/mcp (streamable-http, auth api_key ${X_API_KEY}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (45)

- `adj_factor`: 复权因子（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, adj_factor
- `analyst_reports`: 券商研报盈利预测（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, name, report_date, report_title, report_type, classify, org_name, author_name, quarter, op_rt, op_pr, tp, np, eps, pe, rd, roe, ev_ebitda, rating, max_price, min_price, imp_dg, create_time
- `audit`: 财务审计意见（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    period: 报告期 YYYYMMDD（如 20251231 = 2025 年报）
    ann_date: 公告日期 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, ann_date, end_date, audit_result, audit_fees, audit_agency, audit_sign
- `balance_sheet`: 资产负债表（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    period: 报告期 YYYYMMDD（如 20251231 = 2025 年报）
    ann_date: 公告日期 YYYYMMDD
    report_type: 报表类型：1 合并报表 / 6 母公司报表 …
    comp_type: 公司类型（1 一般工商业 / 2 银行 / 3 保险 / 4 证券）

Returns:
    JSON 数组；字段: symbol, ann_date, f_ann_date, end_date, report_type, comp_type, total_cur_assets, money_cap, notes_receiv, accounts_receiv, inventories, total_nca, fa_avail_for_sale, lt_eqt_invest, fix_assets, cip, intan_assets, goodwill, total_assets, total_cur_liab, st_borr, notes_payable, acct_payable, total_ncl, lt_borr, bond_payable, total_liab, total_hldr_eqy_exc_min_int, total_hldr_eqy_inc_min_int, minority_int, update_flag
- `basic`: ETF 基础信息（ETF）

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    exchange: 交易所：SSE 上交所 / SZSE 深交所
    list_status: 上市状态：L 上市 / D 退市 / P 暂停上市
    etf_type: ETF 类型，如境内、QDII
    index_code: 跟踪指数代码（带后缀）

Returns:
    JSON 数组；字段: symbol, csname, extname, cname, index_code, index_name, setup_date, list_date, list_status, exchange, mgr_name, custod_name, mgt_fee, etf_type
- `block_trade`: 大宗交易（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, price, vol, amount, buyer, seller
- `cash_flow`: 现金流量表（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    period: 报告期 YYYYMMDD（如 20251231 = 2025 年报）
    ann_date: 公告日期 YYYYMMDD
    f_ann_date: 实际公告日期 YYYYMMDD
    report_type: 报表类型：1 合并报表 / 6 母公司报表 …
    comp_type: 公司类型（1 一般工商业 / 2 银行 / 3 保险 / 4 证券）

Returns:
    JSON 数组；字段: symbol, ann_date, f_ann_date, end_date, report_type, comp_type, net_profit, c_fr_sale_sg, c_pay_goods_purch_serv_rec, n_cashflow_act, c_pay_acq_const_fix_intang_oasset, c_fr_disp_fix_intang_oasset, n_cashflow_inv_act, c_fr_borr, c_pay_dist_dpcp_int_exp, n_cash_flows_fnc_act, n_incr_cash_cash_equ, c_cash_equ_beg_period, c_cash_equ_end_period, free_cashflow, update_flag
- `concept_members`: 概念/题材板块成分股（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    con_symbol: 成分证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: trade_date, symbol, con_symbol, name
- `concepts`: 概念/题材板块指数（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）
    name: 名称精确匹配
    idx_type: 板块类型

Returns:
    JSON 数组；字段: symbol, trade_date, name, leading, leading_code, pct_change, leading_pct, total_mv, turnover_rate, up_num, down_num, idx_type, level
- `daily`: 日线行情（OHLC）（行情数据）

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, open, high, low, close, pre_close, change, pct_chg, vol, amount
- `disclosure_date`: 财报披露日历（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    pre_date: 预计披露日 YYYYMMDD
    actual_date: 实际披露日 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, ann_date, end_date, pre_date, actual_date, modify_date
- `distribution`: 筹码分布与胜率（筹码分布）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, his_low, his_high, cost_5pct, cost_15pct, cost_50pct, cost_85pct, cost_95pct, weight_avg, winner_rate
- `dividend`: 分红送股（分红送股）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    record_date: 股权登记日 YYYYMMDD
    ex_date: 除权除息日 YYYYMMDD
    imp_ann_date: 实施公告日 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, end_date, ann_date, div_proc, stk_div, stk_bo_rate, stk_co_rate, cash_div, cash_div_tax, record_date, ex_date, pay_date, div_listdate, imp_ann_date
- `etf_adj_factor`: ETF 复权因子（ETF）

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, adj_factor
- `etf_daily`: ETF 日线行情（ETF）

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, pre_close, open, high, low, close, change, pct_chg, vol, amount
- `express`: 业绩快报（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    period: 报告期 YYYYMMDD（如 20251231 = 2025 年报）

Returns:
    JSON 数组；字段: symbol, ann_date, end_date, revenue, operate_profit, total_profit, n_income, total_assets, total_hldr_eqy_exc_min_int, diluted_eps, diluted_roe, yoy_net_profit, bps, perf_summary, update_flag
- `forecast`: 业绩预告（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    period: 报告期 YYYYMMDD（如 20251231 = 2025 年报）
    type: 业绩预告类型（预增/预减/扭亏/首亏等）

Returns:
    JSON 数组；字段: symbol, ann_date, end_date, type, p_change_min, p_change_max, net_profit_min, net_profit_max, last_parent_net, first_ann_date, summary, change_reason
- `fundamentals`: 每日指标（PE/PB/换手率/市值）（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, close, turnover_rate, turnover_rate_f, volume_ratio, pe, pe_ttm, pb, ps, ps_ttm, dv_ratio, dv_ttm, total_share, float_share, free_share, total_mv, circ_mv
- `fx_daily`: 外汇日线（默认 USDCNH）（外汇）

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）；缺省 USDCNH.FXCM
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, bid_open, bid_close, bid_high, bid_low, ask_open, ask_close, ask_high, ask_low, tick_qty
- `holder_trade`: 重要股东增减持（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_type: 增减持方向：IN 增持 / DE 减持
    holder_type: 股东类型：G 高管 / P 个人 / C 公司

Returns:
    JSON 数组；字段: symbol, ann_date, holder_name, holder_type, in_de, change_vol, change_ratio, after_share, after_ratio, avg_price, total_share, begin_date, close_date
- `income`: 利润表（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    period: 报告期 YYYYMMDD（如 20251231 = 2025 年报）
    ann_date: 公告日期 YYYYMMDD
    f_ann_date: 实际公告日期 YYYYMMDD
    report_type: 报表类型：1 合并报表 / 6 母公司报表 …
    comp_type: 公司类型（1 一般工商业 / 2 银行 / 3 保险 / 4 证券）

Returns:
    JSON 数组；字段: symbol, ann_date, f_ann_date, end_date, report_type, comp_type, basic_eps, diluted_eps, total_revenue, revenue, total_cogs, oper_cost, sell_exp, admin_exp, fin_exp, rd_exp, operate_profit, non_oper_income, non_oper_exp, total_profit, income_tax, n_income, n_income_attr_p, ebit, ebitda, update_flag
- `index_daily`: 指数日线（默认上证综指）（指数）

Args:
    symbol: 指数代码（带后缀），如 000300.SH；缺省 000001.SH
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, close, open, high, low, pre_close, change, pct_chg, vol, amount
- `index_weight`: 指数成分与权重（指数）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 指数代码（带后缀），如 000300.SH
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, con_symbol, con_name, weight
- `indicators`: 财务指标（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    period: 报告期 YYYYMMDD（如 20251231 = 2025 年报）
    ann_date: 公告日期 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, ann_date, end_date, eps, dt_eps, total_revenue_ps, revenue_ps, bps, ocfps, roe, roe_waa, roe_dt, roa, gross_margin, netprofit_margin, grossprofit_margin, debt_to_assets, current_ratio, quick_ratio, cash_ratio, assets_turn, inv_turn, ar_turn, roic, basic_eps_yoy, dt_eps_yoy, netprofit_yoy, dt_netprofit_yoy, rd_exp
- `industries`: 申万行业分类（基础信息）

Args:
    symbol: 证券代码（带后缀），如 000001.SZ

Returns:
    JSON 数组；字段: symbol, name, l1_code, l1_name, l2_code, l2_name, l3_code, l3_name
- `limit_list`: 涨跌停榜单（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    limit_type: 涨跌停类型：U 涨停 / D 跌停 / Z 炸板
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: trade_date, symbol, industry, name, close, pct_chg, amount, limit_amount, float_mv, total_mv, turnover_ratio, fd_amount, first_time, last_time, open_times, up_stat, limit_times, limit
- `main_business`: 主营业务构成（财务数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    period: 报告期 YYYYMMDD（如 20251231 = 2025 年报）

Returns:
    JSON 数组；字段: symbol, end_date, bz_item, bz_sales, bz_profit, bz_cost, curr_type
- `margin`: 融资融券明细（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: trade_date, symbol, name, rzye, rqye, rzmre, rqyl, rzche, rqchl, rqmcl, rzrqye
- `moneyflow`: 个股资金流向（资金流向）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, buy_sm_vol, buy_sm_amount, sell_sm_vol, sell_sm_amount, buy_md_vol, buy_md_amount, sell_md_vol, sell_md_amount, buy_lg_vol, buy_lg_amount, sell_lg_vol, sell_lg_amount, buy_elg_vol, buy_elg_amount, sell_elg_vol, sell_elg_amount, net_mf_vol, net_mf_amount
- `moneyflow_hsgt`: 沪深港通资金流向（全市场）（资金流向）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: trade_date, ggt_ss, ggt_sz, hgt_ss, hgt_sz, north_money, south_money
- `nav`: ETF 净值（ETF）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    ann_date: 公告日期 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, ann_date, nav_date, unit_nav, accum_nav, accum_div, net_asset, total_netasset, adj_nav, update_flag
- `news_flash`: 财经快讯（实时）（实时与快讯）
实时财经快讯，三个独立来源：cls（财联社）/ jin10（金十）/ sina（新浪）。按发布时间倒序，延迟约 60 秒。
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    source: 快讯来源：cls / jin10 / sina（必填）
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    importance: 仅返回重要度 ≥ 此值的快讯（1 = 仅重要）

Returns:
    JSON 数组；字段: source, publish_time, content_cn, tags, importance, url
- `northbound_holdings`: 北向持股明细（资金流向）
披露节奏说明：港交所自 2024 年 8 月起不再每日披露北向持股明细，本接口数据为港交所定期披露口径（低频），历史每日数据完整保留。查询建议不带日期或用较宽日期范围。
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: trade_date, symbol, name, vol, ratio, exchange
- `portfolio`: ETF 持仓明细（ETF）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    con_symbol: 成分证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    ann_date: 公告日期 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, ann_date, end_date, con_symbol, mkv, amount, stk_mkv_ratio, stk_float_ratio
- `realtime`: 实时行情快照（实时与快讯）
每只证券的最新盘中快照，交易时段持续刷新；非交易时段返回上一交易日收盘快照。
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码，逗号分隔可批量（至多 200 个）；不传返回全市场

Returns:
    JSON 数组；字段: symbol, name, price, open, high, low, pre_close, volume, amount, trade_time, pct_chg
- `shareholders`: 股东户数（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    enddate: 统计截止日 YYYYMMDD
    ann_date: 公告日期 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, ann_date, end_date, holder_num
- `share_size`: ETF 份额与规模（ETF）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）
    exchange: 交易所：SSE 上交所 / SZSE 深交所

Returns:
    JSON 数组；字段: trade_date, symbol, etf_name, total_share, total_size, nav, close, exchange
- `southbound_holdings`: 南向（港股通）持股明细（资金流向）
南向持股明细为 T+1 披露：最新数据滞后一个交易日。
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: trade_date, symbol, name, vol, ratio, exchange
- `stocks`: 股票列表（基础信息）

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    name: 名称精确匹配
    market: 市场类别（主板/创业板/科创板/北交所）
    list_status: 上市状态：L 上市 / D 退市 / P 暂停上市
    exchange: 交易所：SSE 上交所 / SZSE 深交所
    is_hs: 是否沪深港通标的：N 否 / H 沪股通 / S 深股通

Returns:
    JSON 数组；字段: symbol, name, area, industry, fullname, enname, cnspell, market, exchange, curr_type, list_status, list_date, delist_date, is_hs
- `technical_factors`: 技术面因子（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, open_hfq, close_hfq, high_hfq, low_hfq, pre_close_hfq, open_qfq, close_qfq, high_qfq, low_qfq, pre_close_qfq, adj_factor, macd_dif, macd_dea, macd, kdj_k, kdj_d, kdj_j, rsi_6, rsi_12, rsi_24, boll_upper, boll_mid, boll_lower, cci
- `technical_factors_pro`: 技术面因子（专业版，含复权价+技术指标）（行情数据）
需要 Expert 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: symbol, trade_date, open, open_hfq, open_qfq, high, high_hfq, high_qfq, low, low_hfq, low_qfq, close, close_hfq, close_qfq, pre_close, change, pct_chg, vol, amount, turnover_rate, turnover_rate_f, volume_ratio, pe, pe_ttm, pb, ps, ps_ttm, dv_ratio, dv_ttm, total_share, float_share, free_share, total_mv, circ_mv, adj_factor, asi_bfq, asi_hfq, asi_qfq, asit_bfq, asit_hfq, asit_qfq, atr_bfq, atr_hfq, atr_qfq, bbi_bfq, bbi_hfq, bbi_qfq, bias1_bfq, bias1_hfq, bias1_qfq, bias2_bfq, bias2_hfq, bias2_qfq, bias3_bfq, bias3_hfq, bias3_qfq, boll_lower_bfq, boll_lower_hfq, boll_lower_qfq, boll_mid_bfq, boll_mid_hfq, boll_mid_qfq, boll_upper_bfq, boll_upper_hfq, boll_upper_qfq, brar_ar_bfq, brar_ar_hfq, brar_ar_qfq, brar_br_bfq, brar_br_hfq, brar_br_qfq, cci_bfq, cci_hfq, cci_qfq, cr_bfq, cr_hfq, cr_qfq, dfma_dif_bfq, dfma_dif_hfq, dfma_dif_qfq, dfma_difma_bfq, dfma_difma_hfq, dfma_difma_qfq, dmi_adx_bfq, dmi_adx_hfq, dmi_adx_qfq, dmi_adxr_bfq, dmi_adxr_hfq, dmi_adxr_qfq, dmi_mdi_bfq, dmi_mdi_hfq, dmi_mdi_qfq, dmi_pdi_bfq, dmi_pdi_hfq, dmi_pdi_qfq, downdays, updays, dpo_bfq, dpo_hfq, dpo_qfq, madpo_bfq, madpo_hfq, madpo_qfq, ema_bfq_10, ema_bfq_20, ema_bfq_250, ema_bfq_30, ema_bfq_5, ema_bfq_60, ema_bfq_90, ema_hfq_10, ema_hfq_20, ema_hfq_250, ema_hfq_30, ema_hfq_5, ema_hfq_60, ema_hfq_90, ema_qfq_10, ema_qfq_20, ema_qfq_250, ema_qfq_30, ema_qfq_5, ema_qfq_60, ema_qfq_90, emv_bfq, emv_hfq, emv_qfq, maemv_bfq, maemv_hfq, maemv_qfq, expma_12_bfq, expma_12_hfq, expma_12_qfq, expma_50_bfq, expma_50_hfq, expma_50_qfq, kdj_bfq, kdj_hfq, kdj_qfq, kdj_d_bfq, kdj_d_hfq, kdj_d_qfq, kdj_k_bfq, kdj_k_hfq, kdj_k_qfq, ktn_down_bfq, ktn_down_hfq, ktn_down_qfq, ktn_mid_bfq, ktn_mid_hfq, ktn_mid_qfq, ktn_upper_bfq, ktn_upper_hfq, ktn_upper_qfq, lowdays, topdays, ma_bfq_10, ma_bfq_20, ma_bfq_250, ma_bfq_30, ma_bfq_5, ma_bfq_60, ma_bfq_90, ma_hfq_10, ma_hfq_20, ma_hfq_250, ma_hfq_30, ma_hfq_5, ma_hfq_60, ma_hfq_90, ma_qfq_10, ma_qfq_20, ma_qfq_250, ma_qfq_30, ma_qfq_5, ma_qfq_60, ma_qfq_90, macd_bfq, macd_hfq, macd_qfq, macd_dea_bfq, macd_dea_hfq, macd_dea_qfq, macd_dif_bfq, macd_dif_hfq, macd_dif_qfq, mass_bfq, mass_hfq, mass_qfq, ma_mass_bfq, ma_mass_hfq, ma_mass_qfq, mfi_bfq, mfi_hfq, mfi_qfq, mtm_bfq, mtm_hfq, mtm_qfq, mtmma_bfq, mtmma_hfq, mtmma_qfq, obv_bfq, obv_hfq, obv_qfq, psy_bfq, psy_hfq, psy_qfq, psyma_bfq, psyma_hfq, psyma_qfq, roc_bfq, roc_hfq, roc_qfq, maroc_bfq, maroc_hfq, maroc_qfq, rsi_bfq_12, rsi_bfq_24, rsi_bfq_6, rsi_hfq_12, rsi_hfq_24, rsi_hfq_6, rsi_qfq_12, rsi_qfq_24, rsi_qfq_6, taq_down_bfq, taq_down_hfq, taq_down_qfq, taq_mid_bfq, taq_mid_hfq, taq_mid_qfq, taq_up_bfq, taq_up_hfq, taq_up_qfq, trix_bfq, trix_hfq, trix_qfq, trma_bfq, trma_hfq, trma_qfq, vr_bfq, vr_hfq, vr_qfq, wr_bfq, wr_hfq, wr_qfq, wr1_bfq, wr1_hfq, wr1_qfq, xsii_td1_bfq, xsii_td1_hfq, xsii_td1_qfq, xsii_td2_bfq, xsii_td2_hfq, xsii_td2_qfq, xsii_td3_bfq, xsii_td3_hfq, xsii_td3_qfq, xsii_td4_bfq, xsii_td4_hfq, xsii_td4_qfq
- `top_inst`: 龙虎榜（机构席位）（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: trade_date, symbol, exalter, buy, buy_rate, sell, sell_rate, net_buy, side, reason
- `top_list`: 龙虎榜（个股）（行情数据）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 证券代码（带后缀），如 000001.SZ
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    trade_date: 单个交易日 YYYYMMDD（与 start/end 二选一）

Returns:
    JSON 数组；字段: trade_date, symbol, name, close, pct_change, turnover_rate, amount, l_sell, l_buy, l_amount
- `tracking_indices`: ETF 跟踪指数基础信息（ETF）
需要 PRO 及以上套餐（低档位调用返回 403）。

Args:
    symbol: 代码原样匹配（ETF/板块/外汇/港股等）
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    pub_date: 发布日期 YYYYMMDD

Returns:
    JSON 数组；字段: symbol, indx_name, indx_csname, pub_party_name, pub_date, base_date, bp, adj_circle
- `trade_calendar`: 交易日历（默认上交所）（基础信息）

Args:
    start_date: 起始日期 YYYYMMDD
    end_date: 结束日期 YYYYMMDD
    exchange: 交易所：SSE 上交所 / SZSE 深交所
    is_open: 是否交易日：1 是 / 0 否

Returns:
    JSON 数组；字段: exchange, cal_date, is_open, pretrade_date
