Diagramma Mermaid del Nuovo Flusso
sequenceDiagram participant User participant ScannerTab participant AppState participant BacktestOrchestrator participant BacktestWorker alt Flusso Scanner (Nuovo) User->>ScannerTab: Click su Risultato ScannerTab->>AppState: emit(strategy_visualization_requested) AppState->>BacktestOrchestrator: on_external_backtest_requested(ticker, path, params) BacktestOrchestrator->>BacktestOrchestrator: run_backtest_headless(ticker, path, params...) else Flusso Classico User->>BacktestTab: Click "Run Backtest" BacktestTab->>AppState: emit(request_backtest) AppState->>BacktestOrchestrator: on_backtest_requested() BacktestOrchestrator->>BacktestTab: get_current_parameters() BacktestOrchestrator->>StrategyEditor: get_current_path() BacktestOrchestrator->>BacktestOrchestrator: run_backtest_headless(...) end BacktestOrchestrator->>BacktestWorker: Start Worker
Una nota importante:
L’orchestratore ha bisogno di controls_panel (BacktestTabWidget) per segnalare errori (controls_panel.on_backtest_error) e risultati (controls_panel.on_backtest_finished). Questo va bene, perché anche se il backtest parte dallo Scanner, vogliamo che i risultati finiscano nel pannello Backtest (che diventerà attivo).