auto_trade_sys/MARGIN_DISPLAY_FIX.md
薇薇安 11e3532ac3 a
2026-01-17 20:23:49 +08:00

78 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 保证金显示修复说明
## 问题描述
发现持仓单子显示保证金为 0.00 USDT但实际有持仓
- 交易对XTZUSDT
- 数量0.1000
- 入场价0.6120
- 杠杆20x
- **实际保证金**0.1000 × 0.6120 / 20 = 0.00306 USDT
- **显示保证金**0.00 USDT因为使用 `toFixed(2)` 格式化)
## 问题原因
1. **前端显示问题**:使用 `toFixed(2)` 格式化保证金,当保证金小于 0.01 USDT 时,会显示为 0.00
2. **可能的历史数据**这个单子可能是在更新配置MIN_MARGIN_USDT: 0.5 → 5.0)之前开的,当时允许更小的保证金
## 修复内容
### 1. 前端显示优化
**修改文件**
- `frontend/src/components/StatsDashboard.jsx`
- `frontend/src/components/TradeList.jsx`
**修改逻辑**
- 如果保证金 >= 0.01 USDT使用 `toFixed(2)` 显示保留2位小数
- 如果保证金 < 0.01 USDT使用 `toFixed(4)` 显示保留4位小数
**修改位置**
1. 持仓列表中的保证金显示
2. 止损止盈金额显示
3. 交易列表中的保证金显示
### 2. 后端检查(已存在)
后端已经有最小保证金检查
- `trading_system/risk_manager.py` - `calculate_position_size()` 方法
- `trading_system/binance_client.py` - `place_order()` 方法
**检查逻辑**
- 如果保证金 < MIN_MARGIN_USDT当前为 5.0 USDT
1. 尝试增加仓位价值以满足最小保证金要求
2. 如果账户余额不足拒绝开仓
## 验证方法
### 1. 检查新开仓单子
- 新开仓的单子保证金应该 >= 5.0 USDT
- 如果看到保证金 < 5.0 USDT 的新单子说明检查逻辑有问题
### 2. 检查旧数据
- 旧数据可能保证金很小< 5.0 USDT这是正常的
- 这些单子会显示为 0.00XX USDT4位小数
### 3. 检查日志
查看开仓日志应该看到
```
✓ XTZUSDT 仓位计算成功: X.XXXX
(仓位价值: XX.XX USDT,
名义价值: XX.XX USDT,
保证金: X.XXXX USDT, 杠杆: 20x)
```
如果保证金 < 5.0 USDT应该看到警告并拒绝开仓
## 建议
1. **平仓旧的小保证金单子**如果看到保证金 < 5.0 USDT 的持仓建议手动平仓
2. **检查配置**确保 `MIN_MARGIN_USDT` 配置为 5.0 USDT
3. **监控新开仓**观察新开仓的单子确保保证金 >= 5.0 USDT
## 总结
**前端显示已优化**:小保证金会显示为 0.00XX USDT4位小数
**后端检查已存在**新开仓会检查最小保证金要求5.0 USDT
⚠️ **旧数据可能显示为小保证金**:这是正常的,建议手动平仓