# 资金概况 — 使用说明

中控顶栏 **资金概况**（`/funds`）汇总三所账户的 **资金账户 + 交易账户** 余额，不含浮盈亏；未监控账户不参与合计，但仍会在分户列表中灰显展示。

---

## 1. 口径

| 项目 | 规则 |
|------|------|
| **单户总资金** | `资金账户 USDT + 交易账户 USDT` |
| **总资金** | 所有 **已启用且未被环境强制关闭** 的账户之和 |
| **未监控** | 设置页未勾选「启用」或 `HUB_DISABLED_IDS` 强制关闭 → **跳过合计** |
| **缺数据** | 资金户、交易户任一侧缺失 → 该户当日快照 **跳过**（不估、不补 0） |
| **交易日** | 北京时间 `TRADING_DAY_RESET_HOUR`（默认 **8:00**）切日，与三所统计一致 |
| **曲线粒度** | 每个交易日 **1 个点** |
| **统计起点** | 默认 **2026-06-09**（`HUB_FUND_HISTORY_START_DAY`）；此前不记、不展示 |
| **历史保留** | 自起点起最多 **180** 个交易日（`HUB_FUND_HISTORY_DAYS`） |
| **最大回撤** | 基于 **总资金曲线**（分户同理），峰值到谷底的最大跌幅（U 与 %） |

> 与实例统计页「最大回撤」不同：实例统计来自 **平仓盈亏累计**；资金概况来自 **账户余额曲线**。

---

## 2. 页面说明

### 总览

- **总资金**：当前监控板最新一轮聚合的实时合计（资金户+交易户齐全才计入）
- **较昨日**：相对上一交易日快照点的变动（U）
- **最大回撤**：总资金历史曲线的峰值回撤（U / %）
- **总资金曲线**：近 180 交易日

### 分户卡片

每户展示：总资金、资金户、交易户、最大回撤、迷你曲线。

- **已监控**：正常统计
- **未监控**：显示「未参与合计」，无曲线
- **余额未齐**：已监控但 API 未返回完整资金/交易户

---

## 3. 数据从哪来

```
监控板每 5 秒聚合（board_store）
  └→ 各实例 GET /api/hub/account
       funding_usdt / trading_usdt
  └→ 写入 hub_fund_history.json（按交易日去重更新当日）

资金概况页 GET /api/hub/fund-overview
  ├→ 实时：读 board 缓存
  └→ 曲线/回撤：读 hub_fund_history.json
```

- 存储文件：`manual_trading_hub/hub_fund_history.json`（不在 Git 中）
- 旧 AI 快照 `hub_ai_fund_history.json` 会在首次读取时 **自动合并** 到新文件
- AI 教练生成上下文时也会写入同日快照（与监控板共用逻辑）

---

## 4. 环境变量

| 变量 | 默认 | 说明 |
|------|------|------|
| `HUB_FUND_HISTORY_DAYS` | `180` | 资金快照保留交易日数（与起点取较晚边界） |
| `HUB_FUND_HISTORY_START_DAY` | `2026-06-09` | 曲线/回撤统计起始交易日 |
| `TRADING_DAY_RESET_HOUR` | `8` | 切日整点（北京），与三所 `.env` 建议一致 |
| `HUB_BOARD_POLL_INTERVAL` | `5` | 监控聚合间隔（秒），影响快照刷新频率 |

---

## 5. API

`GET /api/hub/fund-overview`（需中控登录，与监控区相同）

返回字段概要：

- `totals.total_usdt` — 当前总资金
- `totals.series[]` — `{ day, total_usdt }` 总曲线
- `totals.drawdown` — `{ peak_usdt, max_drawdown_u, max_drawdown_pct }`
- `accounts[]` — 分户实时余额、曲线、回撤、`monitored` 标记

---

## 6. 相关文档

- [使用说明.md](./使用说明.md) — 中控总览
- [AI教练说明.md](./AI教练说明.md) — AI 上下文中的资金快照文本
- [部署文档.md](./部署文档.md) — 重启 `manual-trading-hub` 后生效
