创建结果摘要
(self)
| 339 | layout["footer"].update(footer_panel) |
| 340 | |
| 341 | def _create_result_summary(self) -> Text: |
| 342 | """创建结果摘要""" |
| 343 | summary_text = Text() |
| 344 | |
| 345 | if self.final_state: |
| 346 | # 从step_results中获取统计信息 |
| 347 | step_results = self.final_state.get('step_results', {}) |
| 348 | data_team_results = step_results.get('data_team', {}) |
| 349 | research_team_results = step_results.get('research_team', {}) |
| 350 | |
| 351 | data_factors_count = data_team_results.get('factors_count', 0) |
| 352 | research_signals_count = research_team_results.get('signals_count', 0) |
| 353 | |
| 354 | summary_text.append(get_text(f"📊 数据源: {data_factors_count} | ", f"📊 Data Sources: {data_factors_count} | "), style="green") |
| 355 | summary_text.append(get_text(f"🔍 研究信号: {research_signals_count} | ", f"🔍 Research Signals: {research_signals_count} | "), style="blue") |
| 356 | |
| 357 | # 获取所有信号并筛选有机会的信号 |
| 358 | best_signals = step_results.get('contest', {}).get('best_signals', []) |
| 359 | |
| 360 | # 筛选 has_opportunity 为 yes 的信号 |
| 361 | valid_signals = [] |
| 362 | for signal in best_signals: |
| 363 | has_opportunity = signal.get('has_opportunity', 'no') |
| 364 | if has_opportunity == 'yes': |
| 365 | valid_signals.append(signal) |
| 366 | |
| 367 | if valid_signals: |
| 368 | summary_text.append(get_text(f"🎯 有效信号: {len(valid_signals)}", f"🎯 Valid Signals: {len(valid_signals)}"), style="bold red") |
| 369 | |
| 370 | for i, signal in enumerate(valid_signals): |
| 371 | symbol_name = signal.get('symbol_name', 'N/A') |
| 372 | action = signal.get('action', 'N/A') |
| 373 | agent_id = signal.get('agent_id', 'N/A') |
| 374 | |
| 375 | summary_text.append(get_text(f"\n {i+1}. Research Agent{agent_id}:", f"\n {i+1}. Research Agent{agent_id}: "), style="yellow") |
| 376 | summary_text.append(f"{symbol_name}({action}) ", style="cyan") |
| 377 | |
| 378 | else: |
| 379 | summary_text.append(get_text("🎯 有效信号: 0", "🎯 Valid Signals: 0"), style="bold red") |
| 380 | summary_text.append(get_text(" 无有效信号", " No valid signals")) |
| 381 | |
| 382 | summary_text.append(get_text("\n💡分析完成,按回车退出运行界面...", "\n💡Analysis completed, press Enter to exit the interface...")) |
| 383 | else: |
| 384 | summary_text.append(get_text("❌ 分析失败", "❌ Analysis Failed"), style="red") |
| 385 | |
| 386 | return summary_text |
| 387 | |
| 388 | |
| 389 | def run_contest_analysis_interactive(trigger_time: str, market: str): |
no test coverage detected