Files
stock/stock-html/docs/价格与刷新说明.md
T
freedakgmail 9c7d7abdd4 Initial commit
2026-07-17 18:49:35 +08:00

59 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 提醒和交易中的刷新 — 如何获取股票现价
## 一、提醒(自动提醒)刷新
### 哪些股票会参与
- **关注列表**`searchHistory`(用户添加的关注股票)
- **持有股票**`holdingStocks`(从交易记录里计算出的当前持仓代码)
- 两者合并去重后得到 `allStocks`,只对这些股票请求信号与价格。
### 价格从哪里来
1. **主流程**`POST /api/signal_alerts`
- 后端从 **`stock_signal_scan`** 取当日扫描结果(信号、推荐等)。
-**`stock_realtime_price`** 表按 `code IN (请求的股票)``price``change_pct` 作为初值。
- 接口返回后,前端会**再跑一遍实时价**:调用 **`refreshAlertPricesFromRealtime()`**,对每条提醒分批请求 `GET /api/realtime_price/{code}`,用实时接口返回的价格覆盖显示。
- 因此**最终展示的现价为实时价**(麦蕊等),不是表里旧数据。
2. **回退流程**(批量失败、逐个分析且 `forceRefresh`
- 前端对每只股票再请求 `GET /api/realtime_price/{code}` 更新价格,同样是实时接口。
### 小结
- 刷新提醒:**股票范围** = 关注 + 持仓;**现价** = 先来自表,随后由 **实时 API** 后台更新为最新价。
---
## 二、交易中的刷新
### 哪些股票会参与
-**当前持仓**`holdingPositions``quantity > 0` 的股票(即 `holdingStocks` 对应的持仓)。
### 价格从哪里来
1. **先从不发请求的缓存更新**
- `updateHoldingPricesFromAlerts()`:用 **`stockAlerts`** 里对应 `code``alert.price` 更新持仓的 `currentPrice`
- 即:若之前加载过提醒,交易里会先用提醒结果里的价格(该价格本身来自 `stock_realtime_price` 或单只实时 API)。
2. **用户点击「刷新」**`refreshHoldingPrices()`
- 对每个持仓 `code` 调用 `GET /api/realtime_price/{code}`
- 后端 `realtime_price` 使用 **实时 API**(如 `get_realtime_price` → 麦蕊智数等),**不读** `stock_realtime_price` 表。
- 拿到的价格会写回:
- `holdingPositions[code].currentPrice`
- 以及 `stockAlerts` 里该 code 的 `price`(并可能触发保存提醒缓存)。
### 小结
- 交易中的「现价」:
- 未点刷新时:来自 **提醒缓存**(提醒的数据又来自 `stock_realtime_price` 或单只实时 API)。
- 点击刷新后:来自 **实时 API**`/api/realtime_price/:code`),与数据库表无关。
---
## 三、实施价格(现价)来源汇总
| 场景 | 股票范围 | 现价/实施价格来源 |
|----------------|--------------|-------------------|
| 提醒主流程 | 关注 + 持仓 | 先表后 **实时 API** 覆盖(`refreshAlertPricesFromRealtime` |
| 提醒回退+强制刷新 | 同上,逐只 | `GET /api/realtime_price/:code` |
| 交易-不点刷新 | 持仓 | 提醒缓存 `stockAlerts[].price`(已含实时价) |
| 交易-点刷新 | 持仓 | `GET /api/realtime_price/:code`**与提醒刷新为同一接口** |
**说明**:提醒里更新现价与交易里「刷新价格」都调用 **同一个接口** `GET /api/realtime_price/:code`,后端均为 `get_realtime_price(stock_code)`(如麦蕊智数等)。