Initial commit

This commit is contained in:
freedakgmail
2026-07-17 18:49:07 +08:00
commit 9c7d7abdd4
100 changed files with 41337 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
# 提醒和交易中的刷新 — 如何获取股票现价
## 一、提醒(自动提醒)刷新
### 哪些股票会参与
- **关注列表**`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)`(如麦蕊智数等)。