223 lines
6.6 KiB
Markdown
223 lines
6.6 KiB
Markdown
# 账户交易差异分析
|
||
|
||
## 📊 问题描述
|
||
|
||
- **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
|