{{ tt('strategy.tieredGridUnified.desc', null, 'View running status, positions and PnL, and orders. Use tabs to switch Workbench / Positions / Orders.') }}

{{ workbenchAlert }}
{{ tt('strategy.unified.kpi.total', null, 'Total') }}
{{ workbenchSummary.n }}
{{ tt('strategy.tieredGridUnified.monitor.kpiTotalSub', null, '') }}
{{ tt('strategy.unified.kpi.running', null, 'Running') }}
{{ workbenchSummary.run }}
{{ tt('strategy.tieredGridUnified.monitor.kpiRunningSub', null, '') }}
{{ tt('strategy.unified.kpi.suspended', null, 'Suspended') }}
{{ workbenchSummary.susp }}
{{ tt('strategy.tieredGridUnified.monitor.kpiSuspendedSub', null, '') }}
{{ tt('strategy.unified.kpi.stopped', null, 'Stopped') }}
{{ workbenchSummary.stop }}
{{ tt('strategy.tieredGridUnified.monitor.kpiStoppedSub', null, '') }}
{{ tt('strategy.tieredGridUnified.todaySection', null, '') }}
{{ tt('strategy.tieredGridUnified.today.fillCountLabel', null, '') }}
{{ workbenchSummary.tb + workbenchSummary.ts }}
{{ tt('strategy.tieredGridUnified.wb.buyAbbr', null, '') }} {{ workbenchSummary.tb }} · {{ tt('strategy.tieredGridUnified.wb.sellAbbr', null, '') }} {{ workbenchSummary.ts }}
{{ tt('strategy.tieredGridUnified.today.failLabel', null, '') }}
{{ workbenchSummary.tf }}
{{ tt('strategy.tieredGridUnified.today.failSub', null, '') }}
{{ tt('strategy.tieredGridUnified.wb.newStrategy', null, '') }}
{{ tt('strategy.tieredGridUnified.wb.thId', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thName', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thSymbol', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thRange', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thBudget', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thLevels', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thStatus', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thOrdersCycles', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thWinRate', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thRuntime', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thTodayFills', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thFails', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thActivity', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thPrice', null, '') }} {{ tt('strategy.tieredGridUnified.wb.thOps', null, '') }}
{{ r.id != null ? r.id : '—' }} {{ r.name || '—' }}{{ tt('strategy.tieredGridUnified.wb.dryTag', null, '') }} {{ r.symbol || '—' }} {{ wbFmtRange(r) }} {{ fmtPrice(r.plannedTotalUsdt) }} / {{ r.maxQuoteBudget != null ? fmtPrice(r.maxQuoteBudget) : tt('strategy.tieredGridUnified.wb.noBudgetCap', null, '') }} {{ tt('strategy.tieredGridUnified.wb.budgetExceeded', null, '') }} {{ r.gridCount != null ? r.gridCount : '—' }} · {{ wbSpacingLabel(r.spacingMode) }} {{ wbStatusText(r.status) }} {{ wbOrdersCycles(r) }} {{ wbWinRateRow(r) }} {{ wbRunDurationRow(r) }} {{ tt('strategy.tieredGridUnified.wb.buyAbbr', null, '') }}{{ Number(r.todayBuyCount) || 0 }} · {{ tt('strategy.tieredGridUnified.wb.sellAbbr', null, '') }}{{ Number(r.todaySellCount) || 0 }} {{ Number(r.todayFailedCount) || 0 }} {{ wbFormatLastAt(r.lastOrderAt) }} {{ wbPriceCell(r) }}
{{ tt('strategy.tieredGridUnified.wb.opEdit', null, '') }} {{ tt('strategy.tieredGridUnified.wb.opView', null, '') }} {{ tt('strategy.tieredGridUnified.wb.opOrders', null, '') }}
{{ tt('strategy.tieredGridUnified.positionsTab.loading', null, '') }}

{{ tt('strategy.tieredGridUnified.positionsTab.emptyPortfolioTitle', null, '') }}

{{ tt('strategy.tieredGridUnified.positionsTab.emptyPortfolioDesc', null, '') }}

{{ tt('strategy.tieredGridUnified.positionsView.chartTitle', null, '') }}
{{ trendSellCount !== null ? ' ' : '' }}{{ trendChartHint }}

{{ tt('strategy.tieredGridUnified.positionsView.noteStrong', null, '') }}{{ tt('strategy.tieredGridUnified.positionsView.noteBody', null, '') }}

{{ tt('strategy.tieredGridUnified.positionsView.kpiTotalMkt', null, '') }}
{{ fmtPrice(summaryTotalMarketValue) }}USDT
{{ tt('strategy.tieredGridUnified.positionsView.kpiTodayRealized', null, '') }}
{{ fmtPnl(summaryTodayRealized) }}USDT
{{ tt('strategy.tieredGridUnified.positionsView.kpiSumRealized', null, '') }}
{{ fmtPnl(summaryTotalRealized) }}USDT
{{ tt('strategy.tieredGridUnified.positionsView.kpiSumUnrealized', null, '') }}
{{ fmtPnl(summaryTotalUnrealized) }}USDT
{{ tt('strategy.tieredGridUnified.positionsView.kpiRunningStrategies', null, '') }}
{{ kpiRunning }}{{ tt('strategy.tieredGridUnified.wb.unitCount', null, '') }}
{{ tt('strategy.tieredGridUnified.positionsView.kpiSuspendedStrategies', null, '') }}
{{ kpiSuspended }}{{ tt('strategy.tieredGridUnified.wb.unitCount', null, '') }}
{{ tt('strategy.tieredGridUnified.positionsView.kpiWithPosition', null, '') }}
{{ kpiWithPosition }}{{ tt('strategy.tieredGridUnified.wb.unitCount', null, '') }}
{{ tt('strategy.tieredGridUnified.positionsView.kpiMaxExposure', null, '') }}
{{ kpiTopSymbol }}{{ kpiTopPct }}%

{{ tt('strategy.tieredGridUnified.positionsView.posIntroBefore', null, '') }}{{ tt('strategy.tieredGridUnified.positionsView.posIntroStrong', null, '') }}{{ tt('strategy.tieredGridUnified.positionsView.posIntroMid', null, '') }}{{ tt('strategy.tieredGridUnified.positionsView.posIntroWorkbench', null, '') }}{{ tt('strategy.tieredGridUnified.positionsView.posIntroAfter', null, '') }}

{{ tt('strategy.tieredGridUnified.positionsView.ordersToolbarHint', null, '') }}

{{ tt('strategy.tieredGridUnified.positionsView.posThStrategy', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThMode', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThStatus', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThLevel', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThQty', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThAvg', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThPrice', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThMkt', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThUnreal', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.posThOps', null, '') }}
{{ row.name ? row.symbol + ' · ' + row.name : row.symbol }} {{ row.dryRun === true ? tt('strategy.tieredGridUnified.positionsView.badgeSim', null, '') : tt('strategy.tieredGridUnified.positionsView.badgeLive', null, '') }} {{ tieredStatusText(openRowStatusStub(row)) }} {{ row.gridLevel != null ? row.gridLevel : '—' }} {{ fmtQuantity(row.heldQuantity) }} {{ fmtPrice(row.avgCostUsdt) }} {{ fmtPrice(row.currentPrice) }} {{ fmtPrice(row.positionValueUsdt) }} {{ fmtPnl(row.unrealizedPnlUsdt) }}
{{ tt('strategy.tieredGridUnified.positionsView.pager.pagerPageOf', { cur: summaryPage, total: summaryTotalPages }, '') }}
{{ (loading || openPositionsLoading) ? tt('strategy.tieredGridUnified.positionsView.refreshing', null, '') : tt('strategy.tieredGridUnified.positionsView.emptyOpenPositions', null, '') }}
{{ tt('strategy.tieredGridUnified.positionsView.ordThStrategy', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThSymbol', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThLevel', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThSide', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThPrice', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThPlannedQty', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThFilledQty', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThAmt', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThStatus', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThRemark', null, '') }} {{ tt('strategy.tieredGridUnified.positionsView.ordThTime', null, '') }}
{{ configLabel(o.configId) }} {{ o.symbol || '—' }} {{ o.gridLevel != null ? o.gridLevel : '—' }} {{ String(o.side).toUpperCase() === 'BUY' ? tt('common.trade.side.BUY', null, '') : tt('common.trade.side.SELL', null, '') }} {{ fmtPrice(o.filledPrice != null ? o.filledPrice : o.referencePrice) }} {{ fmtPlannedQty(o.quantity) }} {{ o.filledQuantity != null ? fmtPlannedQty(o.filledQuantity) : '—' }} {{ o.amountUsdt != null ? fmtPrice(o.amountUsdt) : '—' }} {{ fmtStatus(o.status) }} {{ fmtErrMsg(o.remark) }} {{ fmtTableTime(o.createdAt) }}
{{ ordersTabLoading ? tt('strategy.tieredGridUnified.positionsView.refreshing', null, '') : tt('strategy.tieredGridUnified.positionsView.ordersEmpty', null, '') }}
{{ tt('strategy.tieredGridUnified.positionsView.pager.pagerPageOf', { cur: ordersPage, total: ordersTotalPages }, '') }}

{{ tt('strategy.tieredGridUnified.positionsView.tuneTitle', null, '') }}

{{ tuneDesc }}
{{ tt('strategy.tieredGridUnified.positionsView.tuneFeeHint', null, '') }}
{{ tt('strategy.tieredGridUnified.positionsView.tuneSlHint', null, '') }}
{{ tt('strategy.tieredGridUnified.positionsView.tuneTpHint', null, '') }}