Files
crypto_monitor/策略交易说明.md
T
2026-05-23 10:48:50 +08:00

119 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 策略交易说明
本文档说明仓库根目录 **共用策略逻辑** 与四个 `crypto_monitor_*` 实例中的 **策略交易** 入口(导航栏「策略·趋势回调」「策略·顺势加仓」)。
---
## 一、架构(精简共用)
```
strategy_trend_lib.py # 趋势回调:网格价、补仓拆分、边界校验(纯计算)
strategy_roll_lib.py # 顺势加仓:总风险反推、斐波限价、最多 3 腿(纯计算)
strategy_db.py # roll_groups / roll_legs 表结构
strategy_config.py # 各所 app → 统一回调配置(交易所 API)
strategy_register.py # Flask 路由:/strategy/trend、/strategy/roll
strategy_exchange_*.py # 适配器说明(实际下单仍走各所 app 的 ccxt)
strategy_templates/ # 顺势加仓页、趋势禁用提示页
```
| 层级 | 职责 |
|------|------|
| **lib** | 不算 ccxt、不写库 |
| **config** | 把 `place_exchange_order``replace_active_monitor_tpsl_on_exchange` 等接到统一 cfg |
| **各所 app** | `.env`、DB、`init_db`、PM2、微信、监控轮询 |
部署时各实例 `PYTHONPATH` 需包含仓库根目录(`ecosystem.config.cjs``PYTHONPATH=..`)。
---
## 二、导航与页面
| 路由 | 名称 | 说明 |
|------|------|------|
| `/strategy/trend` | 趋势回调 | **完整功能仅在 `crypto_monitor_gate_bot`**;其它所显示说明页 |
| `/strategy/roll` | 顺势加仓 | **四所均可用**(须已有同向持仓) |
| `/trade` | 实盘下单 | 首仓、以损定仓、移动保本(不变) |
---
## 三、趋势回调(延续 Gate 趋势机器人逻辑)
- **位置**`crypto_monitor_gate_bot`**策略·趋势回调**(原「交易执行」页内区块已迁出)。
- **行为**:与《[crypto_monitor_gate_bot/趋势回调策略说明.md](./crypto_monitor_gate_bot/趋势回调策略说明.md)》一致——预览 → 确认执行 → 首仓 50% + 交易所止损 + 多档 **自动** 市价补仓 + 程序监控止盈。
- **共用代码**`parse_and_compute_trend_pullback_plan` 中网格/拆档已改为调用 `strategy_trend_lib`
- **互斥**:与「机器人下单监控」持仓上限、运行中趋势计划互斥(逻辑未改)。
其它三所打开 `/strategy/trend` 会提示:请使用 Gate 趋势机器人实例。
---
## 四、顺势加仓(滚仓,仅人工)
### 4.1 原则
- **禁止自动加仓**;仅页面按钮「执行滚仓」或挂限价单(无价格穿越自动下单)。
- **全币种**(与各所合约列表一致)。
- **止盈**:全程使用 **首仓** `order_monitors.take_profit`,滚仓不改止盈。
- **止损**:每次人工填写 **新统一止损**;成交后调用各所 **先撤后挂** TP/SL(止盈仍为首仓)。
- **总风险%**:按「合并持仓 + 新止损」反推本次加仓张数,使触及新止损时亏损约 **账户基数 × 风险%**(默认 2%,可在表单修改)。
- **做多**最多滚仓 **3** 次(首仓不计入,仅计 `roll_legs` 已成交次数);做空默认同样 3 次(见 `strategy_roll_lib.ROLL_MAX_LEGS_SHORT`)。
### 4.2 斐波限价
- 填写 **上沿 H、下沿 L**(H > L),仅用于计算限价加仓价(与 `fib_key_monitor_lib.calc_fib_plan`**entry** 一致)。
- **做多**:下沿 = 结构止损侧;**做空**:上沿 = 结构止损侧。
- 可选 **0.618****0.786**;与关键位自动单的 TP(H/L 对侧)**不同**,滚仓 TP 锁定首仓。
### 4.3 前置条件
1.**实盘下单** 已有同 symbol、同方向 **active** `order_monitors`
2. 交易所有同向持仓(读 `get_live_position_contracts`)。
3.**active** `trend_pullback_plans`(与趋势回调互斥)。
### 4.4 数据表(各所 `crypto.db`
- `roll_groups`:绑定 `order_monitor_id`、首仓 TP/SL、当前 SL、已滚仓次数。
- `roll_legs`:每腿方式(市价 / 斐波0.618 / 斐波0.786)、张数、新 SL、状态(`filled` / `pending`)。
`init_db()` 时自动 `CREATE TABLE IF NOT EXISTS``strategy_db.init_strategy_tables`)。
### 4.5 操作步骤
1. 打开 **策略·顺势加仓** `/strategy/roll`
2. 选择持仓币种、方向、加仓方式,填写 H/L(斐波时)、**新统一止损**、总风险%。
3. 点击 **执行滚仓**(市价立即加仓并更新止损;限价则挂委托,成交后需再处理止损——当前版本限价 pending 后提示手动同步)。
4. 查看页底 **滚仓腿历史**
可选:对表单字段 POST `/strategy/roll/preview`JSON)查看 `strategy_roll_lib.preview_roll` 结果。
---
## 五、升级与重启
```bash
cd /opt/crypto_monitor
git pull
# 四所 PM2 若用到滚仓/趋势 lib,建议重启
pm2 restart crypto_binance crypto_gate crypto_gate_bot crypto_okx manual-trading-hub
```
仅改 Python 库、未改模板时,重启对应 Flask 进程即可。
---
## 六、相关文档
| 文档 | 内容 |
|------|------|
| [crypto_monitor_gate_bot/趋势回调策略说明.md](./crypto_monitor_gate_bot/趋势回调策略说明.md) | 趋势回调细则 |
| [manual_trading_hub/使用说明.md](./manual_trading_hub/使用说明.md) | 中控(不含策略交易) |
| [fib_key_monitor_lib.py](./fib_key_monitor_lib.py) | 斐波公式共用 |
---
## 七、后续可增强(未实现)
- 滚仓页内嵌预览按钮、限价成交后一键同步止损。
- 趋势回调计划逻辑进一步迁入 `strategy_trend_lib` + 各所 adapter 类(当前仅拆出网格/拆档计算)。
- Binance / Gate 主站 / OKX 移植趋势回调自动补仓(需复制 `check_trend_pullback_plans` 轮询)。