# 二板获利综合与个股详情接口文档 ## 1. 接口说明 本页包含两个二板获利统计接口: - 二板获利综合:汇总每只个股 2020 年至今早盘二板后的 T+1 最大获利,并按累计获利从高到低排序。 - 个股二板获利详情:查询单只个股每次早盘二板后的 T+1 最大获利情况。 接口当前读取缓存表,不再在请求时实时联表计算: - `second_board_profit_detail_cache`:保存每次命中的二板详情和 T+1 最大获利。 - `second_board_profit_summary_cache`:保存完整缓存范围内按个股聚合后的综合数据。 业务筛选基础条件: - T-2 交易日无涨停。 - T-1 交易日涨停。 - T 交易日再次触及涨停价,T 日可为封板或炸板。 - T 日二板首次涨停时间在 `09:31:00` 到 `09:59:59` 之间,包含起止时间。 ## 2. 接口地址 | 接口名称 | 请求方式 | 请求路径 | 说明 | | --- | --- | --- | --- | | 二板获利综合 | `GET` | `/api/v1/limit-board/second-board-profit-summary` | 汇总每只个股 2020 年至今 09:31:00-09:59:59 二板后的次日最大获利 | | 个股二板获利详情 | `GET` | `/api/v1/limit-board/second-board-profit-detail` | 查询单只个股每次 09:31:00-09:59:59 二板后的次日最大获利 | ## 3. 统计规则 - 统计口径复用二板日历接口:T-2 未涨停、T-1 涨停、T 日再次触及涨停价。 - T+1 最大获利百分比为 `next_high_profit_pct`,按 `(T+1最高价 - T日最高价) / T日最高价 * 100` 计算并保留两位小数。 - 二板获利综合接口按个股累计 `next_high_profit_pct`,得到 `total_next_high_profit_pct`,并按该字段从高到低排序。 - 没有 T+1 最高价或 T 日最高价的数据仍会计入二板次数,但不参与获利累计和平均值计算。 - 当请求日期范围覆盖整张明细缓存表时,二板获利综合接口直接读取 `second_board_profit_summary_cache`。 - 当请求日期范围小于明细缓存表覆盖范围时,二板获利综合接口从 `second_board_profit_detail_cache` 按日期范围动态聚合。 - 个股二板获利详情接口始终从 `second_board_profit_detail_cache` 按日期范围和股票代码查询。 ## 4. 缓存刷新 缓存表需要由离线脚本或人工任务刷新。接口只返回缓存表中已经落地的数据;如果最新交易日或历史补数未写入缓存表,接口不会临时回退到实时联表计算。 当前校验结果: - `second_board_profit_detail_cache` 当前覆盖 `2020-01-06` 到 `2026-05-14`。 - 在该覆盖范围内,缓存明细和原实时计算口径数量一致、键一致、字段一致。 - 默认查询范围 `2020-01-01` 到当天如果覆盖了缓存表之外的日期,需要先刷新缓存表,否则接口只返回已落地缓存数据。 ## 5. 请求参数 两个接口都支持以下日期参数: | 参数名 | 类型 | 必填 | 默认值 | 示例 | 说明 | | --- | --- | --- | --- | --- | --- | | `tradeStartDate` | `string` | 否 | `2020-01-01` | `2020-01-01` | T 日交易开始日期,格式 `YYYY-MM-DD` | | `tradeEndDate` | `string` | 否 | 当天 | `2026-05-16` | T 日交易结束日期,格式 `YYYY-MM-DD` | 个股二板获利详情接口还需要传入股票代码,`tsCode` 和 `symbol` 二选一: | 参数名 | 类型 | 必填 | 默认值 | 示例 | 说明 | | --- | --- | --- | --- | --- | --- | | `tsCode` | `string` | 否 | 空 | `000001.SZ` | TuShare 股票代码,优先使用 | | `symbol` | `string` | 否 | 空 | `000001` | 市场展示股票代码;未传 `tsCode` 时使用 | 兼容说明:日期参数兼容 `trade_start_date`、`start_date`、`trade_end_date`、`end_date`;`symbol` 兼容别名 `code`。 ## 6. 请求示例 二板获利综合: ```http GET /api/v1/limit-board/second-board-profit-summary ``` 指定日期范围的二板获利综合: ```http GET /api/v1/limit-board/second-board-profit-summary?tradeStartDate=2020-01-01&tradeEndDate=2026-05-16 ``` 个股二板获利详情: ```http GET /api/v1/limit-board/second-board-profit-detail?tsCode=000001.SZ ``` ## 7. 二板获利综合响应 | 字段名 | 类型 | 说明 | | --- | --- | --- | | `trade_start_date` | `string` | 查询起始 T 日 | | `trade_end_date` | `string` | 查询结束 T 日 | | `start_time` | `string` | 固定筛选起点,当前为 `09:31:00` | | `end_time` | `string` | 固定筛选终点,当前为 `09:59:59` | | `total` | `int` | 命中的个股数量 | | `list` | `array` | 按累计获利从高到低排序的个股汇总数据 | `list[]` 字段: | 字段名 | 类型 | 说明 | | --- | --- | --- | | `symbol` | `string` | 股票代码 | | `ts_code` | `string` | TuShare 股票代码 | | `name` | `string` | 股票简称 | | `market` | `string` | 所属板块 | | `industry` | `string` | 所属行业 | | `second_board_count` | `int` | 09:31:00-09:59:59 期间命中的二板次数 | | `limit_count` | `int` | 二板封板次数 | | `break_count` | `int` | 二板炸板次数 | | `profit_data_count` | `int` | 具备 T+1 最大获利百分比的次数 | | `total_next_high_profit_pct` | `number` | T+1 最大获利百分比累计值 | | `average_next_high_profit_pct` | `number` | T+1 最大获利百分比平均值 | | `first_trade_date` | `string` | 首次命中交易日 | | `last_trade_date` | `string` | 最近命中交易日 | 响应示例: ```json { "trade_start_date": "2020-01-01", "trade_end_date": "2026-05-16", "start_time": "09:31:00", "end_time": "09:59:59", "total": 1, "list": [ { "symbol": "000001", "ts_code": "000001.SZ", "name": "示例股份", "market": "主板", "industry": "银行", "second_board_count": 3, "limit_count": 2, "break_count": 1, "profit_data_count": 3, "total_next_high_profit_pct": 12.36, "average_next_high_profit_pct": 4.12, "first_trade_date": "2021-03-18", "last_trade_date": "2026-04-24" } ] } ``` ## 8. 个股二板获利详情响应 | 字段名 | 类型 | 说明 | | --- | --- | --- | | `trade_start_date` | `string` | 查询起始 T 日 | | `trade_end_date` | `string` | 查询结束 T 日 | | `start_time` | `string` | 固定筛选起点,当前为 `09:31:00` | | `end_time` | `string` | 固定筛选终点,当前为 `09:59:59` | | `symbol` | `string` | 股票代码 | | `ts_code` | `string` | TuShare 股票代码 | | `name` | `string` | 股票简称 | | `market` | `string` | 所属板块 | | `industry` | `string` | 所属行业 | | `second_board_count` | `int` | 命中的二板次数 | | `profit_data_count` | `int` | 具备 T+1 最大获利百分比的次数 | | `total_next_high_profit_pct` | `number` | T+1 最大获利百分比累计值 | | `average_next_high_profit_pct` | `number` | T+1 最大获利百分比平均值 | | `list` | `array` | 每次二板获利详情,字段同二板日历接口 `SecondCalStock` | `list[]` 关键字段: | 字段名 | 类型 | 说明 | | --- | --- | --- | | `trade_date` | `string` | T 日交易日 | | `previous_trade_date` | `string` | T-1 交易日 | | `previous_two_trade_date` | `string` | T-2 交易日 | | `next_trade_date` | `string` | T+1 交易日 | | `status` | `string` | `limit` 表示封板,`break` 表示炸板 | | `first_limit_time` | `string` | T 日二板首次涨停时间,固定落在 `09:31:00` 到 `09:59:59` | | `t_high` | `number \| null` | T 日最高价 | | `next_high` | `number \| null` | T+1 最高价 | | `next_intraday_profitable` | `boolean \| null` | T+1 最高价是否高于 T 日最高价 | | `next_high_profit_pct` | `number \| null` | T+1 最高价相对 T 日最高价的最大获利百分比 | 响应示例: ```json { "trade_start_date": "2020-01-01", "trade_end_date": "2026-05-16", "start_time": "09:31:00", "end_time": "09:59:59", "symbol": "000001", "ts_code": "000001.SZ", "name": "示例股份", "market": "主板", "industry": "银行", "second_board_count": 1, "profit_data_count": 1, "total_next_high_profit_pct": 4.12, "average_next_high_profit_pct": 4.12, "list": [ { "trade_date": "2026-04-24", "previous_trade_date": "2026-04-23", "previous_two_trade_date": "2026-04-22", "next_trade_date": "2026-04-27", "symbol": "000001", "ts_code": "000001.SZ", "name": "示例股份", "market": "主板", "industry": "银行", "previous_close": 10, "limit_price": 11, "t_high": 11, "t_close": 11, "t_pct_chg": 10, "status": "limit", "first_limit_time": "09:35:12", "open_times": 0, "next_high": 11.45, "next_close": 11.2, "next_intraday_profitable": true, "next_high_profit_pct": 4.09 } ] } ``` ## 9. 错误响应 ```json { "error": "参数错误" } ```