# 功能说明文档 国内期货 · 交易复盘系统(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 + 交易时段) - 顺势加仓:**市价**须交易时段;**突破**可休盘提交监控,开盘触价成交 - 策略记录单独归档 --- ## 开单计划 **路径**:`/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 分钟(`qihuo-ctp` Worker) | | 挂单超时撤单 | 可配置分钟数 | | 止盈止损守护 | `qihuo-ctp` Worker 内 tick 监控 | | 滚仓 pending 监控 | `qihuo-ctp` Worker,交易时段扫描突破触价 | | 数据库自动备份 | 每日定时(默认 03:00)写入 `/root/qihuo_backup` | --- ## 核心文件 ``` qihuo/ ├── app.py # 主路由、计划/关键位/记录/统计 ├── install_trading.py # 下单、可开仓品种、策略路由 ├── vnpy_bridge.py # CTP 桥接(Web=IPC,Worker=vn.py) ├── ctp_worker.py # 独立 CTP Worker(PM2: qihuo-ctp) ├── ctp_ipc_client.py # Web → Worker HTTP 客户端 ├── 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