hedgequantx 2.6.147 → 2.6.148
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
|
@@ -2038,10 +2038,26 @@ const launchMultiSymbolRithmic = async (service, account, contracts, config) =>
|
|
|
2038
2038
|
ui.render(stats);
|
|
2039
2039
|
|
|
2040
2040
|
for (const [symbolName, symStats] of Object.entries(stats.symbolStats)) {
|
|
2041
|
-
|
|
2041
|
+
// Get position from positionManager (more reliable than stats)
|
|
2042
|
+
const pm = positionManagers[symbolName];
|
|
2043
|
+
const pmPosition = pm?.currentPosition;
|
|
2044
|
+
|
|
2045
|
+
// Use PM position if available, otherwise fallback to stats
|
|
2046
|
+
let posQty = 0;
|
|
2047
|
+
let closeSide = 0;
|
|
2048
|
+
|
|
2049
|
+
if (pmPosition && pmPosition.size > 0) {
|
|
2050
|
+
posQty = pmPosition.size;
|
|
2051
|
+
closeSide = pmPosition.side === 0 ? 1 : 0; // Sell if long (0), Buy if short (1)
|
|
2052
|
+
} else if (symStats.position && symStats.position !== 0) {
|
|
2053
|
+
// Fallback: use stats but sanitize the value
|
|
2054
|
+
posQty = Math.min(Math.abs(Number(symStats.position) || 0), 10); // Max 10 contracts safety
|
|
2055
|
+
if (posQty === 0) posQty = 1; // Default to 1 if we think there's a position
|
|
2056
|
+
closeSide = symStats.position > 0 ? 1 : 0;
|
|
2057
|
+
}
|
|
2058
|
+
|
|
2042
2059
|
if (posQty === 0) continue;
|
|
2043
2060
|
|
|
2044
|
-
const closeSide = symStats.position > 0 ? 1 : 0; // Sell if long, Buy if short
|
|
2045
2061
|
const sideStr = closeSide === 1 ? 'SELL' : 'BUY';
|
|
2046
2062
|
|
|
2047
2063
|
ui.addLog('info', `Closing [${symbolName}] ${sideStr} ${posQty}x...`);
|