def extract_metrics(results): """Extract performance metrics from FINSABER results""" metrics = {} for ticker, result in results.items(): if not result or 'analyzers' not in result: continue analyzers = result['analyzers'] # Extract metrics total_return = analyzers.get('returns', {}).get('rtot', 0.0) * 100 sharpe = analyzers.get('sharpe', {}).get('sharperatio', 0.0) max_dd = abs(analyzers.get('drawdown', {}).get('max', {}).get('drawdown', 0.0)) * 100 metrics[ticker] = { 'total_return': total_return, 'sharpe_ratio': sharpe, 'max_drawdown': max_dd } return metrics