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