1、新增二板炸板情况统计;
2、更新项目结构;
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
- 服务前缀:`/api/v1`
|
||||
- 响应格式:`application/json`
|
||||
- 当前项目接口总数:8
|
||||
- 当前项目接口总数:10
|
||||
|
||||
## 2. 接口列表
|
||||
|
||||
@@ -17,7 +17,9 @@
|
||||
| 涨停低开分组 | `GET` | `/api/v1/limit-board/open-lower-groups` | 获取查询日和前一交易日均涨停的股票,并按是否低于前一交易日收盘价分组 | [limit-board-open-lower-groups.md](./limit-board-open-lower-groups.md) |
|
||||
| 涨停开盘阈值分组 | `GET` | `/api/v1/limit-board/open-threshold` | 获取查询日和前一交易日均涨停的股票,并按开盘价是否低于前一交易日收盘价 101% 分组 | [limit-board-open-threshold.md](./limit-board-open-threshold.md) |
|
||||
| 二板早盘次日盈利 | `GET` | `/api/v1/limit-board/second-board-profit` | 分页查询 T-2 无涨停、T-1 涨停、T 涨停的次日盈利明细 | [download-second-board-profit-csv.md](./download-second-board-profit-csv.md) |
|
||||
| 炸板次日表现 | `GET` | `/api/v1/limit-board/break-next-performance` | 分页查询 T-2 未涨停、T-1 涨停、T 日炸板股票及 T+1 表现 | [limit-board-break-next-performance.md](./limit-board-break-next-performance.md) |
|
||||
| 下载 | `GET` | `/api/v1/download/limit-board/second-board-profit-csv` | 下载筛选条件范围内的二板早盘次日盈利 CSV 明细 | [download-second-board-profit-csv.md](./download-second-board-profit-csv.md) |
|
||||
| 下载 | `GET` | `/api/v1/download/limit-board/break-next-performance-csv` | 下载筛选条件范围内的炸板次日表现 CSV 明细 | [limit-board-break-next-performance.md](./limit-board-break-next-performance.md) |
|
||||
|
||||
## 3. 错误响应约定
|
||||
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
# 炸板次日表现接口文档
|
||||
|
||||
## 1. 基本信息
|
||||
|
||||
- 接口名称:炸板次日表现
|
||||
- 请求方法:`GET`
|
||||
- 请求路径:`/api/v1/limit-board/break-next-performance`
|
||||
- 接口用途:按 T 日范围查询 T-2 未涨停、T-1 涨停、T 日触及涨停价但收盘未封住的炸板股票,并返回 T+1 交易日表现。
|
||||
- 导出路径:`/api/v1/download/limit-board/break-next-performance-csv`
|
||||
|
||||
## 2. 请求参数
|
||||
|
||||
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `tradeStartDate` | `string` | 是 | 无 | T 日起始日期,格式 `YYYY-MM-DD` |
|
||||
| `tradeEndDate` | `string` | 是 | 无 | T 日结束日期,格式 `YYYY-MM-DD` |
|
||||
| `page` | `int` | 否 | `1` | 页码 |
|
||||
| `pageSize` | `int` | 否 | `20` | 每页数量 |
|
||||
| `tOpenGainLt101` | `bool` | 否 | 无 | 筛选 T 日开盘价是否小于 T-1 收盘价的 101%,支持别名 `tOpenLessThan101`、`t_open_gain_lt_101` |
|
||||
| `breakTimeBefore1100` | `bool` | 否 | 无 | 筛选 T 日炸板时间是否在 `11:00:00` 前,空炸板时间按 `true` 处理,支持别名 `tBreakTimeBefore1100`、`break_time_before_1100` |
|
||||
|
||||
兼容 `start_date`、`end_date` 作为日期参数别名。
|
||||
|
||||
示例:
|
||||
|
||||
```http
|
||||
GET /api/v1/limit-board/break-next-performance?tradeStartDate=2026-05-07&tradeEndDate=2026-05-07&tOpenGainLt101=true&breakTimeBefore1100=true&page=1&pageSize=20
|
||||
```
|
||||
|
||||
导出示例:
|
||||
|
||||
```http
|
||||
GET /api/v1/download/limit-board/break-next-performance-csv?tradeStartDate=2026-05-07&tradeEndDate=2026-05-07&tOpenGainLt101=true&breakTimeBefore1100=true
|
||||
```
|
||||
|
||||
## 3. 统计规则
|
||||
|
||||
- 以 `trade_calendar` 中 `exchange = 'SSE'` 且 `is_open = 1` 的记录推导 T-2、T-1、T、T+1 交易日。
|
||||
- 样本池来自 `stock_limit_combined_data`:T 日必须为炸板记录,即 `final_status = 2`;T-1 必须为涨停记录,即 `final_status = 1`;T-2 同一股票不能存在 `final_status = 1`。
|
||||
- T 日和 T+1 日 OHLC 来自 `stock_daily`。
|
||||
- 股票板块来自 `stock_limit_combined_data.market`。
|
||||
- T 日开盘涨幅以 T-1 收盘价为基准计算。
|
||||
- 如果 T 日有 Tushare 炸板记录,则返回具体的 Tushare 炸板时间 `tushare_first_time` 并格式化为 `HH:MM:SS`;无 Tushare 炸板记录或无具体时间时 `first_time` 为空。
|
||||
- T 日炸板时间为空时,`break_time_before_1100` 默认返回 `true`。
|
||||
- T+1 开盘涨幅、最高获利、最大亏损、收盘涨跌幅均以 T 日收盘价为基准计算。
|
||||
- T+1 盘中是否可以获利表示:T+1 盘中最高价是否能弥补 T 日最高价买入后到 T 日收盘价的差价,按 `next_high >= t_high` 判断;缺少 T+1 最高价、T 日最高价或 T 日收盘价时返回 `null`。
|
||||
|
||||
## 4. 响应字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `trade_start_date` | `string` | 查询起始 T 日 |
|
||||
| `trade_end_date` | `string` | 查询结束 T 日 |
|
||||
| `page` | `int` | 当前页 |
|
||||
| `page_size` | `int` | 每页数量 |
|
||||
| `total` | `int` | 命中总数 |
|
||||
| `total_pages` | `int` | 总页数 |
|
||||
| `summary.break_count` | `int` | T 日炸板股票总数 |
|
||||
| `summary.next_trade_data_count` | `int` | 有 T+1 行情数据的股票数 |
|
||||
| `list` | `array` | 明细列表 |
|
||||
|
||||
明细核心字段:
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `trade_date` | `string` | T 日 |
|
||||
| `ts_code` / `symbol` / `name` | `string` | 股票标识 |
|
||||
| `market` / `industry` | `string` | 板块和行业 |
|
||||
| `t_open` / `t_high` / `t_close` | `number \| null` | T 日行情 |
|
||||
| `t_open_pct_chg` | `number \| null` | T 日开盘涨幅,基于 T-1 收盘价 |
|
||||
| `t_open_gain_lt_101` | `boolean` | T 日开盘价是否小于 T-1 收盘价的 101% |
|
||||
| `first_time` | `string` | T 日 Tushare 炸板时间,格式化为 `HH:MM:SS`,无 Tushare 炸板记录或无具体时间时为空 |
|
||||
| `break_time_before_1100` | `boolean` | T 日炸板时间是否在 `11:00:00` 前;空炸板时间默认为 `true` |
|
||||
| `has_tushare_break_data` | `boolean` | T 日是否存在 Tushare 炸板记录,即 `tushare_limit_type = 'Z'` |
|
||||
| `next_open` / `next_high` / `next_low` / `next_close` | `number \| null` | T+1 行情 |
|
||||
| `next_open_pct_chg` | `number \| null` | T+1 开盘涨幅,基于 T 日收盘价 |
|
||||
| `next_intraday_profitable` | `boolean \| null` | T+1 盘中是否可以获利,按 T+1 最高价是否能弥补 T 日最高价买入后到 T 日收盘价的差价判断,即 `next_high >= t_high` |
|
||||
| `next_high_profit_pct` | `number \| null` | T+1 最高获利百分比,基于 T 日收盘价 |
|
||||
| `next_low_loss_pct` | `number \| null` | T+1 最大亏损百分比,基于 T 日收盘价 |
|
||||
| `next_close_pct_chg` | `number \| null` | T+1 收盘涨跌幅,基于 T 日收盘价 |
|
||||
|
||||
## 5. 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"trade_start_date": "2026-05-07",
|
||||
"trade_end_date": "2026-05-07",
|
||||
"page": 1,
|
||||
"page_size": 20,
|
||||
"total": 3,
|
||||
"total_pages": 1,
|
||||
"summary": {
|
||||
"break_count": 3,
|
||||
"next_trade_data_count": 3
|
||||
},
|
||||
"list": [
|
||||
{
|
||||
"trade_date": "2026-05-07",
|
||||
"symbol": "000060",
|
||||
"ts_code": "000060.SZ",
|
||||
"name": "中金岭南",
|
||||
"market": "主板",
|
||||
"industry": "铅锌",
|
||||
"t_open": 7.71,
|
||||
"t_open_pct_chg": 3.77,
|
||||
"t_open_gain_lt_101": false,
|
||||
"t_high": 8.17,
|
||||
"t_close": 8.08,
|
||||
"t_pct_chg": 8.7483,
|
||||
"first_time": "13:55:30",
|
||||
"break_time_before_1100": false,
|
||||
"has_tushare_break_data": true,
|
||||
"next_open": 7.81,
|
||||
"next_high": 8.23,
|
||||
"next_low": 7.77,
|
||||
"next_close": 7.95,
|
||||
"next_open_pct_chg": -3.34,
|
||||
"next_intraday_profitable": true,
|
||||
"next_high_profit_pct": 1.86,
|
||||
"next_low_loss_pct": -3.84,
|
||||
"next_close_pct_chg": -1.61
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 6. CSV 导出
|
||||
|
||||
- 响应类型:`text/csv; charset=utf-8`
|
||||
- 响应头:`Content-Disposition: attachment; filename="limit_break_next_performance_YYYYMMDD_YYYYMMDD_daily_detail.csv"`
|
||||
- 文件包含 UTF-8 BOM,便于 Excel 直接打开中文列名。
|
||||
- 导出接口复用列表接口的日期、`tOpenGainLt101`、`breakTimeBefore1100` 筛选条件,不使用分页参数。
|
||||
|
||||
列顺序:
|
||||
|
||||
| 列名 | 来源字段 |
|
||||
| --- | --- |
|
||||
| `T日` | `trade_date` |
|
||||
| `股票代码` | `ts_code` |
|
||||
| `股票简称` | `name` |
|
||||
| `T涨跌幅` | `t_pct_chg` |
|
||||
| `T开盘<1%` | `t_open_gain_lt_101`,导出为 `是`/`否` |
|
||||
| `tushare炸板时间` | `first_time` |
|
||||
| `11点前炸板` | `break_time_before_1100`,导出为 `是`/`否` |
|
||||
| `T+1盘中可盈利` | `next_intraday_profitable`,导出为 `是`/`否`/`无次日数据` |
|
||||
| `T+1最高获利` | `next_high_profit_pct` |
|
||||
| `T+1开盘涨幅` | `next_open_pct_chg` |
|
||||
| `T+1收盘涨跌` | `next_close_pct_chg` |
|
||||
| `市场` | `market` |
|
||||
| `行业` | `industry` |
|
||||
| `T开盘` | `t_open` |
|
||||
| `T开盘涨幅` | `t_open_pct_chg` |
|
||||
| `T最高` | `t_high` |
|
||||
| `T收盘` | `t_close` |
|
||||
| `tushare是否炸板` | `has_tushare_break_data`,导出为 `是`/`否` |
|
||||
| `T+1开盘` | `next_open` |
|
||||
| `T+1最高` | `next_high` |
|
||||
| `T+1最低` | `next_low` |
|
||||
| `T+1收盘` | `next_close` |
|
||||
| `T+1最大亏损` | `next_low_loss_pct` |
|
||||
Reference in New Issue
Block a user