a
This commit is contained in:
parent
244ef6f4ba
commit
06272b6922
|
|
@ -248,7 +248,27 @@ const TradeList = () => {
|
|||
<div className="stat-value">总盈亏:{stats.total_pnl.toFixed(2)} USDT</div>
|
||||
<div className="stat-value">平均盈亏:{stats.avg_pnl.toFixed(2)} USDT</div>
|
||||
<div className="stat-value">平均持仓时长(分钟):{Number(stats.avg_duration_minutes || 0).toFixed(0)}</div>
|
||||
<div className="stat-value">平仓原因(有意义交易):{stats.exit_reason_counts.join(' / ')}</div>
|
||||
<div className="stat-value">平仓原因(有意义交易):
|
||||
<div className="stat-value" style={{ fontSize: '1.1rem' }}>
|
||||
{(() => {
|
||||
const m = stats.exit_reason_counts || {}
|
||||
const stopLoss = Number(m.stop_loss || 0)
|
||||
const takeProfit = Number(m.take_profit || 0)
|
||||
const trailing = Number(m.trailing_stop || 0)
|
||||
const manual = Number(m.manual || 0)
|
||||
const sync = Number(m.sync || 0)
|
||||
const other = Number(m.unknown || 0)
|
||||
const parts = []
|
||||
if (stopLoss) parts.push(`止损 ${stopLoss}`)
|
||||
if (takeProfit) parts.push(`止盈 ${takeProfit}`)
|
||||
if (trailing) parts.push(`移动止损 ${trailing}`)
|
||||
if (manual) parts.push(`手动 ${manual}`)
|
||||
if (sync) parts.push(`同步 ${sync}`)
|
||||
if (other) parts.push(`其他 ${other}`)
|
||||
return parts.length ? parts.join(' / ') : '—'
|
||||
})()}
|
||||
</div>
|
||||
</div>
|
||||
<div className="stat-value">平均盈利 / 平均亏损(期望 3:1):{stats.avg_win_loss_ratio.toFixed(2)} : 1</div>
|
||||
<div className="stat-value">总交易量(名义):{stats.total_notional_usdt.toFixed(2)} USDT</div>
|
||||
</div>
|
||||
|
|
@ -324,9 +344,8 @@ const TradeList = () => {
|
|||
<div className="stat-card">
|
||||
<div className="stat-label">平均盈利 / 平均亏损(期望 3:1)</div>
|
||||
<div
|
||||
className={`stat-value ${
|
||||
typeof stats.avg_win_loss_ratio === 'number' && stats.avg_win_loss_ratio >= 3 ? 'positive' : ''
|
||||
}`}
|
||||
className={`stat-value ${typeof stats.avg_win_loss_ratio === 'number' && stats.avg_win_loss_ratio >= 3 ? 'positive' : ''
|
||||
}`}
|
||||
>
|
||||
{typeof stats.avg_win_loss_ratio === 'number'
|
||||
? `${stats.avg_win_loss_ratio.toFixed(2)} : 1`
|
||||
|
|
@ -380,10 +399,10 @@ const TradeList = () => {
|
|||
const notional = trade.notional_usdt !== undefined && trade.notional_usdt !== null
|
||||
? parseFloat(trade.notional_usdt)
|
||||
: (
|
||||
trade.entry_value_usdt !== undefined && trade.entry_value_usdt !== null
|
||||
? parseFloat(trade.entry_value_usdt)
|
||||
: (parseFloat(trade.quantity || 0) * parseFloat(trade.entry_price || 0))
|
||||
)
|
||||
trade.entry_value_usdt !== undefined && trade.entry_value_usdt !== null
|
||||
? parseFloat(trade.entry_value_usdt)
|
||||
: (parseFloat(trade.quantity || 0) * parseFloat(trade.entry_price || 0))
|
||||
)
|
||||
const leverage = parseFloat(trade.leverage || 10)
|
||||
const margin = trade.margin_usdt !== undefined && trade.margin_usdt !== null
|
||||
? parseFloat(trade.margin_usdt)
|
||||
|
|
@ -466,10 +485,10 @@ const TradeList = () => {
|
|||
const notional = trade.notional_usdt !== undefined && trade.notional_usdt !== null
|
||||
? parseFloat(trade.notional_usdt)
|
||||
: (
|
||||
trade.entry_value_usdt !== undefined && trade.entry_value_usdt !== null
|
||||
? parseFloat(trade.entry_value_usdt)
|
||||
: (parseFloat(trade.quantity || 0) * parseFloat(trade.entry_price || 0))
|
||||
)
|
||||
trade.entry_value_usdt !== undefined && trade.entry_value_usdt !== null
|
||||
? parseFloat(trade.entry_value_usdt)
|
||||
: (parseFloat(trade.quantity || 0) * parseFloat(trade.entry_price || 0))
|
||||
)
|
||||
const leverage = parseFloat(trade.leverage || 10)
|
||||
const margin = trade.margin_usdt !== undefined && trade.margin_usdt !== null
|
||||
? parseFloat(trade.margin_usdt)
|
||||
|
|
@ -562,17 +581,17 @@ const TradeList = () => {
|
|||
)}
|
||||
</div>
|
||||
<div className="trade-card-footer">
|
||||
<div className="trade-time-item">
|
||||
<span className="time-label">入场:</span>
|
||||
<span>{formatTime(trade.entry_time)}</span>
|
||||
</div>
|
||||
{trade.exit_time && (
|
||||
<div className="trade-time-item">
|
||||
<span className="time-label">平仓:</span>
|
||||
<span>{formatTime(trade.exit_time)}</span>
|
||||
<span className="time-label">入场:</span>
|
||||
<span>{formatTime(trade.entry_time)}</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
{trade.exit_time && (
|
||||
<div className="trade-time-item">
|
||||
<span className="time-label">平仓:</span>
|
||||
<span>{formatTime(trade.exit_time)}</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user