95156ca595
Refresh DEPLOY, TRADING, STRATEGY, CTP_LIVE, FEATURES, INDEX, and README to document qihuo-ctp architecture, dual PM2 restarts, and休盘突破加仓. Co-authored-by: Cursor <cursoragent@cursor.com>
132 lines
3.9 KiB
Markdown
132 lines
3.9 KiB
Markdown
# 策略交易
|
||
|
||
**页面路径**:`/strategy`、`/strategy/records`
|
||
|
||
**相关文件**:`install_trading.py`、`strategy/strategy_roll_lib.py`、`strategy/strategy_roll_monitor_lib.py`
|
||
|
||
---
|
||
|
||
## 功能概述
|
||
|
||
| 策略 | 说明 |
|
||
|------|------|
|
||
| 趋势回调 | 首仓 + 网格补仓 + 统一止盈 |
|
||
| 顺势加仓(滚仓) | 对已有 active 持仓加仓,单独保证金上限 |
|
||
|
||
趋势首仓与 **市价滚仓** 须 **交易时段内** 且 **CTP 已连接**。
|
||
**突破加仓** 可在 **休盘**(小节休息、午间、日盘收盘后)提交监控,开盘触价后由 Worker 自动市价加仓。
|
||
|
||
---
|
||
|
||
## 趋势回调 — 下单逻辑
|
||
|
||
### 1. 创建计划(预览 → 确认首仓)
|
||
|
||
用户填写:品种、方向、止损、补仓上沿、止盈、风险比例等 → 系统预览手数/网格 → 确认后 **市价开首仓**。
|
||
|
||
**校验**(与下单监控相同):
|
||
|
||
- 交易时段、CTP 连接
|
||
- `assert_can_open()`、[RISK.md](./RISK.md)
|
||
- 品种范围、保证金上限
|
||
|
||
**成交后**:
|
||
|
||
- 写入 `trend_pullback_plans`(status=active)
|
||
- 创建/关联 `trade_order_monitors`(monitor_type=trend)
|
||
- 微信:`趋势回调首仓 {sym} {first_lots}手`
|
||
|
||
### 2. 运行中监控
|
||
|
||
后台扫描 active 计划:
|
||
|
||
| 条件 | 动作 |
|
||
|------|------|
|
||
| 价格触及 **take_profit** | 全部平仓,计划结案 |
|
||
| 价格回落至 **网格档位** | 按档位补仓(不超过 remainder_lots) |
|
||
|
||
**补仓**:市价加仓,更新均价与监控。
|
||
|
||
**止盈**:市价全平。
|
||
|
||
微信:
|
||
|
||
- 止盈 → `趋势回调止盈 {sym}`
|
||
- 补仓 → `趋势回调补仓 {sym} +{add_lots}手 @档位{N}`
|
||
|
||
### 3. 策略记录
|
||
|
||
`/strategy/records` 单独归档已结束计划。
|
||
|
||
---
|
||
|
||
## 顺势加仓(滚仓)— 下单逻辑
|
||
|
||
针对 **已有 active 持仓监控** 的加仓预览与执行。须 **固定金额(以损定仓)** 模式;**移动保本** 持仓不可滚仓。
|
||
|
||
### 加仓方式
|
||
|
||
| 方式 | 提交时机 | 执行 |
|
||
|------|----------|------|
|
||
| **市价加仓** | 仅 **交易时段** | 预览 → 10 秒倒计时 → 立即 CTP 市价成交 |
|
||
| **突破加仓** | **任意时间**(含休盘) | 预览 → **提交监控** → 标记价穿越突破价后 Worker 自动市价加仓 |
|
||
|
||
休盘提交突破加仓时,几何校验放宽为「止损 vs 突破价」关系,不强制要求实时现价;开盘后有行情后按触价逻辑成交。
|
||
|
||
### 特殊风控
|
||
|
||
| 项 | 说明 |
|
||
|----|------|
|
||
| 仓位上限冻结 | **仍允许滚仓**(`can_roll=True`) |
|
||
| `roll_max_margin_pct` | 滚仓后总保证金占用单独上限 |
|
||
| 手数收紧 | `cap_lots_for_margin_budget()` 按滚仓上限裁剪 |
|
||
|
||
流程:
|
||
|
||
- **市价**:预览 → 确认 → CTP 市价加仓 → 更新 monitor
|
||
- **突破**:预览 → 提交 pending 腿 → `check_roll_monitors`(在 `qihuo-ctp` Worker 内)触价成交
|
||
|
||
---
|
||
|
||
## 风控规则
|
||
|
||
| 规则 | 趋势首仓 | 市价滚仓 | 突破滚仓(pending) |
|
||
|------|----------|----------|---------------------|
|
||
| assert_can_open | ✓ | 仓位冻结时仍可 | 仓位冻结时仍可 |
|
||
| max_margin_pct | ✓ 首仓 | — | — |
|
||
| roll_max_margin_pct | — | ✓ | ✓(预览时按突破价估算) |
|
||
| 交易时段 | ✓ | ✓ | 提交 **不要求**;成交须交易时段 |
|
||
| CTP 连接 | ✓ | ✓ | 提交 **不要求**;触价成交须 CTP |
|
||
| 品种范围 | ✓ | ✓ | ✓ |
|
||
| 单笔 50 手 | ✓ | ✓ | ✓ |
|
||
|
||
全局规则见 [RISK.md](./RISK.md)。
|
||
|
||
---
|
||
|
||
## 止盈止损
|
||
|
||
趋势持仓纳入 `sl_tp_guard` 本地监控(与下单监控相同机制)。
|
||
|
||
- monitor_type = `trend` / `roll`
|
||
- 平仓写入 `trade_logs`,来源标签「趋势回调」「顺势加仓」
|
||
|
||
---
|
||
|
||
## 微信推送
|
||
|
||
| 事件 | 模板 |
|
||
|------|------|
|
||
| 首仓 | [WECHAT §11](./WECHAT.md#11-策略趋势回调) |
|
||
| 止盈 | 同上 |
|
||
| 补仓 | 同上 |
|
||
| 结构化平仓 | [WECHAT §4](./WECHAT.md#4-平仓完成) |
|
||
|
||
---
|
||
|
||
## 相关文档
|
||
|
||
- [ORDER_MONITOR.md](./ORDER_MONITOR.md)
|
||
- [RISK.md](./RISK.md)
|
||
- [WECHAT.md](./WECHAT.md)
|