auto_trade_sys/TRADE_RECOMMENDATIONS.md
薇薇安 272b4cdc19 a
2026-01-15 11:35:00 +08:00

6.1 KiB
Raw Blame History

交易推荐功能说明

功能概述

交易推荐模块用于生成交易对推荐,供手动参考下单。推荐基于技术指标分析,包含详细的参数指标和推荐原因,方便后续复盘。

数据库表结构

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生成

POST /api/recommendations/generate
参数:
- min_signal_strength: 最小信号强度默认5范围0-10
- max_recommendations: 最大推荐数量默认20范围1-50

通过代码生成

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. 查看推荐

获取所有推荐

GET /api/recommendations
参数:
- status: 状态过滤active/executed/expired/cancelled
- direction: 方向过滤BUY/SELL
- limit: 返回数量默认50最大200
- start_date: 开始日期YYYY-MM-DD
- end_date: 结束日期YYYY-MM-DD

获取当前有效推荐

GET /api/recommendations/active

获取推荐详情

GET /api/recommendations/{recommendation_id}

根据交易对获取推荐

GET /api/recommendations/symbol/{symbol}
参数:
- limit: 返回数量默认10最大50

3. 管理推荐

标记推荐已执行

POST /api/recommendations/{recommendation_id}/execute
Body:
{
  "trade_id": 123  // 可选关联的交易记录ID
}

取消推荐

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. 风险控制

    • 严格按照建议止损止盈执行
    • 不要超过建议仓位

示例

生成推荐

curl -X POST "http://localhost:8001/api/recommendations/generate?min_signal_strength=5&max_recommendations=10"

查看有效推荐

curl "http://localhost:8001/api/recommendations/active"

标记已执行

curl -X POST "http://localhost:8001/api/recommendations/1/execute" \
  -H "Content-Type: application/json" \
  -d '{"trade_id": 123}'

数据库迁移

如果数据库已存在需要执行以下SQL创建推荐表

-- 执行 backend/database/init.sql 中的 trade_recommendations 表创建语句

或者手动执行:

CREATE TABLE IF NOT EXISTS `trade_recommendations` (
  -- 见 init.sql 中的完整表结构
);