Update documentation to match current product features.
Rewrite module docs for order monitor, CTP sync, and stats; remove obsolete simulated-position and UI descriptions. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,30 +1,37 @@
|
|||||||
# 国内期货交易监控复盘系统
|
# 国内期货交易监控复盘系统
|
||||||
|
|
||||||
基于 Flask 的国内期货**监控 + 模拟持仓 + 复盘** Web 应用。支持开单计划、关键位监控、持仓监控、交易记录、复盘 K 线、手续费估算与企业微信推送。
|
基于 Flask 的国内期货 **CTP 下单 + 监控 + 复盘 + 统计** Web 应用。模拟盘连接 SimNow,实盘连接期货公司 CTP;支持关键位/计划提醒、交易记录同步、资金曲线、品种推荐与企业微信推送。
|
||||||
|
|
||||||
## 文档
|
## 文档
|
||||||
|
|
||||||
| 文档 | 说明 |
|
| 文档 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| **[功能说明文档](docs/FEATURES.md)** | 各模块功能、操作逻辑、费率与数据库说明 |
|
| **[功能说明](docs/FEATURES.md)** | 各模块功能、页面路径、数据库与后台任务 |
|
||||||
| **[部署文档](docs/DEPLOY.md)** | 一键部署、手动部署、更新、PM2、故障排查 |
|
| **[部署文档](docs/DEPLOY.md)** | 一键部署、更新、PM2、故障排查 |
|
||||||
|
| **[SimNow 接入](docs/SIMNOW.md)** | 仿真账号注册与 CTP 前置 |
|
||||||
|
| **[交易与策略](docs/TRADING.md)** | 下单、持仓、品种推荐、策略 API |
|
||||||
|
| **[手续费与导航](docs/FEES.md)** | CTP 费率同步、导航开关 |
|
||||||
|
|
||||||
## 功能一览
|
## 功能一览
|
||||||
|
|
||||||
| 模块 | 说明 |
|
| 模块 | 路径 | 说明 |
|
||||||
|------|------|
|
|------|------|------|
|
||||||
| **开单计划** | 当日决策区间、止损止盈;进入区间激活并推送 |
|
| **下单监控**(默认首页) | `/positions` | CTP 连接、期货下单、当前持仓、品种推荐 |
|
||||||
| **关键位监控** | 箱体/阻力支撑突破提醒,监控历史归档 |
|
| **策略交易** | `/strategy` | 趋势回调 / 顺势加仓(可导航开关) |
|
||||||
| **持仓监控** | 模拟持仓录入、实时卡片、平仓记入交易记录 |
|
| **开单计划** | `/plans` | 当日决策区间、触发推送(可开关) |
|
||||||
| **交易记录与复盘** | 平仓记录核对、填入复盘、K 线自动生成 |
|
| **关键位监控** | `/keys` | 箱体/阻力支撑突破提醒 |
|
||||||
| **统计分析** | 胜率、手续费与净盈亏汇总 |
|
| **行情 K 线** | `/market` | 多周期 K 线(可开关) |
|
||||||
| **手续费配置** | 本地费率表(默认标准×2),可选 AKShare 同步 |
|
| **交易记录与复盘** | `/records` | 资金曲线、CTP 成交同步、复盘上传 |
|
||||||
| **品种简介** | 合约规格查询(东方财富 / 新浪) |
|
| **统计分析** | `/stats` | 汇总指标 + 多维度分项统计 |
|
||||||
| **系统设置** | 实盘资金、企业微信、改密码、深色/浅色主题 |
|
| **手续费配置** | `/fees` | CTP / 本地费率(可开关) |
|
||||||
|
| **品种简介** | `/contract` | 合约规格查询(可开关) |
|
||||||
|
| **系统设置** | `/settings` | 交易模式、CTP、计仓、微信、主题 |
|
||||||
|
|
||||||
|
登录后默认进入 **下单监控**;刷新当前页不会跳转,仅访问根路径 `/` 或新登录时进入默认页。
|
||||||
|
|
||||||
## 快速开始
|
## 快速开始
|
||||||
|
|
||||||
**服务器(Ubuntu root)**
|
**服务器(Ubuntu)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /opt/qihuo && bash deploy.sh
|
cd /opt/qihuo && bash deploy.sh
|
||||||
@@ -34,16 +41,19 @@ cd /opt/qihuo && bash deploy.sh
|
|||||||
**更新**
|
**更新**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /opt/qihuo && git pull && pm2 restart qihuo
|
cd /opt/qihuo
|
||||||
|
git fetch origin && git reset --hard origin/main
|
||||||
|
source venv/bin/activate && pip install -r requirements.txt
|
||||||
|
pm2 restart qihuo
|
||||||
```
|
```
|
||||||
|
|
||||||
详细步骤见 [部署文档](docs/DEPLOY.md)。
|
详见 [部署文档](docs/DEPLOY.md)。
|
||||||
|
|
||||||
**本地开发**
|
**本地开发**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 -m venv venv
|
python3 -m venv venv
|
||||||
source venv/bin/activate
|
source venv/bin/activate # Windows: venv\Scripts\activate
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
python app.py
|
python app.py
|
||||||
@@ -51,14 +61,14 @@ python app.py
|
|||||||
|
|
||||||
## 品种与行情
|
## 品种与行情
|
||||||
|
|
||||||
- 合约代码:**同花顺格式**(`ag2606`、`SR609`、`IF2606`),输入中文自动匹配主力
|
- 合约代码:**同花顺格式**(`ag2606`、`SR609`、`IF2606`),中文联想匹配主力
|
||||||
- 行情:默认**新浪财经**(免费);机构用户可配置同花顺 iFinD token
|
- 行情:默认 **新浪财经**;机构用户可配置同花顺 iFinD token
|
||||||
|
|
||||||
## 环境要求
|
## 环境要求
|
||||||
|
|
||||||
- Python 3.10+
|
- Python 3.10+(vnpy_ctp)
|
||||||
- PM2(生产部署)
|
- PM2(生产部署)
|
||||||
- 网络可访问 `hq.sinajs.cn`
|
- 网络:新浪行情、Git 仓库、SimNow/CTP 前置(见部署文档)
|
||||||
|
|
||||||
## 仓库
|
## 仓库
|
||||||
|
|
||||||
|
|||||||
+29
-8
@@ -175,12 +175,15 @@ mkdir -p /opt/qihuo/logs /opt/qihuo/uploads
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /opt/qihuo
|
cd /opt/qihuo
|
||||||
git pull
|
git fetch origin
|
||||||
|
git reset --hard origin/main
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
pm2 restart qihuo
|
pm2 restart qihuo
|
||||||
```
|
```
|
||||||
|
|
||||||
|
若服务器曾用 SCP 覆盖文件导致 `git pull` 冲突,用 `git reset --hard origin/main` 与远端对齐。
|
||||||
|
|
||||||
若 `vnpy_ctp` 安装失败(常见于缺少编译环境):
|
若 `vnpy_ctp` 安装失败(常见于缺少编译环境):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -195,8 +198,8 @@ pm2 restart qihuo
|
|||||||
### 首次启用 CTP 下单
|
### 首次启用 CTP 下单
|
||||||
|
|
||||||
1. 浏览器登录 → **系统设置** 确认 **模拟盘 · SimNow**
|
1. 浏览器登录 → **系统设置** 确认 **模拟盘 · SimNow**
|
||||||
2. 打开 **持仓监控** 页 → 点击 **连接 CTP**
|
2. 打开 **下单监控** 页 → 点击 **连接 CTP**
|
||||||
3. 连接成功后:权益来自柜台、**持仓监控** 显示 CTP 实际持仓、**期货下单** 可报单
|
3. 连接成功后:权益来自柜台、显示 CTP 持仓、可报单与品种推荐
|
||||||
|
|
||||||
详见 [TRADING.md](./TRADING.md)。
|
详见 [TRADING.md](./TRADING.md)。
|
||||||
|
|
||||||
@@ -318,9 +321,10 @@ ufw allow 6600/tcp
|
|||||||
| 手续费同步失败 | akshare 异常 | 使用「重载 JSON」或检查 akshare |
|
| 手续费同步失败 | akshare 异常 | 使用「重载 JSON」或检查 akshare |
|
||||||
| **未安装 vnpy / vnpy_ctp** | 依赖未装或编译失败 | 见下方「CTP / vnpy 故障排查」 |
|
| **未安装 vnpy / vnpy_ctp** | 依赖未装或编译失败 | 见下方「CTP / vnpy 故障排查」 |
|
||||||
| **CTP 连接超时** | SimNow 地址/账号/非交易时段 | 核对 `.env` 与 SimNow 官网前置 |
|
| **CTP 连接超时** | SimNow 地址/账号/非交易时段 | 核对 `.env` 与 SimNow 官网前置 |
|
||||||
| **持仓监控为空** | 未连接 CTP 或确实无仓 | 先点「连接 CTP」 |
|
| **下单监控无持仓** | 未连接 CTP 或确实无仓 | 先点「连接 CTP」 |
|
||||||
| `database is locked` | SQLite 并发 | `git pull` 最新版后重启 |
|
| **`Could not resolve host`** | 服务器 DNS 故障 | 配置 systemd-resolved 公共 DNS,见下方 |
|
||||||
| `git pull` 冲突 | 本地有修改 | 备份 `futures.db` 后处理冲突或 `git stash` |
|
| `database is locked` | SQLite 并发 | 更新代码后重启 |
|
||||||
|
| `git pull` 冲突 | 本地有修改 / SCP 部署 | `git fetch && git reset --hard origin/main` |
|
||||||
|
|
||||||
查看应用是否在监听:
|
查看应用是否在监听:
|
||||||
|
|
||||||
@@ -328,7 +332,24 @@ ufw allow 6600/tcp
|
|||||||
ss -tlnp | grep 6600
|
ss -tlnp | grep 6600
|
||||||
```
|
```
|
||||||
|
|
||||||
### CTP / vnpy 故障排查
|
### DNS 无法解析(git / curl 均失败)
|
||||||
|
|
||||||
|
若 `curl cip.cc` 或 `git pull` 报 `Could not resolve host`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p /etc/systemd/resolved.conf.d
|
||||||
|
cat > /etc/systemd/resolved.conf.d/dns.conf <<'EOF'
|
||||||
|
[Resolve]
|
||||||
|
DNS=223.5.5.5 8.8.8.8
|
||||||
|
FallbackDNS=1.1.1.1
|
||||||
|
EOF
|
||||||
|
systemctl restart systemd-resolved
|
||||||
|
resolvectl flush-caches
|
||||||
|
```
|
||||||
|
|
||||||
|
验证:`resolvectl query git.bz121.com`、`curl cip.cc`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
页面提示 **「未安装 vnpy / vnpy_ctp」** 表示 Python 环境未成功安装 CTP 网关,下单与柜台持仓不可用(看盘、策略、复盘仍可用)。
|
页面提示 **「未安装 vnpy / vnpy_ctp」** 表示 Python 环境未成功安装 CTP 网关,下单与柜台持仓不可用(看盘、策略、复盘仍可用)。
|
||||||
|
|
||||||
@@ -349,7 +370,7 @@ pm2 restart qihuo
|
|||||||
|
|
||||||
**3. 连接**
|
**3. 连接**
|
||||||
|
|
||||||
登录系统 → **持仓监控** → **连接 CTP**。成功则顶栏显示「CTP 已连接」,权益变为 SimNow 账户资金。
|
登录系统 → **下单监控** → **连接 CTP**。成功则顶栏显示「CTP 已连接」,权益变为 SimNow 账户资金。
|
||||||
|
|
||||||
**4. 常见错误**
|
**4. 常见错误**
|
||||||
|
|
||||||
|
|||||||
+151
-237
@@ -1,6 +1,6 @@
|
|||||||
# 功能说明文档
|
# 功能说明文档
|
||||||
|
|
||||||
国内期货交易监控复盘系统(Flask + SQLite + PM2)各模块使用说明与技术要点。
|
国内期货交易监控复盘系统(Flask + SQLite + vnpy_ctp + PM2)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -9,23 +9,72 @@
|
|||||||
| 项目 | 说明 |
|
| 项目 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 访问端口 | 默认 `6600` |
|
| 访问端口 | 默认 `6600` |
|
||||||
| 数据存储 | SQLite `futures.db`(品种、计划、监控、持仓、交易记录、复盘、费率等) |
|
| 默认首页 | 登录后 `/` → **下单监控** `/positions` |
|
||||||
| 行情来源 | 默认新浪财经(免费);可选同花顺 iFinD(机构 token) |
|
| 数据存储 | SQLite `futures.db` |
|
||||||
| 合约代码 | 同花顺格式(如 `ag2606`、`SR609`、`IF2606`) |
|
| 行情 | 默认新浪;可选同花顺 iFinD |
|
||||||
| 主题 | 支持深色 / 浅色切换(页头左侧) |
|
| 合约代码 | 同花顺格式(`ag2606`、`SR609`、`IF2606`) |
|
||||||
|
| 主题 | 页头深色 / 浅色切换 |
|
||||||
|
|
||||||
### 导航结构
|
### 导航结构
|
||||||
|
|
||||||
| 菜单 | 路径 | 作用 |
|
| 菜单 | 路径 | 可关闭 |
|
||||||
|------|------|------|
|
|------|------|--------|
|
||||||
| 开单计划 | `/plans` | 当日计划录入与历史 |
|
| **下单监控** | `/positions` | 否(默认首页) |
|
||||||
| 关键位监控 | `/keys` | 关键位突破监控与历史 |
|
| 策略交易 | `/strategy` | 是 |
|
||||||
| 持仓监控 | `/positions` | 模拟持仓录入与实时卡片 |
|
| 开单计划 | `/plans` | 是 |
|
||||||
| 交易记录与复盘 | `/records` | 平仓记录 + 复盘上传与历史 |
|
| 关键位监控 | `/keys` | 否 |
|
||||||
| 统计分析 | `/stats` | 胜率、手续费、盈亏汇总 |
|
| 行情 K 线 | `/market` | 是 |
|
||||||
| 手续费配置 | `/fees` | 本地费率表与倍率 |
|
| 交易记录与复盘 | `/records` | 否 |
|
||||||
| 品种简介 | `/contract` | 合约规格查询 |
|
| 统计分析 | `/stats` | 否 |
|
||||||
| 系统设置 | `/settings` | 资金、微信、改密码 |
|
| 手续费配置 | `/fees` | 是 |
|
||||||
|
| 品种简介 | `/contract` | 是 |
|
||||||
|
| 系统设置 | `/settings` | 否 |
|
||||||
|
|
||||||
|
关闭项在 **系统设置 → 导航显示** 配置;直接访问 URL 会提示并跳回下单监控。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 下单监控
|
||||||
|
|
||||||
|
**路径**:`/positions`
|
||||||
|
|
||||||
|
### 顶栏
|
||||||
|
|
||||||
|
- 模拟盘 / 实盘模式、CTP 连接状态、风险状态
|
||||||
|
- 权益、可用资金(连接 CTP 后来自柜台)
|
||||||
|
- **连接 CTP** / 重连;断线自动重连;开盘前 30 分钟自动连接
|
||||||
|
|
||||||
|
### 期货下单
|
||||||
|
|
||||||
|
- 品种联想(仅推荐可开品种或全部主力,取决于计仓模式)
|
||||||
|
- 方向、手数(固定手数 / 固定金额计仓)
|
||||||
|
- 限价 / 市价(FAK)、止盈、止损
|
||||||
|
- 非交易时段禁止报单
|
||||||
|
|
||||||
|
### 当前持仓
|
||||||
|
|
||||||
|
- 开仓委托先显示 **挂单中**,成交后显示为 active 持仓
|
||||||
|
- 挂单超时自动撤单;交易时段内可 **手动撤单**
|
||||||
|
- 持仓卡片:浮盈亏、保证金、止盈止损、平仓等
|
||||||
|
- 数据经 SSE 推送,无需整页刷新
|
||||||
|
|
||||||
|
### 品种推荐
|
||||||
|
|
||||||
|
- 按当前权益与保证金上限筛选可开品种
|
||||||
|
- **行业分类**、走势(多头/空头/震荡/转多/转空)、跳空、昨日成交量(手)、成交额
|
||||||
|
- 支持行业筛选与多字段排序
|
||||||
|
- 每日后台刷新缓存
|
||||||
|
|
||||||
|
详见 [TRADING.md](./TRADING.md)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 策略交易
|
||||||
|
|
||||||
|
**路径**:`/strategy`、`/strategy/records`
|
||||||
|
|
||||||
|
- 趋势回调自动补仓、顺势加仓等(需 CTP 已连接且有 active 持仓监控)
|
||||||
|
- 策略记录单独归档
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -33,21 +82,11 @@
|
|||||||
|
|
||||||
**路径**:`/plans`
|
**路径**:`/plans`
|
||||||
|
|
||||||
### 功能
|
- 录入当日计划:主力合约、方向、决策区间、止损、止盈
|
||||||
|
- 状态:`planned` → `active` → `closed` / `expired`
|
||||||
- 制定**当日**开单计划:主力合约、方向、决策区间(上/下沿)、止损、止盈、决策理由。
|
- 现价进入区间 → 企业微信推送并激活
|
||||||
- 计划状态:`planned`(待触发)→ `active`(已激活)→ `closed` / `expired`。
|
- 激活后监控止盈/止损,触发写入 `trade_records` 并关闭计划
|
||||||
- 列表**实时现价**与距区间上下沿距离(约 1 秒轮询 `/api/plan_prices`)。
|
- 列表约 1 秒轮询 `/api/plan_prices`
|
||||||
|
|
||||||
### 触发逻辑(后台线程,约 3 秒)
|
|
||||||
|
|
||||||
1. **待触发**:现价进入决策区间 `[下限, 上限]` → 企业微信通知,状态变为「已激活」。
|
|
||||||
2. **已激活**:持续监控止盈 / 止损;触发后写入 `trade_records`(系统自动止盈止损记录),计划关闭。
|
|
||||||
|
|
||||||
### 操作
|
|
||||||
|
|
||||||
- 左侧表单添加计划;右侧为进行中计划列表。
|
|
||||||
- 下方可按日期筛选历史计划。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -55,102 +94,45 @@
|
|||||||
|
|
||||||
**路径**:`/keys`
|
**路径**:`/keys`
|
||||||
|
|
||||||
### 功能
|
- 类型:箱体突破、收敛突破、关键阻力、关键支撑
|
||||||
|
- 突破规则推送(去重);删除后归档至监控历史
|
||||||
- 监控类型:箱体突破、收敛突破、关键阻力位、关键支撑位。
|
- 列表约 1 秒轮询 `/api/key_prices`
|
||||||
- 录入:品种、类型、方向、上沿/下沿(阻力/支撑)。
|
|
||||||
- 列表显示现价、距上沿、距下沿(约 1 秒轮询 `/api/key_prices`)。
|
|
||||||
- **监控历史**:删除的监控归档,可查看上沿、下沿、归档时间。
|
|
||||||
|
|
||||||
### 推送逻辑
|
|
||||||
|
|
||||||
| 类型 | 规则 |
|
|
||||||
|------|------|
|
|
||||||
| 箱体 / 收敛 | 突破上沿、跌破下沿各推送一次(去重) |
|
|
||||||
| 阻力 / 支撑 | 单向突破推送一次 |
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 持仓监控
|
## 行情 K 线
|
||||||
|
|
||||||
**路径**:`/positions`
|
**路径**:`/market`
|
||||||
|
|
||||||
### 功能
|
- 多周期 K 线(TradingView Lightweight Charts)
|
||||||
|
- 支持 CTP 连接后部分数据增强
|
||||||
模拟盘持仓管理,与关键位页面分离。
|
- 需在导航中开启
|
||||||
|
|
||||||
### 持仓录入
|
|
||||||
|
|
||||||
| 字段 | 说明 |
|
|
||||||
|------|------|
|
|
||||||
| 主力合约 | 品种联想,同花顺代码 |
|
|
||||||
| 开仓时间 | 与合约、张数同一行,避免标签错位 |
|
|
||||||
| 张数 | 手数 |
|
|
||||||
| 成交价格 / 止损 / 止盈 | 用于方向推断与盈亏计算 |
|
|
||||||
|
|
||||||
- **方向**:未选手动方向时,根据止损与成交价自动判断(止损低于成交 → 做多,反之做空)。
|
|
||||||
- **风险比例**:依赖系统设置中的「实盘资金」。
|
|
||||||
|
|
||||||
### 实时持仓卡片
|
|
||||||
|
|
||||||
约 1 秒轮询 `/api/position_live`,展示:
|
|
||||||
|
|
||||||
- 成交价、止损、止盈、盈亏比、标记价、浮盈亏
|
|
||||||
- **预估手续费**、**扣费后浮盈亏**(按本地费率表估算)
|
|
||||||
- 保证金、仓位占比、开仓时间、持仓时长、张数
|
|
||||||
- **平仓**:按现价平仓,写入「交易记录」,并从持仓列表移除
|
|
||||||
|
|
||||||
### 平仓 → 交易记录
|
|
||||||
|
|
||||||
平仓时自动:
|
|
||||||
|
|
||||||
1. 拉取现价作为平仓价;
|
|
||||||
2. 计算毛盈亏、手续费、净盈亏;
|
|
||||||
3. 写入 `trade_logs`;
|
|
||||||
4. 删除 `position_monitors` 对应行。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 交易记录与复盘
|
## 交易记录与复盘
|
||||||
|
|
||||||
**路径**:`/records`(`/trades` 自动跳转到此页)
|
**路径**:`/records`(`/trades` 重定向至此)
|
||||||
|
|
||||||
页面上方为**交易记录**,下方为**复盘上传**与**复盘历史**。
|
### 资金曲线
|
||||||
|
|
||||||
|
- 页顶 Lightweight Charts 资金曲线
|
||||||
|
- 随深色/浅色主题自动切换颜色
|
||||||
|
|
||||||
### 交易记录
|
### 交易记录
|
||||||
|
|
||||||
来源主要为「持仓监控」平仓;字段包括:
|
- **CTP 已连接** 时打开页面自动同步柜台成交(来源「柜台」)
|
||||||
|
- 程序写入的记录来源为「本地」,可核对、删除
|
||||||
|
- 表头固定,表体约 10 行高度内滚动
|
||||||
|
- **修改/核对开关**:开启后可编辑并「核对修改」
|
||||||
|
- **填入复盘**:预填复盘表单
|
||||||
|
|
||||||
| 列 | 说明 |
|
主要字段:品种、类型、方向、成交价、止损/止盈、手数、保证金、盈亏、手续费、净盈亏、最新资金、结果。
|
||||||
|----|------|
|
|
||||||
| 品种 / 类型 / 方向 | 类型多为「持仓监控」 |
|
|
||||||
| 成交 / 止损 / 止盈 | 开仓时价格 |
|
|
||||||
| 基数 | 张数 + 保证金 |
|
|
||||||
| 持仓分钟 | 开平时间差 |
|
|
||||||
| 盈亏(元) | 毛盈亏(未扣费) |
|
|
||||||
| 手续费 | 开+平合计(本地费率估算) |
|
|
||||||
| 净盈亏 | 毛盈亏 − 手续费 |
|
|
||||||
| 结果 | 止盈 / 止损 / 手动平仓等 |
|
|
||||||
|
|
||||||
**修改/核对开关**(小字单行):开启后可编辑关键字段并「核对修改」保存(标记 `verified`)。
|
### 复盘上传 / 复盘历史
|
||||||
|
|
||||||
**填入复盘**:跳转本页复盘表单,自动预填品种、方向、价格、时间、盈亏等,并滚动到「复盘上传」区域。
|
- 手动复盘表单、截图、自动 K 线图(matplotlib)
|
||||||
|
- 按本日/本周/本月/自定义日期筛选历史
|
||||||
### 复盘上传
|
|
||||||
|
|
||||||
手动复盘表单,支持:
|
|
||||||
|
|
||||||
- 品种、方向、张数、周期、成交价、止损、止盈、平仓价
|
|
||||||
- 开仓/平仓时间 → 自动计算持仓时长、初始/实际盈亏比
|
|
||||||
- 开仓类型、离场触发、行为标签(勾选为情绪单)
|
|
||||||
- 截图上传;**自动 K 线**(matplotlib 生成复盘图)
|
|
||||||
- 保存时自动计算**手续费**与**净盈亏**写入 `review_records`
|
|
||||||
|
|
||||||
### 复盘历史
|
|
||||||
|
|
||||||
- 筛选:本日 / 本周 / 本月 / 自定义日期
|
|
||||||
- 列表含盈亏、手续费、净盈亏;支持全屏详情弹窗
|
|
||||||
- 另含「系统自动记录(止盈/止损)」:来自开单计划/关键位触发的 `trade_records`
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -158,24 +140,17 @@
|
|||||||
|
|
||||||
**路径**:`/stats`
|
**路径**:`/stats`
|
||||||
|
|
||||||
### 监控触发统计(trade_records)
|
### 汇总指标(单行卡片)
|
||||||
|
|
||||||
- 总交易、止盈、止损、胜率
|
总交易次数、胜率、平均盈利/亏损、盈亏比、连续亏损、最大回撤、最大盈亏金额及占比、累计手续费、情绪单数量/占比。
|
||||||
- 按品种 / 类型 / 方向分组胜率
|
|
||||||
|
|
||||||
### 手续费与盈亏汇总(trade_logs + review_records)
|
进入页面自动加载(`/api/stats`),无手动「重新计算」按钮。
|
||||||
|
|
||||||
| 指标 | 说明 |
|
### 分项统计
|
||||||
|------|------|
|
|
||||||
| 累计手续费 | 交易记录 + 复盘记录手续费之和 |
|
|
||||||
| 毛盈亏合计 | 未扣费盈亏 |
|
|
||||||
| 净盈亏合计 | 扣费后盈亏 |
|
|
||||||
| 计费笔数 | 有手续费字段的记录数 |
|
|
||||||
| 按品种手续费 | 交易记录中各品种累计手续费 |
|
|
||||||
|
|
||||||
### 最近交易
|
下拉选择维度:按时间、周、月、品种、手续费、方向、交易类型、情绪单等,表格展示分组指标。
|
||||||
|
|
||||||
展示最近 10 笔 `trade_logs`:毛盈亏、手续费、净盈亏、结果。
|
数据来源:`trade_logs`(主)+ `review_records`(情绪单等)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -183,36 +158,9 @@
|
|||||||
|
|
||||||
**路径**:`/fees`
|
**路径**:`/fees`
|
||||||
|
|
||||||
模拟盘参考费率,**非期货公司实盘账单**。
|
- **默认**:连接 CTP 后同步柜台费率(`source=ctp`)
|
||||||
|
- 备选:本地 `data/fee_rates.json`、AKShare 参考表 × 倍率
|
||||||
### 数据来源
|
- 详见 [FEES.md](./FEES.md)
|
||||||
|
|
||||||
1. **本地 JSON**:`data/fee_rates.json`(首次空库自动加载,已为常见品种写入约 **交易所标准 × 2**)
|
|
||||||
2. **第三方同步**:`pip install akshare` 后,点击「从第三方同步(AKShare)」
|
|
||||||
3. **手工编辑**:表格内修改单品种费率并保存
|
|
||||||
|
|
||||||
### 倍率
|
|
||||||
|
|
||||||
- 设置项「第三方标准费率 × N」,默认 **2**
|
|
||||||
- 从 AKShare 同步时:拉取参考标准后乘以该倍率写入 `fee_rates` 表
|
|
||||||
- 已写入表的数值即为当前生效费率,改倍率后需重新同步或手工调整
|
|
||||||
|
|
||||||
### 费率字段
|
|
||||||
|
|
||||||
| 字段 | 含义 |
|
|
||||||
|------|------|
|
|
||||||
| 开仓(元/手) | 固定每手费用 |
|
|
||||||
| 开仓(比例) | 成交价 × 合约乘数 × 手数 × 比例 |
|
|
||||||
| 平昨(元/手) / 平昨(比例) | 非当日平仓 |
|
|
||||||
| 平今(元/手) / 平今(比例) | 当日平仓(部分品种平今更高) |
|
|
||||||
|
|
||||||
### 计费规则
|
|
||||||
|
|
||||||
- 一笔往返 = **开仓费 + 平仓费**
|
|
||||||
- 开仓日与平仓日相同 → 用**平今**;否则用**平昨**
|
|
||||||
- 合约乘数见 `contract_specs.py`,与保证金估算共用
|
|
||||||
|
|
||||||
相关代码:`fee_specs.py`(计算)、`fee_sync.py`(AKShare 同步)、`contract_specs.py`(乘数/保证金)。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -220,29 +168,8 @@
|
|||||||
|
|
||||||
**路径**:`/contract`
|
**路径**:`/contract`
|
||||||
|
|
||||||
### 功能
|
- 查询合约规格(东方财富 + 新浪补充)
|
||||||
|
- API:`GET /api/contract_profile?symbol=...`
|
||||||
查询指定合约的**交易所规格说明**,展示风格与看盘软件「合约简介」类似:
|
|
||||||
|
|
||||||
- 交易品种、交易代码、交易单位、报价单位
|
|
||||||
- 最小变动价位(附一手最小波动估算)
|
|
||||||
- 最低交易保证金、涨跌停幅度
|
|
||||||
- 合约月份、交易时间、最后交易日、交割日期
|
|
||||||
- 交割方式、交割地点、交割品级、上市日期、交易所
|
|
||||||
|
|
||||||
### 使用
|
|
||||||
|
|
||||||
1. 导航进入「品种简介」
|
|
||||||
2. 输入中文品种名或同花顺合约代码(如 `螺纹钢`、`rb2510`)
|
|
||||||
3. 从联想列表选择或点击「查询」
|
|
||||||
|
|
||||||
### 数据来源
|
|
||||||
|
|
||||||
- 主数据:**东方财富** 合约详情接口
|
|
||||||
- 补充:**新浪财经** 合约页(交割地点、上市日期等)
|
|
||||||
- 若已安装 AKShare,优先走 AKShare 封装;否则直接请求上述数据源
|
|
||||||
|
|
||||||
API:`GET /api/contract_profile?symbol=rb2510` 返回 JSON。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -252,44 +179,37 @@ API:`GET /api/contract_profile?symbol=rb2510` 返回 JSON。
|
|||||||
|
|
||||||
| 功能 | 说明 |
|
| 功能 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 实盘资金 | 用于持仓监控的风险金额、仓位占比计算 |
|
| 导航显示 | 开关可选菜单项 |
|
||||||
| 行情说明 | 当前行情源展示 |
|
| 交易模式 | SimNow / 实盘 CTP |
|
||||||
| 企业微信 Webhook | 计划/关键位触发推送 |
|
| 计仓模式 | 固定手数、固定金额 |
|
||||||
| 修改密码 | 修改管理员密码 |
|
| 保证金上限、移动保本、挂单超时 | 见表单说明 |
|
||||||
|
| CTP 连接 | SimNow / 实盘前置与账号(可覆盖 `.env`) |
|
||||||
|
| 参考资金 | CTP 未连接时用于推荐与估算 |
|
||||||
|
| 企业微信 Webhook | 计划/关键位推送 |
|
||||||
|
| 修改密码 | 管理员密码 |
|
||||||
|
| 深色/浅色主题 | 页头切换 |
|
||||||
|
|
||||||
### 账号与密码
|
忘记密码:`python reset_admin.py`
|
||||||
|
|
||||||
- 账号存在 `futures.db` 的 `settings` 表
|
|
||||||
- 改 `.env` 不会自动改密码,需 `ADMIN_SYNC_FROM_ENV=true` 并重启,或网页改密
|
|
||||||
- 忘记密码:`python reset_admin.py`
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 品种与行情
|
## 品种与行情
|
||||||
|
|
||||||
### 品种联想
|
|
||||||
|
|
||||||
- 输入中文或代码,调用 `/api/symbols/search`
|
|
||||||
- 自动匹配主力合约,写入 `symbol`、`symbol_name`、`market_code`、`sina_code`
|
|
||||||
- 实现:`symbols.py` + `static/js/symbol.js`
|
|
||||||
|
|
||||||
### 合约代码格式
|
### 合约代码格式
|
||||||
|
|
||||||
| 交易所 | 示例 | 格式 |
|
| 交易所 | 示例 |
|
||||||
|--------|------|------|
|
|--------|------|
|
||||||
| 上期所 / 大商所 / 能源中心 | `ag2606`、`rb2605` | 小写品种 + 4 位年月 |
|
| 上期所 / 大商所 / 能源 | `ag2606`、`rb2605`(小写+4位年月) |
|
||||||
| 郑商所 | `SR609`、`MA606` | 大写品种 + 3 位年月 |
|
| 郑商所 | `SR609`、`MA606`(大写+3位年月) |
|
||||||
| 中金所 | `IF2606` | 大写品种 + 4 位年月 |
|
| 中金所 | `IF2606` |
|
||||||
|
|
||||||
### 行情
|
### 行情源
|
||||||
|
|
||||||
| 配置 | 说明 |
|
| 配置 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| `QUOTE_SOURCE=sina` | 默认,新浪 `hq.sinajs.cn` |
|
| `QUOTE_SOURCE=sina` | 默认新浪 |
|
||||||
| `QUOTE_SOURCE=ths` | 仅 iFinD 机构 token |
|
| `QUOTE_SOURCE=ths` | iFinD token |
|
||||||
| `QUOTE_SOURCE=auto` | 有 token 时优先同花顺,失败回退新浪 |
|
| `QUOTE_SOURCE=auto` | 有 token 优先同花顺 |
|
||||||
|
|
||||||
个人用户:**看同花顺代码,价格走新浪**,满足监控需求。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -297,52 +217,47 @@ API:`GET /api/contract_profile?symbol=rb2510` 返回 JSON。
|
|||||||
|
|
||||||
| 表名 | 用途 |
|
| 表名 | 用途 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| `settings` | 密码哈希、微信、实盘资金、手续费倍率等 |
|
| `settings` | 密码、微信、资金、导航、交易参数 |
|
||||||
| `order_plans` | 开单计划 |
|
| `order_plans` | 开单计划 |
|
||||||
| `key_monitors` | 关键位监控(active / archived) |
|
| `key_monitors` | 关键位监控 |
|
||||||
| `position_monitors` | 当前持仓 |
|
| `trade_logs` | 平仓交易记录(含 `source`、`ctp_trade_key`) |
|
||||||
| `trade_logs` | 平仓交易记录(含 fee、pnl_net) |
|
| `review_records` | 复盘 |
|
||||||
| `trade_records` | 计划/关键位自动止盈止损记录 |
|
| `trade_records` | 计划自动止盈止损记录 |
|
||||||
| `review_records` | 复盘记录(含 fee、pnl_net) |
|
| `fee_rates` | 手续费缓存 |
|
||||||
| `fee_rates` | 品种手续费(`source`:ctp / akshare / json / manual) |
|
| `product_recommend_cache` | 品种推荐缓存 |
|
||||||
|
| `stats_cache` | 统计缓存 |
|
||||||
|
|
||||||
手续费默认 **CTP 柜台** 费率,见 [FEES.md](./FEES.md)。
|
数据库文件:项目根目录 `futures.db`。
|
||||||
|
|
||||||
数据库文件:`futures.db`(项目根目录,运行后生成)。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 后台任务
|
## 后台任务
|
||||||
|
|
||||||
| 任务 | 频率 | 说明 |
|
| 任务 | 说明 |
|
||||||
|------|------|------|
|
|------|------|
|
||||||
| 计划/关键位行情轮询 | 约 3 秒 | 触发判断、微信推送 |
|
| 计划/关键位轮询 | 约 3 秒,触发判断与微信推送 |
|
||||||
| 关键位列表现价 | 约 1 秒 | 前端 `/api/key_prices` |
|
| 品种推荐刷新 | 每日 + 按需 |
|
||||||
| 计划列表现价 | 约 1 秒 | 前端 `/api/plan_prices` |
|
| 持仓 SSE | 前端订阅 `/api/trading/stream` |
|
||||||
| 持仓实时卡片 | 约 1 秒 | 前端 `/api/position_live` |
|
| CTP 开盘前连接 | 默认开盘前 30 分钟 |
|
||||||
| 过期计划清理 | 启动时 | 非当日计划标记 expired |
|
| 挂单超时撤单 | 可配置分钟数 |
|
||||||
|
| 止盈止损守护 | CTP 持仓监控线程 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 目录与核心文件
|
## 核心文件
|
||||||
|
|
||||||
```
|
```
|
||||||
qihuo/
|
qihuo/
|
||||||
├── app.py # 路由、业务、DB
|
├── app.py # 主路由、计划/关键位/记录/统计
|
||||||
├── market.py # 新浪 / 同花顺行情
|
├── install_trading.py # 下单、推荐、策略路由
|
||||||
├── symbols.py # 品种搜索与主力映射
|
├── vnpy_bridge.py # CTP 连接、报单、持仓
|
||||||
├── contract_specs.py # 合约乘数、保证金比例
|
├── ctp_trade_sync.py # 柜台成交同步到 trade_logs
|
||||||
├── fee_specs.py # 手续费计算
|
├── product_recommend.py # 品种推荐计算
|
||||||
├── fee_sync.py # AKShare 费率同步
|
├── stats_engine.py # 统计分析
|
||||||
├── contract_profile.py # 品种/合约简介查询
|
├── fee_specs.py / ctp_fee_sync.py
|
||||||
├── kline_chart.py # 复盘 K 线图
|
├── market.py / kline_chart.py
|
||||||
├── data/fee_rates.json # 默认费率表
|
├── templates/ static/
|
||||||
├── reset_admin.py # 重置管理员密码
|
└── docs/
|
||||||
├── templates/ # 页面模板
|
|
||||||
├── static/js/ # 前端脚本
|
|
||||||
├── docs/ # 文档
|
|
||||||
├── futures.db # SQLite(运行后生成)
|
|
||||||
└── uploads/ # 复盘截图与 K 线图
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -350,9 +265,8 @@ qihuo/
|
|||||||
## 安全提示
|
## 安全提示
|
||||||
|
|
||||||
- 部署后立即修改默认密码
|
- 部署后立即修改默认密码
|
||||||
- 勿将 `.env` 提交到仓库
|
- 勿将 `.env` 提交仓库
|
||||||
- 生产环境建议 Nginx 反代 + HTTPS
|
- 生产建议 Nginx + HTTPS,限制 6600 访问范围
|
||||||
- 限制 6600 端口访问范围(内网 / VPN)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+14
-34
@@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
| 模式 | 说明 |
|
| 模式 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| **CTP 柜台**(默认) | 连接 SimNow/实盘 CTP 后,通过 `ReqQryInstrumentCommissionRate` 查询柜台费率并缓存到 `fee_rates`(`source=ctp`) |
|
| **CTP 柜台**(推荐) | 连接 SimNow/实盘 CTP 后,查询柜台费率并缓存到 `fee_rates`(`source=ctp`) |
|
||||||
| **本地 / AKShare** | 使用 `data/fee_rates.json` 或 AKShare 交易所参考表 × 倍率,仅作离线估算 |
|
| **本地 / AKShare** | `data/fee_rates.json` 或 AKShare 参考表 × 倍率,离线估算 |
|
||||||
|
|
||||||
### 计算公式
|
### 计算公式
|
||||||
|
|
||||||
@@ -14,51 +14,31 @@
|
|||||||
往返手续费 = 开仓费 + 平仓费(同日持仓用平今,否则平昨)
|
往返手续费 = 开仓费 + 平仓费(同日持仓用平今,否则平昨)
|
||||||
```
|
```
|
||||||
|
|
||||||
CTP 返回字段映射:
|
|
||||||
|
|
||||||
| CTP 字段 | 本地字段 |
|
|
||||||
|----------|----------|
|
|
||||||
| OpenRatioByVolume | open_fixed |
|
|
||||||
| OpenRatioByMoney | open_ratio |
|
|
||||||
| CloseRatioByVolume | close_yesterday_fixed |
|
|
||||||
| CloseRatioByMoney | close_yesterday_ratio |
|
|
||||||
| CloseTodayRatioByVolume | close_today_fixed |
|
|
||||||
| CloseTodayRatioByMoney | close_today_ratio |
|
|
||||||
|
|
||||||
### 同步时机
|
### 同步时机
|
||||||
|
|
||||||
1. **连接 CTP 成功后** — 后台自动同步主力合约费率(约 60 个品种)
|
1. 连接 CTP 成功后 — 后台自动同步主力合约费率
|
||||||
2. **手续费配置页** — 点击「从 CTP 同步费率」
|
2. **手续费配置页** — 「从 CTP 同步费率」
|
||||||
3. **按需查询** — 计算某品种手续费时,若缓存无 CTP 费率则单品种查询
|
3. 计算某品种时 — 缓存缺失则单品种查询
|
||||||
|
|
||||||
### 配置路径
|
|
||||||
|
|
||||||
- 系统设置 → **手续费配置**(可在导航中开关显示)
|
|
||||||
- 选择「计费依据」→ 保存
|
|
||||||
- CTP 已连接时点击「从 CTP 同步费率」
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 导航显示开关
|
## 导航显示开关
|
||||||
|
|
||||||
**系统设置 → 导航显示** 可单独开关以下顶栏入口:
|
**系统设置 → 导航显示** 可开关:
|
||||||
|
|
||||||
| 开关 key | 菜单名 |
|
| key | 菜单 |
|
||||||
|----------|--------|
|
|-----|------|
|
||||||
| `fees` | 手续费配置 |
|
| `fees` | 手续费配置 |
|
||||||
| `contract` | 品种简介 |
|
| `contract` | 品种简介 |
|
||||||
| `plans` | 开单计划 |
|
| `plans` | 开单计划 |
|
||||||
| `market` | 行情 K 线 |
|
| `market` | 行情 K 线 |
|
||||||
| `strategy` | 策略交易 |
|
| `strategy` | 策略交易 |
|
||||||
|
|
||||||
关闭后:
|
关闭后顶栏隐藏;直接访问 URL 会提示并跳转到 **下单监控**。
|
||||||
|
|
||||||
- 顶栏不显示该链接
|
始终显示:**下单监控**、关键位监控、交易记录与复盘、统计分析、系统设置。
|
||||||
- 直接访问对应 URL 会提示并跳转到 **持仓监控**
|
|
||||||
|
|
||||||
始终显示的入口:持仓监控、关键位监控、交易记录与复盘、统计分析、系统设置。
|
设置保存在 `settings.nav_items`(JSON)。
|
||||||
|
|
||||||
设置保存在 SQLite `settings.nav_items`(JSON)。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -66,9 +46,9 @@ CTP 返回字段映射:
|
|||||||
|
|
||||||
| 文件 | 说明 |
|
| 文件 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| `fee_specs.py` | 费率查询与计算 |
|
| `fee_specs.py` | 费率计算 |
|
||||||
| `ctp_fee_sync.py` | CTP 费率同步 |
|
| `ctp_fee_sync.py` | CTP 同步 |
|
||||||
| `nav_settings.py` | 导航开关 |
|
| `nav_settings.py` | 导航开关 |
|
||||||
| `vnpy_bridge.py` | CTP 连接与费率查询 |
|
| `vnpy_bridge.py` | CTP 连接 |
|
||||||
|
|
||||||
详见 [DEPLOY.md](./DEPLOY.md)、[TRADING.md](./TRADING.md)。
|
详见 [DEPLOY.md](./DEPLOY.md)、[TRADING.md](./TRADING.md)。
|
||||||
|
|||||||
+2
-2
@@ -152,7 +152,7 @@ pm2 restart qihuo
|
|||||||
|
|
||||||
1. 登录本系统
|
1. 登录本系统
|
||||||
2. **系统设置** → 确认 **模拟盘 · SimNow**
|
2. **系统设置** → 确认 **模拟盘 · SimNow**
|
||||||
3. 打开 **持仓监控**(`/positions`)
|
3. 打开 **下单监控**(`/positions`)
|
||||||
4. 点击 **连接 CTP**
|
4. 点击 **连接 CTP**
|
||||||
5. 顶栏显示 **CTP 已连接**,权益变为 SimNow 账户资金即成功
|
5. 顶栏显示 **CTP 已连接**,权益变为 SimNow 账户资金即成功
|
||||||
|
|
||||||
@@ -228,4 +228,4 @@ pm2 restart qihuo
|
|||||||
- [ ] `.env` 中 `SIMNOW_USER`、`SIMNOW_PASSWORD` 已填写
|
- [ ] `.env` 中 `SIMNOW_USER`、`SIMNOW_PASSWORD` 已填写
|
||||||
- [ ] 前置地址与官网 **7×24 或交易时段** 说明一致
|
- [ ] 前置地址与官网 **7×24 或交易时段** 说明一致
|
||||||
- [ ] `pip install -r requirements.txt` 且 `vnpy_ctp` 导入成功
|
- [ ] `pip install -r requirements.txt` 且 `vnpy_ctp` 导入成功
|
||||||
- [ ] 系统 **持仓监控** 页 **连接 CTP** 成功
|
- [ ] 系统 **下单监控** 页 **连接 CTP** 成功
|
||||||
|
|||||||
+52
-38
@@ -1,58 +1,72 @@
|
|||||||
# 期货下单与策略交易
|
# 下单监控与策略交易
|
||||||
|
|
||||||
|
## 默认首页
|
||||||
|
|
||||||
|
登录或访问 `/` 后进入 **下单监控**(`/positions`)。页面包含:
|
||||||
|
|
||||||
|
| 区域 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 顶栏 | 交易模式、CTP 状态、权益/可用、连接 CTP |
|
||||||
|
| 期货下单 | 限价/市价报单、止盈止损、以损定仓/固定手数 |
|
||||||
|
| 当前持仓 | CTP 持仓卡片、挂单中、撤单、平仓 |
|
||||||
|
| 品种推荐 | 按权益筛选、行业分类、走势/跳空/成交量排序 |
|
||||||
|
|
||||||
|
`/trade`、`/recommend` 均重定向到 `/positions`(推荐锚点 `#recommend`)。
|
||||||
|
|
||||||
## 两种交易通道
|
## 两种交易通道
|
||||||
|
|
||||||
| 设置 | 实际连接 | 资金 |
|
| 设置 | 实际连接 | 资金 |
|
||||||
|------|----------|------|
|
|------|----------|------|
|
||||||
| **模拟盘** | **SimNow**(vnpy → CTP 仿真前置) | SimNow 账户权益 |
|
| **模拟盘** | SimNow(vnpy → CTP 仿真前置) | SimNow 账户权益 |
|
||||||
| **实盘** | **期货公司 CTP**(后期配置 `CTP_LIVE_*`) | 柜台权益 |
|
| **实盘** | 期货公司 CTP(`.env` 中 `CTP_LIVE_*`) | 柜台权益 |
|
||||||
|
|
||||||
已移除「本地 SQLite 假撮合」;模拟盘与实盘均走 **vnpy_ctp**,仅 `.env` 前置与账号不同。
|
模拟盘与实盘均走 **vnpy_ctp**,无本地假撮合。
|
||||||
|
|
||||||
## 依赖安装
|
## 下单与持仓
|
||||||
|
|
||||||
`requirements.txt` 已包含 `vnpy`、`vnpy_ctp`。服务器部署:
|
- **限价开仓**:先显示「挂单中」,柜台成交后进入持仓监控;超时未成交自动撤单(时长见系统设置)
|
||||||
|
- **撤单**:交易时段内可手动撤单;非交易时段按钮不可用
|
||||||
|
- **平仓**:程序平仓写入 `trade_logs`(来源「本地」)
|
||||||
|
- **持仓数据**:SSE `/api/trading/stream` 推送,约 1 秒刷新
|
||||||
|
|
||||||
```bash
|
## 品种推荐
|
||||||
cd /opt/qihuo
|
|
||||||
source venv/bin/activate
|
|
||||||
pip install -r requirements.txt
|
|
||||||
python -c "from vnpy_ctp import CtpGateway; print('OK')"
|
|
||||||
```
|
|
||||||
|
|
||||||
详见 [DEPLOY.md](./DEPLOY.md) 中「CTP / vnpy 故障排查」。
|
- 每日后台刷新可开品种列表(`/api/recommend/stream`)
|
||||||
|
- 最大手数 = floor(权益 × 保证金上限 ÷ 1 手保证金)
|
||||||
|
- 展示近一周日线走势、跳空、昨日成交量(手)、成交额
|
||||||
|
- 可按 **行业** 筛选,支持多字段排序
|
||||||
|
|
||||||
## 首次使用 SimNow
|
## 策略交易
|
||||||
|
|
||||||
完整注册、查投资者代码、前置地址与故障排查见 **[SimNow 注册与接入说明](./SIMNOW.md)**。
|
|
||||||
|
|
||||||
简要步骤:
|
|
||||||
|
|
||||||
1. 在 [SimNow 官网](https://www.simnow.com.cn/) 注册,查询 **投资者代码**(非手机号)
|
|
||||||
2. 复制 `.env.example` → `.env`,填写 `SIMNOW_USER`、`SIMNOW_PASSWORD`
|
|
||||||
3. 核对 SimNow 官网最新的 **7×24 或交易时段** 前置地址
|
|
||||||
4. `pip install -r requirements.txt`(含 vnpy、vnpy_ctp)
|
|
||||||
5. 启动程序 → **持仓监控** → 点击 **连接 CTP**
|
|
||||||
6. 连接成功后,权益、持仓、下单均来自 SimNow 柜台
|
|
||||||
|
|
||||||
## 参考资金
|
|
||||||
|
|
||||||
系统设置中的「参考资金」仅在 **CTP 未连接** 时用于品种推荐与以损定仓估算;连接 SimNow 后自动改用柜台权益。
|
|
||||||
|
|
||||||
## 导航
|
|
||||||
|
|
||||||
| 页面 | 路径 |
|
| 页面 | 路径 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 持仓监控(含下单、推荐) | `/positions` |
|
|
||||||
| 策略交易 | `/strategy` |
|
| 策略交易 | `/strategy` |
|
||||||
| 策略记录 | `/strategy/records` |
|
| 策略记录 | `/strategy/records` |
|
||||||
|
|
||||||
## API
|
趋势回调、顺势加仓等策略需先在下单监控完成开仓,再在策略页配置。
|
||||||
|
|
||||||
|
## 参考资金
|
||||||
|
|
||||||
|
系统设置中的「参考资金」仅在 **CTP 未连接** 时用于品种推荐与以损定仓估算;连接后自动改用柜台权益。
|
||||||
|
|
||||||
|
## 首次使用 SimNow
|
||||||
|
|
||||||
|
完整步骤见 **[SimNow 注册与接入说明](./SIMNOW.md)**。
|
||||||
|
|
||||||
|
简要:注册 SimNow → 填写 `.env` → 安装 vnpy_ctp → 登录系统 → **下单监控** → **连接 CTP**。
|
||||||
|
|
||||||
|
## 主要 API
|
||||||
|
|
||||||
| 接口 | 说明 |
|
| 接口 | 说明 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| `POST /api/ctp/connect` | 按当前模式连接 SimNow 或实盘 CTP |
|
| `POST /api/ctp/connect` | 连接 SimNow 或实盘 CTP |
|
||||||
| `GET /api/ctp/status` | 连接状态与缺失配置项 |
|
| `GET /api/ctp/status` | 连接状态 |
|
||||||
| `POST /api/trade/order` | 报单(限价/市价,需已连接 CTP) |
|
| `POST /api/trade/order` | 报单(需已连接 CTP) |
|
||||||
| `GET /api/trading/live` | 持仓(CTP 柜台数据) |
|
| `POST /api/trading/order/cancel` | 撤单(交易时段) |
|
||||||
| `GET /api/recommend/stream` | 品种推荐 SSE 推送 |
|
| `POST /api/trading/close` | 平仓 |
|
||||||
|
| `GET /api/trading/stream` | 持仓 SSE |
|
||||||
|
| `GET /api/recommend/list` | 品种推荐 JSON |
|
||||||
|
| `GET /api/recommend/stream` | 品种推荐 SSE |
|
||||||
|
| `POST /api/strategy/trend/execute` | 执行趋势策略 |
|
||||||
|
|
||||||
|
详见 [DEPLOY.md](./DEPLOY.md) 中 CTP 故障排查。
|
||||||
|
|||||||
Reference in New Issue
Block a user