Deduct open position margin from recommend max lots.
Recalculate tradable symbol budgets from remaining margin after CTP usage and refresh the table on position updates. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+24
-4
@@ -38,6 +38,7 @@
|
||||
var recommendMaxByProduct = {};
|
||||
var recommendMaxByCode = {};
|
||||
var recRowsRaw = [];
|
||||
var recMeta = {};
|
||||
var recSortKey = 'trend';
|
||||
var recSortDesc = true;
|
||||
var recIndustryFilter = '';
|
||||
@@ -1454,7 +1455,7 @@
|
||||
return counts;
|
||||
}
|
||||
|
||||
function updateRecStats(allRows, visibleRows) {
|
||||
function updateRecStats(allRows, visibleRows, meta) {
|
||||
var el = document.getElementById('rec-stats');
|
||||
if (!el) return;
|
||||
var total = (allRows || []).length;
|
||||
@@ -1464,6 +1465,12 @@
|
||||
return;
|
||||
}
|
||||
var parts = [];
|
||||
if (meta && meta.margin_used > 0) {
|
||||
parts.push(
|
||||
'持仓占用 <strong>' + fmtNum(meta.margin_used) + '</strong> 元,' +
|
||||
'剩余额度 <strong class="text-accent">' + fmtNum(meta.margin_budget_remaining) + '</strong> 元'
|
||||
);
|
||||
}
|
||||
if (recIndustryFilter) {
|
||||
parts.push('筛选 <strong>' + shown + '</strong> / 共 ' + total + ' 个品种');
|
||||
} else {
|
||||
@@ -1641,15 +1648,28 @@
|
||||
function renderRecommendTable() {
|
||||
var filtered = filterRecommendRows(recRowsRaw);
|
||||
var sorted = sortRecommendRows(filtered);
|
||||
updateRecStats(recRowsRaw, sorted);
|
||||
updateRecStats(recRowsRaw, sorted, recMeta);
|
||||
renderRecommendRows(sorted);
|
||||
}
|
||||
|
||||
function renderRecommendations(data) {
|
||||
if (!recommendList || !data) return;
|
||||
updateRecommendMaxMaps(data);
|
||||
recMeta = {
|
||||
margin_used: data.margin_used || 0,
|
||||
margin_budget_remaining: data.margin_budget_remaining,
|
||||
margin_budget_total: data.margin_budget_total
|
||||
};
|
||||
var recCap = document.getElementById('rec-capital');
|
||||
if (recCap && data.capital != null) recCap.textContent = Number(data.capital).toFixed(2);
|
||||
var recMarginHint = document.getElementById('rec-margin-hint');
|
||||
if (recMarginHint) {
|
||||
if (recMeta.margin_used > 0) {
|
||||
recMarginHint.textContent = ' · 已扣持仓占用 ' + fmtNum(recMeta.margin_used) + ' 元';
|
||||
} else {
|
||||
recMarginHint.textContent = '';
|
||||
}
|
||||
}
|
||||
var recUpdated = document.getElementById('rec-updated');
|
||||
if (recUpdated && data.updated_at) {
|
||||
recUpdated.textContent = '每日后台更新 · 最近 ' + data.updated_at;
|
||||
@@ -1658,7 +1678,7 @@
|
||||
recRowsRaw = rows.slice();
|
||||
if (!rows.length) {
|
||||
recommendList.innerHTML = '<tr><td colspan="' + REC_COLSPAN + '" class="empty-hint">当前资金下暂无推荐品种(每日后台刷新)</td></tr>';
|
||||
updateRecStats([], []);
|
||||
updateRecStats([], [], recMeta);
|
||||
return;
|
||||
}
|
||||
renderRecommendTable();
|
||||
@@ -1692,7 +1712,7 @@
|
||||
renderRecommendTable();
|
||||
});
|
||||
}
|
||||
if (recRowsRaw.length) updateRecStats(recRowsRaw, filterRecommendRows(recRowsRaw));
|
||||
if (recRowsRaw.length) updateRecStats(recRowsRaw, filterRecommendRows(recRowsRaw), recMeta);
|
||||
}
|
||||
|
||||
function connectRecommendStream() {
|
||||
|
||||
Reference in New Issue
Block a user