hedgequantx 1.2.141 → 1.2.143

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hedgequantx",
3
- "version": "1.2.141",
3
+ "version": "1.2.143",
4
4
  "description": "Prop Futures Algo Trading CLI - Connect to Topstep, Alpha Futures, and other prop firms",
5
5
  "main": "src/app.js",
6
6
  "bin": {
package/src/app.js CHANGED
@@ -665,20 +665,18 @@ const dashboardMenu = async (service) => {
665
665
  // Dashboard box header
666
666
  console.log();
667
667
  console.log(chalk.cyan('╔' + '═'.repeat(W) + '╗'));
668
- console.log(chalk.cyan('║') + chalk.white.bold(centerLine('DASHBOARD', W)) + chalk.cyan('║'));
668
+ console.log(chalk.cyan('║') + chalk.yellow.bold(centerLine('Welcome, HQX Trader!', W)) + chalk.cyan('║'));
669
669
  console.log(chalk.cyan('╠' + '═'.repeat(W) + '╣'));
670
670
 
671
671
  // Connection info - show all active connections
672
672
  const allConns = connections.getAll();
673
673
  if (allConns.length > 0) {
674
- const connNames = allConns.map(c => c.propfirm || c.type).join(', ');
675
- const connText = `Connected to ${connNames}`;
676
- console.log(chalk.cyan('║') + chalk.green(padLine(connText, W)) + chalk.cyan('║'));
674
+ allConns.forEach(c => {
675
+ const connText = c.propfirm || c.type || 'Connected';
676
+ console.log(chalk.cyan('║') + chalk.green(padLine(` ${connText}`, W)) + chalk.cyan('║'));
677
+ });
677
678
  }
678
679
 
679
- const userText = 'Welcome, HQX Trader!';
680
- console.log(chalk.cyan('║') + chalk.white(padLine(userText, W)) + chalk.cyan('║'));
681
-
682
680
  console.log(chalk.cyan('╠' + '═'.repeat(W) + '╣'));
683
681
 
684
682
  // Menu options in 2 columns
package/src/pages/algo.js CHANGED
@@ -1382,6 +1382,27 @@ const copyTradingMenu = async () => {
1382
1382
  }
1383
1383
  ]);
1384
1384
 
1385
+ // Privacy option - show or hide account names
1386
+ console.log();
1387
+ console.log(chalk.cyan.bold(' Step 6: Privacy Settings'));
1388
+ console.log();
1389
+
1390
+ const { showAccountNames } = await inquirer.prompt([
1391
+ {
1392
+ type: 'list',
1393
+ name: 'showAccountNames',
1394
+ message: chalk.white.bold('Account names visibility:'),
1395
+ choices: [
1396
+ { name: chalk.cyan('[>] Show account names'), value: true },
1397
+ { name: chalk.gray('[.] Hide account names'), value: false }
1398
+ ],
1399
+ loop: false
1400
+ }
1401
+ ]);
1402
+
1403
+ const displayLeadName = showAccountNames ? (leadAccount.accountName || leadAccount.name || 'N/A') : 'HQX Lead *****';
1404
+ const displayFollowerName = showAccountNames ? (followerAccount.accountName || followerAccount.name || 'N/A') : 'HQX Follower *****';
1405
+
1385
1406
  // Configuration Summary
1386
1407
  console.log();
1387
1408
  console.log(chalk.gray(getSeparator()));
@@ -1393,13 +1414,13 @@ const copyTradingMenu = async () => {
1393
1414
  console.log(chalk.white(` Max Risk: ${chalk.red('$' + maxRisk.toFixed(2))}`));
1394
1415
  console.log();
1395
1416
  console.log(chalk.white(' LEAD ACCOUNT'));
1396
- console.log(chalk.white(` Account: ${chalk.cyan(leadAccount.accountName || leadAccount.name || 'N/A')}`));
1417
+ console.log(chalk.white(` Account: ${chalk.cyan(displayLeadName)}`));
1397
1418
  console.log(chalk.white(` PropFirm: ${chalk.magenta(leadAccount.propfirm || 'N/A')}`));
1398
1419
  console.log(chalk.white(` Symbol: ${chalk.cyan(leadSymbol.name || 'N/A')}`));
1399
1420
  console.log(chalk.white(` Contracts: ${chalk.cyan(leadContracts)}`));
1400
1421
  console.log();
1401
1422
  console.log(chalk.white(' FOLLOWER ACCOUNT'));
1402
- console.log(chalk.white(` Account: ${chalk.cyan(followerAccount.accountName || followerAccount.name || 'N/A')}`));
1423
+ console.log(chalk.white(` Account: ${chalk.cyan(displayFollowerName)}`));
1403
1424
  console.log(chalk.white(` PropFirm: ${chalk.magenta(followerAccount.propfirm || 'N/A')}`));
1404
1425
  console.log(chalk.white(` Symbol: ${chalk.cyan(followerSymbol.name || 'N/A')}`));
1405
1426
  console.log(chalk.white(` Contracts: ${chalk.cyan(followerContracts)}`));
@@ -1430,13 +1451,15 @@ const copyTradingMenu = async () => {
1430
1451
  account: leadAccount,
1431
1452
  symbol: leadSymbol,
1432
1453
  contracts: leadContracts,
1433
- service: leadAccount.service
1454
+ service: leadAccount.service,
1455
+ displayName: displayLeadName
1434
1456
  },
1435
1457
  follower: {
1436
1458
  account: followerAccount,
1437
1459
  symbol: followerSymbol,
1438
1460
  contracts: followerContracts,
1439
- service: followerAccount.service
1461
+ service: followerAccount.service,
1462
+ displayName: displayFollowerName
1440
1463
  }
1441
1464
  });
1442
1465
  };
@@ -1592,7 +1615,7 @@ const launchCopyTrading = async (config) => {
1592
1615
  const colL = 48, colR = 47;
1593
1616
 
1594
1617
  // Row 1: Lead Account | Lead Symbol
1595
- const leadName = (lead.account.accountName || '').substring(0, 30);
1618
+ const leadName = (lead.displayName || lead.account.accountName || '').substring(0, 30);
1596
1619
  const leadSym = lead.symbol.value || lead.symbol.name || '';
1597
1620
  const r1c1 = buildCell('Lead', leadName, chalk.cyan, colL);
1598
1621
  const r1c2text = ` Symbol: ${chalk.yellow(leadSym)} Qty: ${chalk.cyan(lead.contracts)}`;
@@ -1600,7 +1623,7 @@ const launchCopyTrading = async (config) => {
1600
1623
  const r1c2 = r1c2text + safePad(colR - r1c2plain.length);
1601
1624
 
1602
1625
  // Row 2: Follower Account | Follower Symbol
1603
- const followerName = (follower.account.accountName || '').substring(0, 30);
1626
+ const followerName = (follower.displayName || follower.account.accountName || '').substring(0, 30);
1604
1627
  const followerSym = follower.symbol.value || follower.symbol.name || '';
1605
1628
  const r2c1 = buildCell('Follower', followerName, chalk.magenta, colL);
1606
1629
  const r2c2text = ` Symbol: ${chalk.yellow(followerSym)} Qty: ${chalk.cyan(follower.contracts)}`;