Isolate CTP in worker process and improve strategy roll UX.
Split vn.py into qihuo-ctp worker with IPC client bridge, keep CTP connected during breaks with cached account fallback, speed up strategy page loads, and allow off-session breakout roll submissions. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -109,6 +109,7 @@
|
||||
var breakEl = document.getElementById('roll-break-price');
|
||||
var execHint = document.getElementById('roll-exec-hint');
|
||||
var btnExec = document.getElementById('btn-roll-exec');
|
||||
var btnPreview = document.getElementById('btn-roll-preview');
|
||||
if (!modeEl) return;
|
||||
var mode = modeEl.value || 'market';
|
||||
var isBreak = mode === 'breakout';
|
||||
@@ -120,6 +121,12 @@
|
||||
if (btnExec) {
|
||||
btnExec.textContent = mode === 'market' ? '执行滚仓' : '提交监控';
|
||||
}
|
||||
if (btnPreview) {
|
||||
btnPreview.disabled = !inTradingSession && !isBreak;
|
||||
btnPreview.title = (!inTradingSession && !isBreak)
|
||||
? '休盘期间请切换为突破加仓'
|
||||
: '';
|
||||
}
|
||||
}
|
||||
|
||||
function syncRollRiskHint() {
|
||||
@@ -196,6 +203,7 @@
|
||||
var rollPayload = null;
|
||||
var rollMonitorSel = document.getElementById('roll-monitor-select');
|
||||
var rollModeSel = document.getElementById('roll-add-mode');
|
||||
var inTradingSession = {{ 'true' if trading_session else 'false' }};
|
||||
|
||||
if (rollModeSel) rollModeSel.addEventListener('change', syncRollModeUi);
|
||||
if (rollMonitorSel) rollMonitorSel.addEventListener('change', syncRollRiskHint);
|
||||
@@ -214,6 +222,7 @@
|
||||
}
|
||||
showPreview(rollPrev, formatRoll(d.preview), true, false);
|
||||
btnRollE.hidden = false;
|
||||
syncRollModeUi();
|
||||
}).finally(function () {
|
||||
btnRollP.disabled = false;
|
||||
});
|
||||
@@ -224,6 +233,10 @@
|
||||
var payload = rollPayload || formData(rollForm);
|
||||
var mode = (payload.add_mode || 'market');
|
||||
if (mode === 'market') {
|
||||
if (!inTradingSession) {
|
||||
alert('休盘期间请切换为「突破加仓」后提交监控');
|
||||
return;
|
||||
}
|
||||
if (!confirm('确认执行市价滚仓?')) return;
|
||||
startRollCountdown(btnRollE, payload);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user