hedgequantx 2.6.140 → 2.6.142
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1623,8 +1623,17 @@ const launchMultiSymbolRithmic = async (service, account, contracts, config) =>
|
|
|
1623
1623
|
|
|
1624
1624
|
// Disable symbol after loss (SL hit) - other symbols continue
|
|
1625
1625
|
disabledSymbols.add(symbolName);
|
|
1626
|
-
ui.addLog('warning', `[${symbolName}] DISABLED - SL hit, other symbols continue`);
|
|
1627
1626
|
stats.activeSymbols = contracts.length - disabledSymbols.size;
|
|
1627
|
+
|
|
1628
|
+
// Check if ALL symbols are now disabled → stop algo
|
|
1629
|
+
if (disabledSymbols.size >= contracts.length) {
|
|
1630
|
+
ui.addLog('warning', `[${symbolName}] DISABLED - All symbols stopped`);
|
|
1631
|
+
ui.addLog('info', '████ ALL SYMBOLS DISABLED - Session complete ████');
|
|
1632
|
+
stopReason = 'all_disabled';
|
|
1633
|
+
running = false;
|
|
1634
|
+
} else {
|
|
1635
|
+
ui.addLog('warning', `[${symbolName}] DISABLED - SL hit, ${stats.activeSymbols} symbols remaining`);
|
|
1636
|
+
}
|
|
1628
1637
|
}
|
|
1629
1638
|
}
|
|
1630
1639
|
stats.symbolStats[symbolName].position = 0;
|
package/src/pages/algo/ui.js
CHANGED
|
@@ -374,7 +374,7 @@ class AlgoUI {
|
|
|
374
374
|
_drawLogs() {
|
|
375
375
|
const { W, logs, maxLogs } = this;
|
|
376
376
|
|
|
377
|
-
// Activity header
|
|
377
|
+
// Activity header with animated spinner
|
|
378
378
|
// Date is cached on first draw to prevent changes
|
|
379
379
|
if (!this.cachedDate) {
|
|
380
380
|
const nowDate = new Date();
|
|
@@ -382,9 +382,11 @@ class AlgoUI {
|
|
|
382
382
|
}
|
|
383
383
|
const dateStr = this.cachedDate;
|
|
384
384
|
|
|
385
|
-
//
|
|
386
|
-
const
|
|
387
|
-
|
|
385
|
+
// Animated spinner - advances on each render
|
|
386
|
+
const spinner = SPINNER[this.spinnerFrame % SPINNER.length];
|
|
387
|
+
this.spinnerFrame++;
|
|
388
|
+
|
|
389
|
+
const leftText = ` EXECUTION LOG ${spinner}`;
|
|
388
390
|
const rightText = `[X] STOP `;
|
|
389
391
|
|
|
390
392
|
const totalFixed = leftText.length + rightText.length;
|
|
@@ -392,7 +394,7 @@ class AlgoUI {
|
|
|
392
394
|
const centerPadLeft = Math.floor((centerSpace - dateStr.length) / 2);
|
|
393
395
|
const centerPadRight = centerSpace - dateStr.length - centerPadLeft;
|
|
394
396
|
|
|
395
|
-
const left = ` ${chalk.bold('EXECUTION LOG')} ${chalk.green(
|
|
397
|
+
const left = ` ${chalk.bold('EXECUTION LOG')} ${chalk.green(spinner)}`;
|
|
396
398
|
const center = ' '.repeat(Math.max(0, centerPadLeft)) + chalk.white.bold(dateStr) + ' '.repeat(Math.max(0, centerPadRight));
|
|
397
399
|
const right = chalk.yellow.bold('[X] STOP') + ' ';
|
|
398
400
|
|