# env 配置页说明

本文档描述各交易实例 Web 端 **「env 配置」** 页展示项、含义、生效方式，以及与系统设置、中控密钥的分工。

> **不在本页展示的配置**（服务端口、数据库路径、关键位门控、轮询间隔等）仍保存在实例目录 `.env` 中，需 SSH 编辑或部署脚本维护，见文末「隐藏项」。

---

## 1. 设计原则

| 原则 | 说明 |
|------|------|
| **只展示运营相关项** | 不暴露全量 `.env`，避免误改基础设施 |
| **前端仅中文** | 页面只显示中文标签与说明，不显示 `APP_XXX` 等变量名 |
| **账户密码不进本页** | 登录用户名/密码在 **系统设置 → 账户密码修改** 中维护 |
| **密钥自动托管** | 中控通信密钥、登录会话密钥由 **首次部署脚本自动生成并写入**，本页不提供编辑 |
| **保存标注** | 每项标注「保存即生效」或「需重启」；含需重启项时可用「保存并重启」 |

---

## 2. 密钥分工（自动生成，本页不可见）

部署时由脚本统一生成并写入对应 `.env`（已有值则跳过，避免覆盖生产环境）。

| 类型 | 环境变量 | 写入位置 | 用途 |
|------|----------|----------|------|
| **中控通信密钥** | `HUB_BRIDGE_TOKEN` | 中控 `manual_trading_hub/.env` + 三实例 `.env`（**相同值**） | 中控调用实例 API（`X-Hub-Token`）、iframe SSO 签发与校验 |
| **登录会话密钥** | `FLASK_SECRET_KEY` | 三实例 `.env`（**三所相同**） | Flask Session 签名；与网页登录态相关，与中控密钥 **分离** |
| **登录账号** | `APP_USERNAME` / `APP_PASSWORD` | 三实例 `.env`（建议三所统一） | 直链实例 `/login` 使用；**仅在系统设置中修改** |

说明：

- **中控密钥 ≠ 登录密钥**：前者给中控与实例之间通信用；后者给浏览器 Session 用。
- 经中控 iframe / SSO 打开实例时，可免输实例密码；直链 IP/域名仍走 `/login`。
- 首次部署可生成随机强密码；用户日后在 **系统设置** 改密，不经过本页。

---

## 3. 页面布局（三列卡片）

| 列 1 | 列 2 | 列 3 |
|------|------|------|
| 交易所与实盘 | 企业微信 | AI 复盘 |
| 交易执行 | 交易风控 | 账户冷静期 |
| 自动划转 | 当日资金 | 期权账户（仅 OKX） |

Binance / Gate 无期权模块时，第三列最后一格不显示或显示「本所无期权」。

---

## 4. 各卡片字段（中文展示名）

### 4.1 交易所与实盘

| 中文名 | 说明 | 重启 |
|--------|------|------|
| 开启实盘下单 | 关闭时仅走本地流程，不向交易所发单 | 需重启 |
| API Key | 永续子账户 API Key | 需重启 |
| API Secret | 永续子账户 Secret | 需重启 |
| API Passphrase | 仅 OKX 显示 | 需重启 |
| 保证金模式 | 全仓 / 逐仓 | 需重启 |
| 持仓模式 | 双向 / 单向净持仓等（按所） | 需重启 |
| 仓位查询类型 | 仅 OKX：如 SWAP | 需重启 |
| 账户备注 | 企业微信推送中显示的交易所备注 | 保存即生效 |

**本卡片不包含**：网页登录账号密码、是否关闭登录校验、中控通信密钥。

---

### 4.2 企业微信

| 中文名 | 说明 |
|--------|------|
| 机器人 Webhook | 行情、风控、提醒推送地址 |
| 推送超时（秒） | 可选，默认 10 |

---

### 4.3 AI 复盘

| 中文名 | 说明 |
|--------|------|
| AI 提供方 | 云端 OpenAI 兼容 / 本地 Ollama |
| API 地址 | OpenAI 兼容 base URL |
| API 密钥 | 敏感，留空表示不修改 |
| 模型名称 | 如 gemma、deepseek 等 |
| Ollama 地址 | 本地服务 URL |
| Ollama 模型 | 本地模型名 |
| 请求超时（秒） | 默认 120 |

---

### 4.4 交易执行

| 中文名 | 说明 |
|--------|------|
| 计仓模式 | 以损定仓 / 全仓杠杆 |
| 以损定仓风险% | 单笔风险占资金比例 |
| 全仓资金缓冲比例 | 全仓模式下可用资金折扣 |
| BTC 默认杠杆 | |
| 山寨默认杠杆 | |
| 方向限制开关 | |
| 允许方向 | 多 / 空 / 双向 |
| 币种白名单开关 | |
| 白名单币种 | 逗号分隔 |
| 交易日切点（北京时间） | 默认 8 点 |
| 切点前禁止新开仓 | |
| 最大同时持仓 | |
| 人工最低盈亏比 | |
| 强制清仓开关 | |
| 强制清仓整点（北京） | |

---

### 4.5 交易风控（日内开仓）

| 中文名 | 说明 |
|--------|------|
| 单日开仓提醒阈值 | 达到次数后 AI 克制提醒（不拦单） |
| 单日开仓硬上限 | 0 表示不启用；达到后禁止新开仓 |

详见 [daily-open-limit.md](./daily-open-limit.md)。

---

### 4.6 账户冷静期

| 中文名 | 说明 |
|--------|------|
| 冷静期总开关 | |
| 手动平仓冷静（小时） | |
| 复盘情绪冷静（小时） | |
| 日手动平仓次数上限 | |
| 情绪标签日冻结 | |

详见 [account-risk-cooldown.md](./account-risk-cooldown.md)。

---

### 4.7 自动划转

| 中文名 | 说明 |
|--------|------|
| 启用自动划转 | |
| 目标余额（U） | 交易账户目标 USDT |
| 划出账户 | funding / swap |
| 划入账户 | swap / funding |
| 执行整点（北京时间） | |
| 划转币种 | 默认 USDT |

详见 [auto-transfer-daily.md](./auto-transfer-daily.md)。

---

### 4.8 当日资金

| 中文名 | 说明 |
|--------|------|
| 日起始基数（U） | |
| 回撤后基数（U） | |
| 盈利后基数（U） | |

与自动划转目标余额相互独立；若需一致请手动对齐。

---

### 4.9 期权账户（仅 OKX）

| 中文名 | 说明 |
|--------|------|
| 启用期权模块 | |
| 期权 API Key / Secret / Passphrase | 主账户，与永续子账户分离 |
| 期权账户备注 | |
| 单笔预算（USDC） | |
| 预算缓冲比例 | |
| 默认标的 | 如 ETH |
| 最大到期天数 | 等常用策略参数 |

高级参数与完整说明见 [期权方案.md](./期权方案.md)、[期权用法.md](./期权用法.md)。

---

## 5. 操作说明

1. 修改后点 **保存**：即时生效项立即应用；需重启项写入 `.env` 但未重启进程。
2. 含需重启项时点 **保存并重启**：写 `.env` 后 PM2 重启当前实例。
3. **重新加载**：从磁盘重新读取 `.env` 刷新表单（放弃未保存修改）。
4. 敏感项（API、密钥）显示为掩码；**留空提交表示不修改原值**。

---

## 6. 隐藏项（本页不展示）

以下仍存在于 `.env`，仅供运维或 SSH 修改：

- 服务：`APP_HOST`、`APP_PORT`、`APP_DEBUG`
- 数据：`DB_PATH`、`UPLOAD_DIR`
- 关键位门控：全部 `KEY_*`、`KLINE_*`
- 轮询与同步：`BALANCE_REFRESH_SECONDS`、`PRICE_REFRESH_SECONDS`、`MONITOR_POLL_SECONDS`、`BREAKEVEN_*`、`RECONCILE_*`
- 代理：`OKX_SOCKS_PROXY`、`BINANCE_HTTP_PROXY` 等
- 备份：`BACKUP_*`
- 中控嵌入细节：`APP_ALLOW_HUB_EMBED`、`HUB_EMBED_*`、`APP_COOKIE_SECURE`
- 登录相关：`APP_AUTH_DISABLED`、`APP_USERNAME`、`APP_PASSWORD`、`FLASK_SECRET_KEY`、`HUB_BRIDGE_TOKEN`

后续若需要可增加「高级模式」折叠区，默认关闭。

---

## 7. 与系统设置的关系

| 能力 | env 配置 | 系统设置 |
|------|----------|----------|
| 登录用户名/密码 | ❌ | ✅ 账户密码修改 |
| 交易所 API | ✅ | ❌ |
| 导航/区块显示 | ❌ | ✅ 导航显示 |
| 手动资金划转 | ❌ | ✅ 永续资金划转 |
| 数据导出 | ❌ | ✅ 数据导出 |
| 期权兑换/划转 UI | ❌ | ✅（OKX，可开关） |

系统设置说明见 [系统设置说明.md](./系统设置说明.md)。

---

## 8. 实现备注（开发用）

- 白名单分组：`lib/env/env_ui_manifest.py`（按 `exchange_key` 过滤）
- 中文标签：`ENV_UI_LABELS` 映射，模板只渲染 `label` / `note`
- 全量校验仍基于 `.env.example`；POST 仅接受 manifest 内 key
