# 账户交易差异分析

## 📊 问题描述

- **account2**：下单胜率高，单子多
- **account3**：下单很少，没有止盈
- **account4**：下单很少，没有止盈

---

## 🔍 可能原因分析

### 1. 配置差异

**检查项**：
- `MIN_SIGNAL_STRENGTH`：信号强度阈值
- `AUTO_TRADE_ALLOW_4H_NEUTRAL`：是否允许4H中性趋势
- `AUTO_TRADE_ONLY_TRENDING`：是否只交易趋势行情
- `MIN_VOLUME_24H`：最小成交量要求
- `TOP_N_SYMBOLS`：只做最强N个
- `MAX_DAILY_ENTRIES`：每日最大开仓次数
- `MAX_OPEN_POSITIONS`：最大持仓数

**检查方法**：
```bash
# 查看account2、account3、account4的配置
# 在前端配置页面查看，或通过API查询
```

### 2. 账户余额差异

**问题**：
- 如果账户余额不足，可能无法开仓
- 如果余额太小，可能无法满足最小仓位要求

**检查方法**：
```bash
# 查看账户余额
grep -E "账户余额|余额|balance" /www/wwwroot/autosys_new/logs/trading_*.log | tail -n 20
```

### 3. 市场扫描结果差异

**问题**：
- 不同账户可能扫描到不同的交易对
- 信号强度可能不同

**检查方法**：
```bash
# 查看扫描结果
grep -E "扫描完成|找到.*个符合条件的交易对" /www/wwwroot/autosys_new/logs/trading_*.log | tail -n 30
```

### 4. 信号强度差异

**问题**：
- 如果 `MIN_SIGNAL_STRENGTH` 设置过高，可能过滤掉大部分信号
- account3和account4可能信号强度不足

**检查方法**：
```bash
# 查看信号强度
grep -E "技术指标分析|信号强度|should_trade" /www/wwwroot/autosys_new/logs/trading_*.log | tail -n 30
```

### 5. 风险控制限制

**问题**：
- `MAX_DAILY_ENTRIES`：可能已达到每日限额
- `MAX_OPEN_POSITIONS`：可能已达到最大持仓数
- `MAX_TOTAL_POSITION_PERCENT`：可能已达到总仓位上限

**检查方法**：
```bash
# 查看风险控制日志
grep -E "风险检查|已达到最大|每日限额" /www/wwwroot/autosys_new/logs/trading_*.log | tail -n 20
```

### 6. 止盈未触发的原因

**问题**：
- 止盈价设置过高，价格未达到
- 移动止损过早触发，导致止盈未触发
- 手动平仓过早，导致止盈未触发

**检查方法**：
```bash
# 查看止盈相关日志
grep -E "止盈|take_profit|触发.*目标" /www/wwwroot/autosys_new/logs/trading_*.log | tail -n 30
```

---

## 🔧 排查步骤

### 步骤1：检查配置差异

1. **前端检查**：
   - 登录前端，分别查看 account2、account3、account4 的配置
   - 对比关键配置项是否一致

2. **日志检查**：
   ```bash
   # 查看启动时的配置输出
   grep -A 50 "交易配置（当前策略）" /www/wwwroot/autosys_new/logs/trading_2.log | head -n 60
   grep -A 50 "交易配置（当前策略）" /www/wwwroot/autosys_new/logs/trading_3.log | head -n 60
   grep -A 50 "交易配置（当前策略）" /www/wwwroot/autosys_new/logs/trading_4.log | head -n 60
   ```

### 步骤2：检查市场扫描

```bash
# 查看最近的扫描活动
grep -E "开始扫描|扫描完成|找到.*个符合条件的交易对" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 10
grep -E "开始扫描|扫描完成|找到.*个符合条件的交易对" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 10
```

### 步骤3：检查交易信号

```bash
# 查看交易信号分析
grep -E "处理交易对|技术指标分析|跳过自动交易" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20
grep -E "处理交易对|技术指标分析|跳过自动交易" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 20
```

### 步骤4：检查风险控制

```bash
# 查看风险控制日志
grep -E "风险检查|余额不足|已达到最大|每日限额" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 10
grep -E "风险检查|余额不足|已达到最大|每日限额" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 10
```

### 步骤5：检查止盈情况

```bash
# 查看止盈相关日志
grep -E "止盈|take_profit|触发.*目标|自动平仓（止盈）" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20
grep -E "止盈|take_profit|触发.*目标|自动平仓（止盈）" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 20
```

---

## ✅ 解决方案

### 方案1：统一配置（推荐）

**如果配置不同**：
1. 在全局配置页面应用"山寨币狙击（高盈亏比）"策略
2. 确保所有账户使用相同的配置
3. 重启所有交易进程

### 方案2：检查账户余额

**如果余额不足**：
1. 检查账户余额是否充足
2. 确保余额满足最小仓位要求（`MIN_MARGIN_USDT`）

### 方案3：降低信号强度阈值

**如果信号强度不足**：
1. 检查 `MIN_SIGNAL_STRENGTH` 是否过高
2. 如果 account3/account4 的信号强度都是5，而 `MIN_SIGNAL_STRENGTH=7`，会被过滤
3. 建议统一设置为5

### 方案4：检查止盈逻辑

**如果止盈未触发**：
1. 检查止盈价设置是否正确
2. 检查移动止损是否过早触发
3. 检查是否有手动平仓干扰

---

## 🎯 快速检查命令

```bash
# 1. 检查配置差异
echo "=== Account 2 配置 ==="
grep -E "MIN_SIGNAL_STRENGTH|AUTO_TRADE_ALLOW_4H_NEUTRAL|TOP_N_SYMBOLS" /www/wwwroot/autosys_new/logs/trading_2.log | tail -n 5

echo "=== Account 3 配置 ==="
grep -E "MIN_SIGNAL_STRENGTH|AUTO_TRADE_ALLOW_4H_NEUTRAL|TOP_N_SYMBOLS" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 5

echo "=== Account 4 配置 ==="
grep -E "MIN_SIGNAL_STRENGTH|AUTO_TRADE_ALLOW_4H_NEUTRAL|TOP_N_SYMBOLS" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 5

# 2. 检查扫描结果
echo "=== Account 2 扫描 ==="
grep -E "扫描完成|找到.*个符合条件的交易对" /www/wwwroot/autosys_new/logs/trading_2.log | tail -n 5

echo "=== Account 3 扫描 ==="
grep -E "扫描完成|找到.*个符合条件的交易对" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 5

echo "=== Account 4 扫描 ==="
grep -E "扫描完成|找到.*个符合条件的交易对" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 5

# 3. 检查交易信号
echo "=== Account 2 信号 ==="
grep -E "处理交易对|开仓成功" /www/wwwroot/autosys_new/logs/trading_2.log | tail -n 10

echo "=== Account 3 信号 ==="
grep -E "处理交易对|开仓成功" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 10

echo "=== Account 4 信号 ==="
grep -E "处理交易对|开仓成功" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 10
```

---

## 📝 建议

1. **统一配置**：确保所有账户使用相同的策略配置
2. **检查余额**：确保账户余额充足
3. **降低门槛**：如果信号强度不足，降低 `MIN_SIGNAL_STRENGTH`
4. **检查止盈**：确认止盈逻辑正常工作

---

## ✅ 完成时间

2026-01-25
