# 宏观关键数据 · 风控前置

中控 **系统设置** 手动录入 FOMC / CPI / 就业数据发布时间,在 **监控区** 发布前后各 1 小时给出风险提示.  
**不看公布结果,不解读数据**,仅作波动窗口前的行为提醒;**不拦截下单**(与账户冷静期/日冻结独立).

## 支持的数据类型

| 类型 ID | 显示名称 |
|---------|----------|
| `fomc` | FOMC 联邦基金利率 |
| `cpi` | 美国 CPI 通胀 |
| `employment` | 就业与劳工数据 |

每项在设置中 **名称下拉三选一**,**发布时间** 手动输入(北京时间,精确到分钟).FOMC 只录 **一条**(决议公布时刻即可).

## 风险窗口

- 默认:**发布时间 ±1 小时**
- 发布前 **30 分钟内**:文案加强为「即将发布」
- 窗口结束后横幅自动消失;设置列表中过期记录逐步不再展示

环境变量(可选):

```env
HUB_MACRO_WINDOW_BEFORE_SEC=3600
HUB_MACRO_WINDOW_AFTER_SEC=3600
HUB_MACRO_IMMINENT_BEFORE_SEC=1800
HUB_MACRO_LIST_FUTURE_DAYS=60
```

## 监控区提示文案

读取当前监控板:**任意交易所有持仓 = 有仓**,否则 = 无仓.

| 场景 | 提示要点 |
|------|----------|
| 无仓 · 窗口内 | 建议等待,避免新开仓 |
| 有仓 · 窗口内 | 注意仓位,勿加仓,检查止损/减仓 |
| 即将发布(30 分钟内) | 在上述基础上标注剩余分钟数 |

## 存储

- SQLite:`manual_trading_hub/data/hub_macro_calendar.db`
- 可覆盖:`HUB_MACRO_CALENDAR_DB_PATH`

表 `macro_events`:`event_type`, `event_at_ms`, `note`, `created_at_ms`, `updated_at_ms`  
同类型 + 同一发布时间不可重复录入.

## API(均需中控登录)

| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/macro-calendar/meta` | 类型列表与窗口说明 |
| GET | `/api/macro-calendar/events` | 设置页列表 |
| GET | `/api/macro-calendar/active` | 当前处于窗口内的事件(监控横幅) |
| POST | `/api/macro-calendar/events` | 新增 |
| PATCH | `/api/macro-calendar/events/{id}` | 更新 |
| DELETE | `/api/macro-calendar/events/{id}` | 删除 |

请求体示例:

```json
{
  "event_type": "cpi",
  "event_at": "2026-06-18 20:30",
  "note": "可选备注"
}
```

## 使用习惯

1. 每月在金十/日历查看 **FOMC,CPI,非农** 公布时间  
2. 中控 **系统设置 → 宏观关键数据** 录入 1～3 条  
3. 到点前后监控区顶栏出现 **宏观风控** 横幅;无操作则窗口结束后自动消失  

## 与账户风控的关系

| 模块 | 时机 | 作用 |
|------|------|------|
| 宏观日历 | **事前** | 已知高波动窗口,提醒等待或管仓 |
| 账户冷静期/日冻结 | **事后** | 用户主动平仓后的惩罚性限制 |

宏观提醒 **不触发** 冷静期,不计入手动平仓次数.
