新增当日开盘价低于前一交易日涨停价格 101% 的判断。新增下载csv 文件接口。

This commit is contained in:
2026-05-05 19:04:45 +08:00
parent f78dfaec74
commit 996d4f0af7
9 changed files with 278 additions and 57 deletions
+3 -1
View File
@@ -4,7 +4,7 @@
- 服务前缀:`/api/v1`
- 响应格式:`application/json`
- 当前项目接口总数:5
- 当前项目接口总数:7
## 2. 接口列表
@@ -15,6 +15,8 @@
| 股票行情 | `GET` | `/api/v1/stock/kline/:code` | 获取指定股票历史 K 线 | [stock-kline.md](./stock-kline.md) |
| 涨停连板 | `GET` | `/api/v1/limit-board/overview` | 获取交易日涨停分组与近 30 日最高板趋势 | [limit-board-overview.md](./limit-board-overview.md) |
| 涨停低开分组 | `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/download/limit-board/second-board-profit-csv` | 下载符合二板早盘开盘阈值条件的次日盈利 CSV 明细 | [download-second-board-profit-csv.md](./download-second-board-profit-csv.md) |
## 3. 错误响应约定
+3 -3
View File
@@ -74,7 +74,7 @@ GET /api/v1/limit-board/open-lower-groups?trade_date=2026-04-24
| `ak_total_market_value` | `number \| null` | AKShare 总市值 |
| `ak_turnover_rate` | `number \| null` | AKShare 换手率 |
| `ak_seal_amount` | `number \| null` | AKShare 封板资金 |
| `ak_first_limit_time` | `string \| null` | AKShare 首次封板时间 |
| `ak_first_limit_time` | `string \| null` | Tushare 首次封板时间,可能为 `09:35:12` 或 `93200` 这类紧凑格式 |
| `ak_last_limit_time` | `string \| null` | AKShare 最后封板时间 |
| `ak_break_limit_count` | `int \| null` | AKShare 炸板次数 |
| `ak_limit_up_stat` | `string \| null` | AKShare 涨停统计 |
@@ -145,12 +145,12 @@ GET /api/v1/limit-board/open-lower-groups?trade_date=2026-04-24
## 5. 业务规则
- 只统计指定交易日 `stock_limit_data.status = 1` 且前一交易日 `stock_limit_data.status = 1` 的股票。
- 只统计指定交易日 `stock_limit_combined_data.final_status = 1` 且前一交易日 `stock_limit_combined_data.final_status = 1` 的股票。
- 前一交易日、前二交易日通过 `trade_calendar` 中 `exchange = 'SSE'` 且 `is_open = 1` 的交易日确定。
- 只有当日 `stock_daily.open` 和前一交易日 `stock_daily.close` 都存在,且 `open < previous_close` 时,股票才会进入 `open_lower_previous_close` 分组。
- 行情缺失、没有前一交易日、或不满足 `open < previous_close` 的股票都会进入 `others` 分组。
- 当指定交易日涨停、前一交易日涨停、前二交易日不涨停时,返回 `is_first_to_second_board = true`,并设置 `highlight_label = "首板进二板"`。
- 在 `open_lower_previous_close` 分组内,如果同时满足 `is_first_to_second_board = true` 且 `ak_first_limit_time` 早于 `11:00`,返回 `is_first_second_before_eleven = true`,并将 `highlight_label` 设为 `首二一一`。
- 在 `open_lower_previous_close` 分组内,如果同时满足 `is_first_to_second_board = true` 且 `ak_first_limit_time` 早于 `11:00`,返回 `is_first_second_before_eleven = true`,并将 `highlight_label` 设为 `首二一一`。`93200` 会按 `09:32:00` 处理。
- 每个分组内的 `stocks` 按 `pct_chg` 从大到小排序;如果 `pct_chg` 相同,则按 `ts_code` 升序排序。
## 6. 错误响应
+2 -2
View File
@@ -71,7 +71,7 @@ GET /api/v1/limit-board/overview?trade_date=2026-04-24
| `ak_total_market_value` | `number \| null` | AKShare 总市值 |
| `ak_turnover_rate` | `number \| null` | AKShare 换手率 |
| `ak_seal_amount` | `number \| null` | AKShare 封板资金 |
| `ak_first_limit_time` | `string \| null` | AKShare 首次封板时间 |
| `ak_first_limit_time` | `string \| null` | Tushare 首次封板时间,可能为 `09:35:12` 或 `93200` 这类紧凑格式 |
| `ak_last_limit_time` | `string \| null` | AKShare 最后封板时间 |
| `ak_break_limit_count` | `int \| null` | AKShare 炸板次数 |
| `ak_limit_up_stat` | `string \| null` | AKShare 涨停统计 |
@@ -152,7 +152,7 @@ GET /api/v1/limit-board/overview?trade_date=2026-04-24
## 6. 业务规则
- 只统计 `stock_limit_data.status = 1` 的记录,即涨停股票。
- 只统计 `stock_limit_combined_data.final_status = 1` 的记录,即涨停股票。
- 连板数的计算会结合 `trade_calendar` 开市日历处理,不会被周末或节假日打断。
- 首板、二板、三板等分组由后端直接计算,前端不需要二次处理。
- `summary.max_board_count` 即当天涨停强度最高的板数。
+1 -1
View File
@@ -76,7 +76,7 @@ Content-Type: application/json
## 6. 业务规则
- 仅统计 `stock_limit_data.status = 1` 的涨停股票。
- 仅统计 `stock_limit_combined_data.final_status = 1` 的涨停股票。
- `start_date` 用于确定样本池,即当日涨停股票。
- `end_date` 用于限定后续表现统计区间。
- 如果某只股票在区间内只有涨停当天数据,则不会进入最终结果。