@kamuira/stock-analyzer 1.2.4 → 1.2.6

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/analyze.js CHANGED
@@ -354,5 +354,5 @@ if (require.main === module) {
354
354
 
355
355
  module.exports = {
356
356
  fetchRealtime, fetchHistory, fetchTWRealtime, fetchTWHistory,
357
- getMarketEnvironment, resolveCode, formatReport, WATCH_LIST,
357
+ getMarketEnvironment, resolveCode, formatReport, WATCH_LIST, main,
358
358
  };
package/backtest.js CHANGED
@@ -377,4 +377,4 @@ if (require.main === module) {
377
377
  main().catch(e => console.error('回测出错:', e.message));
378
378
  }
379
379
 
380
- module.exports = { backtest, formatBacktestReport, resolveCode, getMarketEnvAtDate };
380
+ module.exports = { backtest, formatBacktestReport, resolveCode, getMarketEnvAtDate, main };
package/bin/analyze.js CHANGED
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  const path = require('path');
3
3
  process.chdir(path.join(__dirname, '..'));
4
- require('../analyze.js');
4
+ require('../analyze.js').main().catch(e => {
5
+ console.error('分析出错:', e.message);
6
+ process.exit(1);
7
+ });
package/bin/backtest.js CHANGED
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  const path = require('path');
3
3
  process.chdir(path.join(__dirname, '..'));
4
- require('../backtest.js');
4
+ require('../backtest.js').main().catch(e => {
5
+ console.error('回测出错:', e.message);
6
+ process.exit(1);
7
+ });
package/bin/server.js CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
2
  const path = require('path');
3
3
  process.chdir(path.join(__dirname, '..'));
4
- require('../server.js');
4
+ require('../server.js').main();
package/index.html CHANGED
@@ -397,6 +397,15 @@
397
397
  <div class="signal-advice">${summary.advice}</div>
398
398
  </div>`;
399
399
 
400
+ // 评分条(紧贴信号卡片下方,可视化综合评分)
401
+ const barColor = summary.totalScore >= 5 ? '#4caf50' : summary.totalScore >= 0 ? '#ff9800' : '#f44336';
402
+ html += `<div class="score-bar-container">
403
+ <div class="score-bar">
404
+ <div class="score-bar-fill" style="width:${summary.normalizedScore}%; background:${barColor}"></div>
405
+ </div>
406
+ <div class="score-labels"><span>强烈卖出</span><span>观望</span><span>强烈买入</span></div>
407
+ </div>`;
408
+
400
409
  // 操作建议大卡片(最显眼)
401
410
  const posAdvice = (rr && rr.positionAdvice) || '';
402
411
  const holdAdvice = summary.totalScore >= 10 ? '建议持仓5-10天,趋势跟踪' : summary.totalScore >= 5 ? '建议持仓3-5天,短线波段' : summary.totalScore >= 1 ? '建议持仓1-3天,快进快出' : '不建议开仓';
@@ -450,15 +459,6 @@
450
459
  </div>` : ''}
451
460
  </div>`;
452
461
 
453
- // 评分条
454
- const barColor = summary.totalScore >= 5 ? '#4caf50' : summary.totalScore >= 0 ? '#ff9800' : '#f44336';
455
- html += `<div class="score-bar-container">
456
- <div class="score-bar">
457
- <div class="score-bar-fill" style="width:${summary.normalizedScore}%; background:${barColor}"></div>
458
- </div>
459
- <div class="score-labels"><span>强烈卖出</span><span>观望</span><span>强烈买入</span></div>
460
- </div>`;
461
-
462
462
  // 大盘环境
463
463
  if (marketEnv && marketEnv.signals) {
464
464
  html += `<div style="background:#1a2530;border:1px solid #2a3a4a;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13px;color:#aaa">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kamuira/stock-analyzer",
3
- "version": "1.2.4",
3
+ "version": "1.2.6",
4
4
  "preferGlobal": true,
5
5
  "description": "A股/台股综合技术分析工具 - 支持实时分析、回测验证、买卖建议",
6
6
  "main": "server.js",
package/server.js CHANGED
@@ -252,8 +252,12 @@ function startServer(port) {
252
252
  });
253
253
  }
254
254
 
255
- if (require.main === module) {
255
+ function main() {
256
256
  startServer(PORT);
257
257
  }
258
258
 
259
- module.exports = { server, startServer, searchStock, resolveStockCode };
259
+ if (require.main === module) {
260
+ main();
261
+ }
262
+
263
+ module.exports = { server, startServer, searchStock, resolveStockCode, main };