MCPcopy Create free account
hub / github.com/FinStep-AI/ContestTrade / run_contest_analysis_interactive

Function run_contest_analysis_interactive

cli/main.py:389–485  ·  view source on GitHub ↗

在交互界面中运行竞赛分析

(trigger_time: str, market: str)

Source from the content-addressed store, hash-verified

387
388
389def run_contest_analysis_interactive(trigger_time: str, market: str):
390 """在交互界面中运行竞赛分析"""
391 try:
392 # 创建显示管理器
393 display = ContestTradeDisplay()
394
395 # 在显示中添加市场信息
396 display.set_current_task(get_text(f"初始化ContestTrade系统... (市场: {market})", f"Initializing ContestTrade system... (Market: {market})"))
397
398 # 创建初始布局
399 layout = display.create_layout(trigger_time)
400
401 # 使用Live界面运行 - 提高刷新频率以更好响应窗口大小变化
402 with Live(layout, refresh_per_second=4, screen=True, auto_refresh=True, console=console) as live:
403 # 初始显示
404 display.update_display(layout, trigger_time)
405
406 # 添加初始消息
407 display.add_message(get_text("系统", "System"), get_text(f"开始分析 - 市场: {market}, 时间: {trigger_time}", f"Starting analysis - Market: {market}, Time: {trigger_time}"))
408 display.update_display(layout, trigger_time)
409
410 # 检查模块导入 - Import when needed
411 try:
412 from contest_trade.main import SimpleTradeCompany
413 if SimpleTradeCompany is None:
414 raise ImportError("SimpleTradeCompany模块导入失败")
415
416 display.add_message(get_text("系统", "System"), get_text("✅ 成功导入SimpleTradeCompany模块", "✅ Successfully imported SimpleTradeCompany module"))
417 display.update_display(layout, trigger_time)
418
419 # 创建公司实例
420 company = SimpleTradeCompany()
421 display.add_message(get_text("系统", "System"), get_text("✅ 成功创建SimpleTradeCompany实例", "✅ Successfully created SimpleTradeCompany instance"))
422 display.update_display(layout, trigger_time)
423
424 except Exception as e:
425 display.add_message("错误", f"❌ 模块导入失败: {str(e)}")
426 display.update_display(layout, trigger_time)
427 return None, display
428
429 # 运行工作流并捕获输出
430 final_state = asyncio.run(run_with_events_capture(company, trigger_time, display, layout, live))
431
432 # 运行结束后
433 if final_state:
434 display.add_message(get_text("完成", "Completed"), get_text("✅ 分析完成!", "✅ Analysis completed!"))
435 display.set_current_task(get_text("分析完成,生成报告...", "Analysis completed, generating report..."))
436 display.set_analysis_completed(True)
437 display.final_state = final_state
438 display.update_display(layout, trigger_time)
439
440 # 自动生成MD报告
441 try:
442 from contest_trade.config.config import PROJECT_ROOT
443 results_dir = Path(PROJECT_ROOT) / "agents_workspace" / "results"
444 from .static.report_template import generate_final_report, generate_data_report
445
446 # 生成研究报告

Callers 1

runFunction · 0.85

Calls 14

set_current_taskMethod · 0.95
create_layoutMethod · 0.95
update_displayMethod · 0.95
add_messageMethod · 0.95
SimpleTradeCompanyClass · 0.90
ContestTradeDisplayClass · 0.85
get_textFunction · 0.85
run_with_events_captureFunction · 0.85
generate_final_reportFunction · 0.85
load_factors_dataFunction · 0.85
generate_data_reportFunction · 0.85

Tested by

no test coverage detected