This commit is contained in:
薇薇安 2026-01-15 11:35:00 +08:00
parent b08d97b442
commit 272b4cdc19

255
TRADE_RECOMMENDATIONS.md Normal file
View File

@ -0,0 +1,255 @@
# 交易推荐功能说明
## 功能概述
交易推荐模块用于生成交易对推荐,供手动参考下单。推荐基于技术指标分析,包含详细的参数指标和推荐原因,方便后续复盘。
## 数据库表结构
### trade_recommendations 表
包含以下字段:
- **基本信息**
- `symbol`: 交易对(如 BTCUSDT
- `direction`: 推荐方向BUY/SELL
- `recommendation_time`: 推荐时间
- `current_price`: 当前价格
- `change_percent`: 24小时涨跌幅
- **推荐原因**
- `recommendation_reason`: 推荐原因(详细说明)
- `signal_strength`: 信号强度0-10
- `market_regime`: 市场状态trending/ranging
- `trend_4h`: 4H周期趋势up/down/neutral
- **技术指标**
- `rsi`: RSI指标
- `macd_histogram`: MACD柱状图
- `bollinger_upper/middle/lower`: 布林带上下中轨
- `ema20/ema50`: EMA均线
- `ema20_4h`: 4H周期EMA20
- `atr`: 平均真实波幅
- **建议参数**
- `suggested_stop_loss`: 建议止损价
- `suggested_take_profit_1`: 建议第一目标止盈价盈亏比1:1
- `suggested_take_profit_2`: 建议第二目标止盈价
- `suggested_position_percent`: 建议仓位百分比
- `suggested_leverage`: 建议杠杆倍数
- **市场数据**
- `volume_24h`: 24小时成交量
- `volatility`: 波动率
- **状态管理**
- `status`: 状态active/executed/expired/cancelled
- `executed_at`: 执行时间
- `execution_result`: 执行结果
- `execution_trade_id`: 关联的交易记录ID
- `expires_at`: 推荐过期时间默认24小时
## 使用方法
### 1. 生成推荐
#### 通过API生成
```bash
POST /api/recommendations/generate
参数:
- min_signal_strength: 最小信号强度默认5范围0-10
- max_recommendations: 最大推荐数量默认20范围1-50
```
#### 通过代码生成
```python
from trading_system.trade_recommender import TradeRecommender
from trading_system.binance_client import BinanceClient
from trading_system.market_scanner import MarketScanner
from trading_system.risk_manager import RiskManager
# 初始化组件
client = BinanceClient(...)
scanner = MarketScanner(client)
risk_manager = RiskManager(client)
recommender = TradeRecommender(client, scanner, risk_manager)
# 生成推荐
recommendations = await recommender.generate_recommendations(
min_signal_strength=5,
max_recommendations=20
)
```
### 2. 查看推荐
#### 获取所有推荐
```bash
GET /api/recommendations
参数:
- status: 状态过滤active/executed/expired/cancelled
- direction: 方向过滤BUY/SELL
- limit: 返回数量默认50最大200
- start_date: 开始日期YYYY-MM-DD
- end_date: 结束日期YYYY-MM-DD
```
#### 获取当前有效推荐
```bash
GET /api/recommendations/active
```
#### 获取推荐详情
```bash
GET /api/recommendations/{recommendation_id}
```
#### 根据交易对获取推荐
```bash
GET /api/recommendations/symbol/{symbol}
参数:
- limit: 返回数量默认10最大50
```
### 3. 管理推荐
#### 标记推荐已执行
```bash
POST /api/recommendations/{recommendation_id}/execute
Body:
{
"trade_id": 123 // 可选关联的交易记录ID
}
```
#### 取消推荐
```bash
POST /api/recommendations/{recommendation_id}/cancel
Body:
{
"notes": "取消原因" // 可选
}
```
## 推荐生成逻辑
### 信号分析
推荐模块使用与交易策略相同的信号分析逻辑:
1. **多周期共振检查**
- 4H周期定方向
- 禁止逆4H趋势交易
- 4H周期共振时信号强度+2
2. **技术指标分析**
- 震荡市场使用均值回归策略RSI、布林带
- 趋势市场使用趋势跟踪策略MACD、均线
3. **信号强度计算**
- 基础信号2-4分
- 多指标确认:+2分
- 4H周期共振+2分
- 要求信号强度 >= 5可配置
### 建议参数计算
1. **止损价**
- 优先使用基于支撑/阻力的动态止损
- 回退到ATR或固定百分比止损
2. **止盈价**
- 第一目标盈亏比1:1了结50%仓位)
- 第二目标止损的2.5倍剩余50%仓位)
3. **建议仓位**
- 基础仓位配置的MAX_POSITION_PERCENT
- 根据信号强度调整信号强度越高建议仓位可适当增加最多1.5倍)
## 推荐状态
- **active**: 有效推荐(未过期、未执行、未取消)
- **executed**: 已执行(已手动下单)
- **expired**: 已过期超过24小时
- **cancelled**: 已取消(手动取消)
## 复盘功能
推荐记录包含完整的技术指标和执行结果,方便复盘:
1. **查看历史推荐**
- 按时间、状态、方向筛选
- 查看推荐时的技术指标
2. **分析推荐质量**
- 对比推荐原因与实际结果
- 分析不同信号强度的成功率
- 评估不同市场状态下的推荐效果
3. **优化策略**
- 根据复盘结果调整信号强度要求
- 优化推荐生成逻辑
## 注意事项
1. **推荐有效期**
- 默认24小时后自动过期
- 过期后状态变为 `expired`
2. **信号强度**
- 建议使用信号强度 >= 5 的推荐
- 信号强度越高,推荐质量越好
3. **手动验证**
- 推荐仅供参考,请结合市场情况手动验证
- 建议在关键支撑/阻力位附近入场
4. **风险控制**
- 严格按照建议止损止盈执行
- 不要超过建议仓位
## 示例
### 生成推荐
```bash
curl -X POST "http://localhost:8001/api/recommendations/generate?min_signal_strength=5&max_recommendations=10"
```
### 查看有效推荐
```bash
curl "http://localhost:8001/api/recommendations/active"
```
### 标记已执行
```bash
curl -X POST "http://localhost:8001/api/recommendations/1/execute" \
-H "Content-Type: application/json" \
-d '{"trade_id": 123}'
```
## 数据库迁移
如果数据库已存在需要执行以下SQL创建推荐表
```sql
-- 执行 backend/database/init.sql 中的 trade_recommendations 表创建语句
```
或者手动执行:
```sql
CREATE TABLE IF NOT EXISTS `trade_recommendations` (
-- 见 init.sql 中的完整表结构
);
```