Add entry plan page with CRUD, archive flow, and win-rate stats.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-22 16:19:56 +08:00
parent bd759c42d6
commit 091317276d
9 changed files with 1876 additions and 1 deletions
+85
View File
@@ -0,0 +1,85 @@
# 开仓计划
中控顶栏 **开仓计划**`/plan`)用于记录开仓前的计划、跟踪进行中条目,并在填写结果后归档;支持按币种、趋势周期、入场方案统计胜率。
## 入口
- 顶栏:**资金概况** 与 **监控区** 之间 → **开仓计划**
- 路由:`/plan`
## 页面结构
| 区域 | 功能 |
|------|------|
| 左侧 · 新建计划 | 填写计划字段,保存后进入「进行中」 |
| 左侧 · 进行中 | 修改、删除、填写结果并归档 |
| 右侧 · 计划历史 | 一行一条摘要,点击查看详情 |
| 右侧 · 数据统计 | 胜率表(可切换维度与时间范围) |
## 字段说明
| 字段 | 说明 |
|------|------|
| 日期 | 计划日期(日期选择器,可手输 `YYYY-MM-DD` |
| 交易所 | 四所:binance / okx / gate / gate_bot(来自 hub 已启用账户) |
| 币种 | 输入 `BTC``BTC/USDT`,自动规范为 `XXX/USDT` |
| 类型 | 趋势单 / 波段单 / 日内短线 |
| 趋势周期 | 5m / 15m / 30m / 1h / 4h / 1d |
| 入场周期 | 1m / 5m / 15m / 30m / 1h |
| 方向 | 多 / 空 |
| 目标位 | 文本 |
| 当前区间 | 文本 |
| 入场方案 | 突破方案 / 假突破突破方案 / 箱体拐点方案 |
| 结果 | **仅进行中**可填:盈 / 亏;**必选其一才归档** |
| 盈亏 | **可选**数字(U),不参与是否归档 |
| 备注 | 文本 |
## 业务流程
1. **新建** → 状态 `active`(进行中)
2. **修改** → 可改入场方案、备注、价位等(弹窗)
3. **删除** → 仅 **未填结果** 的进行中计划可删
4. **归档** → 在进行中选择 **盈/亏** 并点「填写结果并归档」→ 状态 `archived`,移入计划历史
## 数据统计
- **默认**:全部历史
- **时间**:全部 / 本周 / 本月 / 自选区间
- **维度 Tab**:币种 | 趋势周期 | 入场方案
- **胜率**:盈利 ÷ (盈利 + 亏损),仅统计已归档且结果=盈/亏 的计划
## API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/entry-plans/meta` | 枚举项 + 交易所列表 |
| GET | `/api/entry-plans?status=active\|archived` | 列表 |
| GET | `/api/entry-plans/{id}` | 详情 |
| POST | `/api/entry-plans` | 新建 |
| PATCH | `/api/entry-plans/{id}` | 更新;写入 `result` 时自动归档 |
| DELETE | `/api/entry-plans/{id}` | 删除(仅 active |
| GET | `/api/entry-plans/stats` | 统计;参数 `dimension``period``date_from``date_to` |
## 存储
- SQLite`manual_trading_hub/data/hub_entry_plans.db`
- 环境变量:`HUB_ENTRY_PLAN_DB_PATH`(可选自定义路径)
## 部署
```bash
git pull
pm2 restart manual-trading-hub
```
浏览器访问 `/plan`**Ctrl+F5** 强刷静态资源。
## 相关代码
| 文件 | 说明 |
|------|------|
| `hub_entry_plan_lib.py` | 库表、CRUD、统计 |
| `manual_trading_hub/hub.py` | REST API |
| `manual_trading_hub/static/plan.js` | 前端逻辑 |
| `manual_trading_hub/static/index.html` | 页面 DOM |
| `tests/test_hub_entry_plan_lib.py` | 单元测试 |