# 交易推荐功能说明 ## 功能概述 交易推荐模块用于生成交易对推荐,供手动参考下单。推荐基于技术指标分析,包含详细的参数指标和推荐原因,方便后续复盘。 ## 数据库表结构 ### 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 中的完整表结构 ); ```