{{ currentTitle }}

{{ currentSubtitle }} {{ t("riskMotto") }}
{{ t("hourlyPositionScan") }}

{{ t("hourlyPositionScan") }}

{{ t("hourlyPositionScanHint") }}

{{ t("scanLastRun") }} {{ browserDateTime(positionScanSummary.lastScannedAt) }}

{{ t("scanResultStocks") }}

{{ selectedScanPositions.length }} {{ t("scanStocks") }}

{{ t("noScanResults") }}

{{ t("auditQueue") }}

{{ t("immediateAction") }}

{{ t("immediateActionHint") }}

{{ item.level }}
{{ item.title }}

{{ item.summary || item.reason || "-" }}

{{ dateOnly(item.date) }} · {{ item.kind }}

{{ t("noActions") }}

{{ t("twelveMonthWindow") }}

{{ t("macroTimeline") }}

{{ t("macroTimelineHint") }}

CN TH US {{ t("holdingEvent") }}
{{ t("portfolioPlannedRisk") }}{{ fixed2(tradingControl.riskSummary?.portfolioRiskPct || 0) }}%
{{ t("budgetBreaches") }}{{ tradingControl.riskSummary?.breaches || 0 }}
{{ t("tradePlans") }}{{ tradingControl.tradePlans.length }}
{{ t("watchlist") }}{{ tradingControl.watchlist.length }}

{{ t("riskBudget") }}

{{ t("symbol") }}{{ t("portfolioValue") }}{{ t("stopLoss") }}{{ t("portfolioPlannedRisk") }}{{ t("marketHoldingAllocation") }}{{ t("level") }}
{{ row.market }} {{ row.symbol }} {{ fixed2(row.value) }} {{ row.stopLossPrice ?? "-" }} {{ row.riskPct === null ? "-" : `${fixed2(row.riskPct)}%` }} {{ fixed2(row.weightPct) }}% {{ row.missingStop ? t("missingStop") : (row.overRisk || row.overWeight ? t("review") : t("syncOk")) }}

{{ t("tradePlans") }}

{{ plan.market }} {{ plan.symbol }} {{ plan.name }} {{ t("stopLoss") }} {{ plan.stop_loss_price || "-" }} · {{ t("targetPrice") }} {{ plan.target_price || "-" }} · {{ t("reviewDueDate") }} {{ plan.review_due_date ? dateOnly(plan.review_due_date) : "-" }}

{{ t("watchlist") }}

{{ item.market }} {{ item.symbol }} {{ item.name }} {{ item.priority }} · {{ t("triggerPrice") }} {{ item.trigger_price || "-" }} · {{ t("catalyst") }} {{ item.catalyst || "-" }}

{{ t("alertRules") }}

{{ rule.symbol || "-" }} {{ rule.alert_type }} {{ t("threshold") }} {{ rule.threshold_value || "-" }} · {{ rule.email_to }}

{{ t("recentAlerts") }}

{{ alert.title }} {{ alert.email_status }} · {{ shortDateTime(alert.triggered_at) }} · {{ alert.message }}

{{ t("noData") }}

{{ t("marketMood") }}

{{ t("riskTemperature") }}

{{ t("riskTemperatureHint") }}

{{ t(riskTemperatureLevelKey) }} {{ t("overallMarketRisk") }} {{ riskTemperatureScore }}/100
{{ item.code }} {{ formatIndicator(item) }}

{{ item.name }}

{{ formatIndicatorChange(item) }} · {{ dateOnly(item.observedAt) }} {{ t("viewDetails") }}
{{ indicatorReport(item).title }}

{{ indicatorReport(item).meaning }}

{{ t("normalRange") }}
{{ indicatorReport(item).normal }}
{{ t("riskReading") }}
{{ indicatorReport(item).reading }}
{{ indicatorReport(item).note }}
{{ t("marketPulse") }}

{{ t("marketBreadth") }}

{{ t("marketBreadthHint") }}

{{ t(card.titleKey) }}

{{ t("marketLastUpdated") }} {{ formatMarketLastUpdated(card.lastUpdatedAt || card.tradeDate) }} · {{ t("asOf") }} {{ card.tradeDate ? dateOnly(card.tradeDate) : "-" }} · {{ card.total || 0 }} {{ t("pricedAssets") }}

{{ item.name }} {{ item.symbol }} {{ marketIndexText(item) }} {{ marketIndexChangeText(item) }}
{{ t("upStocks") }}{{ card.upCount || 0 }}
{{ t("downStocks") }}{{ card.downCount || 0 }}
{{ t("flatStocks") }}{{ card.flatCount || 0 }}
{{ t("upIndustries") }}
{{ item.industry }} {{ item.count }}
{{ t("downIndustries") }}
{{ item.industry }} {{ item.count }}

{{ t("noBreadthData") }}

{{ t("globalIndexWatch") }}

{{ t("globalIndexWatchHint") }}

{{ t("positionsCount") }} {{ summary.positions || 0 }}
{{ t("portfolioValue") }}
{{ money(item.value) }} {{ item.currency }}
{{ t("unrealizedPnl") }} {{ money(summary.unrealizedPnl) }}
{{ t("portfolioDiagnostics") }}

{{ t("portfolioRiskExposure") }}

{{ t("portfolioRiskExposureHint") }}

{{ t(card.titleKey) }}

{{ card.rows.length }} {{ t("holdingsCount") }}

{{ money(card.total) }} {{ card.currency }}

{{ t("noHoldings") }}

{{ t(card.titleKey) }}

{{ card.rows.length }} {{ t("holdingsCount") }} · {{ t("totalHoldingAmount") }}

{{ money(card.total) }} {{ card.currency }}
{{ index + 1 }} {{ position.displayName }} {{ money(position.marketValue) }} {{ card.currency }} {{ card.total ? ((position.marketValue / card.total) * 100).toFixed(1) : "0.0" }}%

{{ t("noHoldings") }}

{{ selectedAsset.market }} · {{ selectedAsset.exchange || selectedAsset.currency || "-" }}

{{ selectedAsset.symbol }} {{ selectedAsset.name }}

{{ selectedAsset.industry || "-" }}

{{ quotePriceText(selectedAsset) }} {{ quoteChangeText(selectedAsset) }} {{ t("quoteTime") }} {{ selectedAsset.quote_time ? shortDateTime(selectedAsset.quote_time) : "-" }}
{{ t("candlestickChart") }}
{{ t("winnerRatio") }} {{ percent(chipSnapshot.winnerRatio) }} {{ t("avgCost") }} {{ money(chipSnapshot.avgCost) }} {{ t("overheadRatio") }} {{ percent(chipSnapshot.overheadRatio) }} {{ t("concentration70") }} {{ percent(chipSnapshot.concentration70) }}
{{ t("stockDetailRisk") }}

{{ t("riskScanWindow") }}

{{ t("stockDetailRiskHint") }}

{{ item.level }}
{{ item.title }}

{{ item.summary || t("noEventSummary") }}

{{ item.date ? dateOnly(item.date) : "-" }} · {{ item.label }}
{{ t("viewDetails") }}

{{ t("noStockDetailRisk") }}

{{ selectedAsset.market }} · {{ selectedAsset.exchange || selectedAsset.currency || "-" }}

{{ selectedAsset.symbol }} {{ selectedAsset.name }}

{{ selectedAsset.industry || "-" }}

{{ quotePriceText(selectedAsset) }} {{ quoteChangeText(selectedAsset) }} {{ t("quoteTime") }} {{ selectedAsset.quote_time ? shortDateTime(selectedAsset.quote_time) : "-" }}
{{ t("candlestickChart") }}
{{ t("winnerRatio") }} {{ percent(chipSnapshot.winnerRatio) }} {{ t("avgCost") }} {{ money(chipSnapshot.avgCost) }} {{ t("overheadRatio") }} {{ percent(chipSnapshot.overheadRatio) }} {{ t("concentration70") }} {{ percent(chipSnapshot.concentration70) }}
{{ t("stockDetailRisk") }}

{{ t("riskScanWindow") }}

{{ t("stockDetailRiskHint") }}

{{ item.level }}
{{ item.title }}

{{ item.summary || t("noEventSummary") }}

{{ item.date ? dateOnly(item.date) : "-" }} · {{ item.label }}
{{ t("viewDetails") }}

{{ t("noStockDetailRisk") }}

{{ t("currentPositions") }}

{{ t("marketLastUpdated") }} {{ currentMarketLastUpdatedText }}
{{ t("symbol") }}{{ t("name") }}{{ t("latestPrice") }}{{ t("change") }}{{ t("quantity") }}{{ t("cost") }}{{ t("portfolioValue") }}{{ t("unrealizedPnl") }}{{ t("action") }}
{{ position.symbol }} {{ position.name }} {{ quotePriceText(position) }} {{ quoteChangeText(position) }} {{ integer(position.quantity) }} {{ fixed2(position.avg_cost) }} {{ positionMarketValueText(position) }} {{ positionPnlText(position) }}

{{ t("marketAssets") }}

{{ t("marketLastUpdated") }} {{ currentMarketLastUpdatedText }}
{{ t("symbol") }}{{ t("name") }}{{ t("latestPrice") }}{{ t("change") }}{{ t("miniTrend") }}{{ t("action") }}
{{ asset.symbol }} {{ asset.name }} {{ quotePriceText(asset) }} {{ quoteChangeText(asset) }}
{{ miniTrendText(asset) }}

{{ t("openRiskSignals") }}

{{ t("level") }} {{ t("stock") }} {{ t("type") }} {{ t("score") }} {{ t("reason") }} {{ t("action") }}
{{ signal.level }} {{ signal.symbol || "-" }} {{ signal.risk_type }} {{ signal.score }} {{ signal.reason }}

{{ t("manualEvent") }}

{{ currentTitle }}

{{ t("auditRulesHint") }}

# {{ t("title") }} {{ t("triggerType") }} {{ t("level") }} {{ t("ruleAction") }} {{ t("enabled") }} {{ t("action") }}
{{ index + 1 }} {{ rule.title }}

{{ rule.description }}

{{ rule.trigger_type }} {{ rule.severity }} {{ rule.action }} {{ rule.enabled ? "ON" : "OFF" }}

{{ t("dataJobs") }}

{{ t("jobConfigs") }}

{{ t("jobMarket") }} {{ t("jobType") }} {{ t("jobEnabled") }} {{ t("jobTimezone") }} {{ t("jobCloseTime") }} {{ t("jobDelay") }} {{ t("jobHistoryStart") }} {{ t("jobBatchSize") }} {{ t("jobLastStatus") }} {{ t("action") }}

{{ t("eventTimeline") }}

{{ t("recentEvents") }}

{{ event.severity }}
{{ event.symbol || "GLOBAL" }} {{ event.title }}

{{ dateOnly(event.event_date || event.announce_date || event.created_at) }} · {{ event.event_type }} · {{ event.source }}

{{ t("accountDirectory") }}

{{ t("adminUsersHint") }}

{{ userForm.id ? userForm.email : t("createUser") }}

{{ userForm.id ? t("adminUserEditorSubtitle") : t("newNormalUser") }}

{{ userForm.id ? t("selectedAccount") : t("newNormalUser") }}

{{ userForm.id ? userForm.email : t("createUser") }}

{{ t("adminAllPermissions") }}

{{ selectedManagedAccount.permissions.length ? `${selectedManagedAccount.permissions.length} ${t("grantedPermissions")}` : t("noPermissions") }}

#{{ userForm.id }}

{{ t("accountDetails") }}

{{ t("permissions") }}

{{ t(group.titleKey) }}

{{ t("permissions") }}

{{ t("adminAllPermissions") }}

{{ t("accessMode") }} {{ deviceSecurity.deviceBindingEnforced ? t("deviceOnlyLoginOn") : t("deviceOnlyLoginOff") }}
{{ t("deviceState") }} {{ deviceBinding ? t("deviceStatusBound") : t("deviceStatusUnbound") }}
{{ t("lastActivity") }} {{ deviceBinding?.last_seen_at ? dateTime(deviceBinding.last_seen_at, { seconds: true }) : "-" }}
{{ t("security") }}

{{ t("boundDevice") }}

{{ t("boundDeviceHint") }}

{{ deviceSecurity.deviceBindingEnforced ? t("deviceOnlyLoginOn") : t("deviceOnlyLoginOff") }}
{{ deviceBindings.length ? `${deviceBindings.length}/2 ${t("deviceStatusBound")}` : t("deviceStatusUnbound") }}

{{ t("noDeviceBound") }}

{{ t("interfacePrefs") }}

{{ t("language") }}

{{ t("languageHint") }}