169136dd4a
Document per-module order logic, risk rules, and WeChat message templates with a central INDEX for navigation. Co-authored-by: Cursor <cursoragent@cursor.com>
288 lines
9.3 KiB
Markdown
288 lines
9.3 KiB
Markdown
# 功能说明文档
|
||
|
||
国内期货 · 交易复盘系统(Flask + SQLite + vnpy_ctp + PM2)。
|
||
|
||
> **分板块详细说明(含下单逻辑、风控、微信模板)** → [INDEX.md](./INDEX.md)
|
||
> 重点:[WECHAT.md](./WECHAT.md) · [AI.md](./AI.md) · [RISK.md](./RISK.md)
|
||
|
||
---
|
||
|
||
## 系统概览
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 访问端口 | 默认 `6600` |
|
||
| 默认首页 | 登录后 `/` → **下单监控** `/positions` |
|
||
| 数据存储 | SQLite `futures.db` |
|
||
| 行情 | 默认新浪;可选同花顺 iFinD |
|
||
| 合约代码 | 同花顺格式(`ag2606`、`SR609`、`IF2606`) |
|
||
| 主题 | 页头深色 / 浅色切换 |
|
||
|
||
### 导航结构
|
||
|
||
| 菜单 | 路径 | 可关闭 |
|
||
|------|------|--------|
|
||
| **下单监控** | `/positions` | 否(默认首页) |
|
||
| 策略交易 | `/strategy` | 是 |
|
||
| 开单计划 | `/plans` | 是 |
|
||
| 关键位监控 | `/keys` | 否 |
|
||
| 行情 K 线 | `/market` | 是 |
|
||
| 交易记录与复盘 | `/records` | 否 |
|
||
| 统计分析 | `/stats` | 否 |
|
||
| AI 分析 | `/ai` | 是 |
|
||
| 手续费配置 | `/fees` | 是 |
|
||
| 系统设置 | `/settings` | 否 |
|
||
|
||
关闭项在 **系统设置 → 导航显示** 配置;直接访问 URL 会提示并跳回下单监控。
|
||
|
||
---
|
||
|
||
## 下单监控
|
||
|
||
**路径**:`/positions` · 详见 [ORDER_MONITOR.md](./ORDER_MONITOR.md)
|
||
|
||
### 顶栏
|
||
|
||
- 模拟盘 / 实盘模式、CTP 连接状态、风险状态
|
||
- 权益、可用资金(连接 CTP 后来自柜台)
|
||
- **连接 CTP** / 重连;断线自动重连;开盘前 30 分钟自动连接
|
||
|
||
### 期货下单
|
||
|
||
- 品种联想(可开仓品种表与下拉一致;小账户或 CTP 未连接时仅四品种,见 [TRADING.md](./TRADING.md))
|
||
- 方向、手数(固定手数 / 固定金额计仓)
|
||
- 限价 / 市价(FAK)、止盈、止损
|
||
- **移动保本**(默认关闭):开启后隐藏止盈与盈亏比,仅填止损;由移动止损监控平仓,不设固定止盈
|
||
- 非交易时段禁止报单
|
||
|
||
### 当前持仓
|
||
|
||
- 开仓委托先显示 **挂单中**,成交后显示为 active 持仓
|
||
- 挂单超时自动撤单;交易时段内可 **手动撤单**
|
||
- 持仓卡片:浮盈亏、保证金、止盈止损、平仓等
|
||
- 数据经 SSE 推送,无需整页刷新
|
||
|
||
### 可开仓品种
|
||
|
||
- 按当前权益与保证金上限筛选可开品种,养成开仓纪律、限制仓位
|
||
- **权益 ≤20 万** 或 **CTP 未连接** 时,仅展示并可交易:玉米、豆粕、甲醇、螺纹钢(SimNow/实盘一致);未连接时最大手数按 **10 万权益** 估算
|
||
- **夜盘时段** 仅显示有夜盘品种,并标注「夜盘」
|
||
- **行业分类**、走势(多头/空头/震荡/转多/转空)、跳空、昨日成交量(手)、成交额
|
||
- 支持行业筛选与多字段排序
|
||
- 每日后台刷新缓存
|
||
|
||
详见 [TRADING.md](./TRADING.md)。
|
||
|
||
---
|
||
|
||
## 策略交易
|
||
|
||
**路径**:`/strategy`、`/strategy/records` · 详见 [STRATEGY.md](./STRATEGY.md)
|
||
|
||
- 趋势回调自动补仓、顺势加仓等(需 CTP 已连接且有 active 持仓监控)
|
||
- 策略记录单独归档
|
||
|
||
---
|
||
|
||
## 开单计划
|
||
|
||
**路径**:`/plans` · 详见 [PLANS.md](./PLANS.md)
|
||
|
||
- 录入当日计划:主力合约、方向、决策区间、止损、止盈
|
||
- 状态:`planned` → `active` → `closed` / `expired`
|
||
- 现价进入区间 → 企业微信推送并激活
|
||
- 激活后监控止盈/止损,触发写入 `trade_records` 并关闭计划
|
||
- 列表约 1 秒轮询 `/api/plan_prices`
|
||
|
||
---
|
||
|
||
## 关键位监控
|
||
|
||
**路径**:`/keys` · 详细规则见 [KEY_MONITORS.md](./KEY_MONITORS.md)
|
||
|
||
- **箱体突破 / 收敛突破**:5m 收盘突破 → 顺势/反转自动市价单;止损=突破 K±2 跳;盈亏比默认 2(可改);可选移动保本(默认 3R 止盈)
|
||
- **关键支阻区**:上沿阻力 + 下沿支撑;5m 收盘突破 → 微信提醒最多 3 次(间隔约 5 分钟),不自动开仓
|
||
- 删除后归档至监控历史;列表约 1 秒轮询 `/api/key_prices`
|
||
|
||
---
|
||
|
||
## 行情 K 线
|
||
|
||
**路径**:`/market` · 详见 [MARKET.md](./MARKET.md)
|
||
|
||
- 多周期 K 线(TradingView Lightweight Charts)
|
||
- 支持 CTP 连接后部分数据增强
|
||
- 需在导航中开启
|
||
|
||
---
|
||
|
||
## 交易记录与复盘
|
||
|
||
**路径**:`/records`(`/trades` 重定向至此) · 详见 [RECORDS.md](./RECORDS.md)
|
||
|
||
### 资金曲线
|
||
|
||
- 页顶 Lightweight Charts 资金曲线
|
||
- 随深色/浅色主题自动切换颜色
|
||
|
||
### 交易记录
|
||
|
||
- **CTP 已连接** 时打开页面自动同步柜台成交(来源「柜台」)
|
||
- 程序写入的记录来源为「本地」,可核对、删除
|
||
- 表头固定,表体约 10 行高度内滚动
|
||
- **修改/核对开关**:开启后可编辑并「核对修改」
|
||
- **填入复盘**:预填复盘表单
|
||
|
||
主要字段:品种、类型、方向、成交价、止损/止盈、手数、保证金、盈亏、手续费、净盈亏、最新资金、结果。
|
||
|
||
### 复盘上传 / 复盘历史
|
||
|
||
- 手动复盘表单、截图、自动 K 线图(matplotlib)
|
||
- 按本日/本周/本月/自定义日期筛选历史
|
||
|
||
---
|
||
|
||
## 统计分析
|
||
|
||
**路径**:`/stats` · 详见 [STATS.md](./STATS.md)
|
||
|
||
### 汇总指标(单行卡片)
|
||
|
||
总交易次数、胜率、平均盈利/亏损、盈亏比、连续亏损、最大回撤、最大盈亏金额及占比、累计手续费、情绪单数量/占比。
|
||
|
||
进入页面自动加载(`/api/stats`),无手动「重新计算」按钮。
|
||
|
||
### 分项统计
|
||
|
||
下拉选择维度:按时间、周、月、品种、手续费、方向、交易类型、情绪单等,表格展示分组指标。
|
||
|
||
数据来源:`trade_logs`(主)+ `review_records`(情绪单等)。
|
||
|
||
---
|
||
|
||
## AI 分析
|
||
|
||
**路径**:`/ai` · 详见 [AI.md](./AI.md)
|
||
|
||
- 开仓/平仓/关键位成交后后台 AI 复盘(Ollama 或 OpenAI 兼容 API)
|
||
- 日终持仓与交易报告(可推微信)
|
||
- 消息存档于 `/ai` 页面;配置见系统设置 → AI 分析
|
||
|
||
---
|
||
|
||
## 手续费配置
|
||
|
||
**路径**:`/fees`
|
||
|
||
- **默认**:连接 CTP 后同步柜台费率(`source=ctp`)
|
||
- 备选:本地 `data/fee_rates.json`、AKShare 参考表 × 倍率
|
||
- 详见 [FEES.md](./FEES.md)
|
||
|
||
---
|
||
|
||
## 系统设置
|
||
|
||
**路径**:`/settings` · 详见 [SETTINGS.md](./SETTINGS.md)
|
||
|
||
| 功能 | 说明 |
|
||
|------|------|
|
||
| 导航显示 | 开关可选菜单项 |
|
||
| 交易模式 | SimNow / 实盘 CTP |
|
||
| 计仓模式 | 固定手数、固定金额 |
|
||
| 保证金上限、移动保本缓冲、挂单超时 | 保证金上限默认 30%;移动保本缓冲为达 1R 后止损相对开仓价的跳数(默认 2 跳) |
|
||
| CTP 连接 | SimNow / 实盘前置与账号(可覆盖 `.env`) |
|
||
| 参考资金 | CTP 未连接时用于可开仓筛选与估算 |
|
||
| 企业微信 Webhook | 计划/关键位/交易/AI 推送 · 见 [WECHAT.md](./WECHAT.md) |
|
||
| 登录账号 | 用户名/密码,同步写入 `.env` |
|
||
| 数据备份与恢复 | 自动/手动备份、下载压缩包、恢复说明 |
|
||
| 深色/浅色主题 | 页头切换 |
|
||
|
||
备份详情见 [BACKUP.md](./BACKUP.md)。
|
||
|
||
忘记密码:`python reset_admin.py`
|
||
|
||
---
|
||
|
||
## 品种与行情
|
||
|
||
### 合约代码格式
|
||
|
||
| 交易所 | 示例 |
|
||
|--------|------|
|
||
| 上期所 / 大商所 / 能源 | `ag2606`、`rb2605`(小写+4位年月) |
|
||
| 郑商所 | `SR609`、`MA606`(大写+3位年月) |
|
||
| 中金所 | `IF2606` |
|
||
|
||
### 行情源
|
||
|
||
| 配置 | 说明 |
|
||
|------|------|
|
||
| `QUOTE_SOURCE=sina` | 默认新浪 |
|
||
| `QUOTE_SOURCE=ths` | iFinD token |
|
||
| `QUOTE_SOURCE=auto` | 有 token 优先同花顺 |
|
||
|
||
---
|
||
|
||
## 数据库表(简要)
|
||
|
||
| 表名 | 用途 |
|
||
|------|------|
|
||
| `settings` | 密码、微信、资金、导航、交易参数 |
|
||
| `order_plans` | 开单计划 |
|
||
| `key_monitors` | 关键位监控 |
|
||
| `trade_logs` | 平仓交易记录(含 `source`、`ctp_trade_key`) |
|
||
| `review_records` | 复盘 |
|
||
| `trade_records` | 计划自动止盈止损记录 |
|
||
| `fee_rates` | 手续费缓存 |
|
||
| `product_recommend_cache` | 可开仓品种缓存 |
|
||
| `stats_cache` | 统计缓存 |
|
||
|
||
数据库文件:项目根目录 `futures.db`。
|
||
|
||
---
|
||
|
||
## 后台任务
|
||
|
||
| 任务 | 说明 |
|
||
|------|------|
|
||
| 计划/关键位轮询 | 约 3 秒,触发判断与微信推送 |
|
||
| 可开仓品种刷新 | 每日 + 按需 |
|
||
| 持仓 SSE | 前端订阅 `/api/trading/stream` |
|
||
| CTP 开盘前连接 | 默认开盘前 30 分钟 |
|
||
| 挂单超时撤单 | 可配置分钟数 |
|
||
| 止盈止损守护 | CTP 持仓监控线程 |
|
||
| 数据库自动备份 | 每日定时(默认 03:00)写入 `/root/qihuo_backup` |
|
||
|
||
---
|
||
|
||
## 核心文件
|
||
|
||
```
|
||
qihuo/
|
||
├── app.py # 主路由、计划/关键位/记录/统计
|
||
├── install_trading.py # 下单、可开仓品种、策略路由
|
||
├── vnpy_bridge.py # CTP 连接、报单、持仓
|
||
├── ctp_trade_sync.py # 柜台成交同步到 trade_logs
|
||
├── product_recommend.py # 可开仓品种计算
|
||
├── stats_engine.py # 统计分析
|
||
├── db_backup.py # 数据库备份与恢复包
|
||
├── fee_specs.py / ctp_fee_sync.py
|
||
├── market.py / kline_chart.py
|
||
├── templates/ static/
|
||
└── docs/
|
||
```
|
||
|
||
---
|
||
|
||
## 安全提示
|
||
|
||
- 部署后立即修改默认密码
|
||
- 勿将 `.env` 提交仓库
|
||
- 生产建议 Nginx + HTTPS,限制 6600 访问范围
|
||
|
||
---
|
||
|
||
## 仓库
|
||
|
||
https://git.bz121.com/dekun/qihuo.git
|