---
title: V5 短线交易信号系统方案
---

# V5 短线交易信号系统方案

> 版本：v5.0 | 日期：2026-02-27 | 状态：方案定稿，待开发
> 
> 来源：露露（Opus 4.6）× 小周（GPT-5.3-Codex）10轮讨论

---

## 1. 目标

将 aggTrades 成交流数据转化为**可执行的短线做多/做空交易信号**，实现从"监控工具"到"交易工具"的升级。

## 2. 信号体系

### 2.1 核心门槛（3/3 必须全部满足）

| # | 条件 | 做多 | 做空 |
|---|------|------|------|
| 1 | CVD_fast (30m 滚动) | > 0 且斜率正 | < 0 且斜率负 |
| 2 | CVD_mid (4h 滚动) | > 0 | < 0 |
| 3 | VWAP 位置 | price > VWAP_30m | price < VWAP_30m |

**说明**：CVD = Cumulative Volume Delta（累计买卖差额），是成交流分析最核心的指标。

- **CVD_fast**：30分钟滚动窗口，捕捉短线动量
- **CVD_mid**：4小时滚动窗口，确认大方向
- **CVD_day**：UTC日内重置，作为盘中强弱基线参考（不作为入场条件）

> ⚠️ CVD_fast 在剧烈波动时自适应：当1m成交量超过均值3倍时，窗口自动拉长到60m，防噪音误判。

### 2.2 加分条件（决定仓位大小，满分60分）

| 条件 | 分值 | 说明 |
|------|------|------|
| ATR 压缩→扩张 | +25 | 5m ATR分位从 <40% 突破 >60%，波动开始放大 |
| 无反向 P99 超大单 | +20 | 最近15分钟内无极端反向成交 |
| 资金费率配合 | +15 | 做多时费率<0.01%，做空时费率>0.01% |

### 2.3 仓位映射

| 加分总分 | 仓位等级 | 占总资金 |
|----------|----------|----------|
| 0-15 | 最小仓 | 2% |
| 20-40 | 中仓 | 5% |
| 45-60 | 满仓 | 8% |

### 2.4 预估信号频率

核心3条件同时满足概率约 20-30%，每5分钟检查一次。去掉冷却期重复后，预计**日均 5-15 个有效信号**。

## 3. 指标计算

### 3.1 CVD（Cumulative Volume Delta）

```
CVD = Σ(主动买量) - Σ(主动卖量)

三轨并行：
- CVD_fast：滚动30m窗口（入场信号）
- CVD_mid：滚动4h窗口（方向过滤）
- CVD_day：UTC日内重置（盘中基线）
```

入场优先看 fast，方向必须与 mid 同向。

### 3.2 大单阈值（动态分位数）

```
基于最近24h成交量分布：
- P99：超大单阈值
- P95：大单阈值
- 兜底下限：max(P95, 5 BTC)

区分"大单买"和"大单卖"的不对称性：
- 上涨趋势中出现P99大卖单，意义远大于P99大买单
```

### 3.3 ATR（Average True Range）

```
周期：5分钟K线，14根
用于：
1. 波动压缩→扩张判断（分位数）
2. 止损距离计算
```

### 3.4 VWAP（Volume Weighted Average Price）

```
滚动30分钟：VWAP_30m = Σ(price × qty) / Σ(qty)
用于：价格位置过滤（做多 price > VWAP，做空 price < VWAP）
```

## 4. 风控体系

### 4.1 止盈止损

| 参数 | 值 | 说明 |
|------|-----|------|
| 止损 (SL) | 1.2 × ATR(5m, 14) | 动态止损，适应波动 |
| 止盈1 (TP1) | 1.0R | 减仓50% |
| 止盈2 (TP2) | 2.0R | 剩余仓位移动止损 |
| 时间止损 | 30分钟 | 无延续即平仓，防磨损 |

> R = 1倍止损距离

### 4.2 冲突与冷却

- **信号冲突**：持仓中出现反向信号 → 先平仓 + 10分钟冷却再接受新信号
- **同方向冷却**：10分钟内不重复入场
- **单币限频**：每小时最多2次入场

### 4.3 多品种风控

- BTC / ETH 独立出信号
- 两个同时同向时，总仓位上限 10%
- 需要相关性过滤（ETH Delta 经常跟 BTC 走）

## 5. 回测达标线

| 指标 | 达标线 |
|------|--------|
| 胜率 | ≥ 45% |
| 盈亏比 (Avg Win / Avg Loss) | ≥ 1.5 |
| 最大回撤 (MDD) | ≤ 5% |
| 日均信号数 | 2-8 个 |
| 扣手续费后 | 正收益 |

**手续费模型**：
- Maker: 0.02%, Taker: 0.04%（Portfolio Margin 档位）
- 按 Taker 0.04% 双向估算（保守）
- 回测报告必须包含净收益/毛收益对比

**额外统计**：
- 持仓时长分布（验证30min时间止损合理性）
- Rate-limit 重试统计（回补脚本用）

## 6. 技术架构

### 6.1 进程拓扑

```
                    ┌─────────────────┐
Binance WS ──────→ │  agg-collector   │ ──→ agg_trades_YYYYMM
                    └─────────────────┘
                              │
                              ▼
                    ┌─────────────────┐
                    │  signal-engine   │ ──→ signal_indicators (5s)
                    │                 │ ──→ signal_indicators_1m (聚合)
                    │                 │ ──→ signal_trades
                    │                 │ ──→ Discord推送
                    └─────────────────┘
                              │
                    ┌─────────────────┐
                    │   backtest.py    │ ──→ 回测报告
                    └─────────────────┘
```

- **agg-collector**：只做采集+落库，不动（已有）
- **signal-engine**：新建独立进程，指标计算 + 信号生成
- **backtest.py**：离线回测脚本

### 6.2 数据库新增表

| 表名 | 用途 | 保留策略 |
|------|------|----------|
| signal_indicators | 每5秒指标快照（CVD/ATR/VWAP/P95等） | 30天 |
| signal_indicators_1m | 1分钟聚合（前端默认读此表） | 长期 |
| signal_trades | 信号触发的开仓/平仓记录 | 长期 |

### 6.3 指标计算策略

- **内存滚动 + 增量更新**（不是每次SQL全量聚合）
- 启动时回灌历史窗口（30m/4h/24h）到内存
- 之后只处理新增 agg_id 增量
- 每5秒把快照落库（幂等）

### 6.4 冷启动处理

signal-engine 重启后：
1. 从DB回读最近4h的aggTrades重算所有指标
2. 前N根标记为 `warmup`，不出信号
3. warmup 完成后开始正常信号生成

## 7. 历史数据回补

### 7.1 回补脚本（backfill_agg_trades.py）

```
参数：--symbol BTCUSDT --days 7 --batch-size 1000
流程：
1. 查DB中最早的agg_id
2. 从最早agg_id向前REST分页补拉
3. 每次1000条，sleep 200ms防限流
4. INSERT OR IGNORE 写入agg_trades_YYYYMM
5. 断点续传：记录进度到meta表
6. 完成后输出统计+连续性检查
```

### 7.2 速率控制

- Binance aggTrades REST 限流：weight 20/min
- 每请求 sleep 200ms，实际约 3-5 req/s
- 带指数退避重试，429后等60s
- 记录 rate-limit 统计（429次数、退避次数）

## 8. 开发时间线

| Day | 任务 | 交付物 | 负责 |
|-----|------|--------|------|
| 1 | 回补脚本 + 1天小样本 | backfill跑通，BTC/ETH各1天入库 | 露露开发，小周部署 |
| 2 | 全量7天回补 + 连续性验证 | 完整7天aggTrades，缺口=0 | 小周跑+验收 |
| 3-4 | signal-engine + 前端指标展示 | CVD三轨/ATR/VWAP/大单标记实时可视化 | 露露开发，小周部署 |
| 5 | 回测框架 + 首版回测报告 | 胜率/盈亏比/MDD/持仓分布/净收益 | 露露开发 |
| 6+ | 调参优化 → 达标后模拟盘 | 模拟交易记录 | 协同 |

## 9. 前置依赖

| 依赖 | 状态 | 影响范围 |
|------|------|----------|
| aggTrades 实时采集 | ✅ 已运行 | Phase 1-3 已满足 |
| 历史数据回补 | ⏳ Day 1-2 | 回测需要 |
| Binance API Key | ⏳ 等范总 | 仅Phase 4实盘 |
| Portfolio Margin | ⏳ 等范总 | 仅Phase 4实盘 |
| 资金准备 | ⏳ 等范总 | 仅Phase 4实盘 |

> Phase 1-3 不依赖范总，可立即开工。

## 10. 版本历史

| 版本 | 日期 | 内容 |
|------|------|------|
| v2-v4 | 2026-02-27 | 权限管控+aggTrades采集+成交流面板 |
| **v5.0** | **2026-02-27** | **短线交易信号系统方案定稿** |
