From a18bc66b19c41ce26b109d1ad68066ac4d7c8d48 Mon Sep 17 00:00:00 2001 From: "Bobby (aider)" Date: Thu, 13 Feb 2025 23:14:28 -0800 Subject: [PATCH] fix: Handle missing keys and correct max drawdown metric in backtest results --- src/pages/backtesting/backtesting_page.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pages/backtesting/backtesting_page.py b/src/pages/backtesting/backtesting_page.py index ada8e1b..4cb931e 100644 --- a/src/pages/backtesting/backtesting_page.py +++ b/src/pages/backtesting/backtesting_page.py @@ -247,7 +247,7 @@ def run_optimization(df: pd.DataFrame, indicator_settings: Dict) -> List: 'parameters': params, 'Return [%]': stats['Return [%]'], 'Sharpe Ratio': stats['Sharpe Ratio'], - 'Max Drawdown [%]': stats['Max Drawdown [%]'], + 'Max Drawdown [%]': stats['Max. Drawdown [%]'], # Updated key 'Win Rate [%]': stats['Win Rate [%]'] }) @@ -307,13 +307,13 @@ def display_backtest_results(results: Dict): # Display key metrics col1, col2, col3, col4 = st.columns(4) with col1: - st.metric("Return", f"{results['Return [%]']:.2f}%") + st.metric("Return", f"{results.get('Return [%]', 0):.2f}%") with col2: - st.metric("Sharpe Ratio", f"{results['Sharpe Ratio']:.2f}") + st.metric("Sharpe Ratio", f"{results.get('Sharpe Ratio', 0):.2f}") with col3: - st.metric("Max Drawdown", f"{results['Max Drawdown [%]']:.2f}%") + st.metric("Max Drawdown", f"{results.get('Max. Drawdown [%]', 0):.2f}%") with col4: - st.metric("Win Rate", f"{results['Win Rate [%]']:.2f}%") + st.metric("Win Rate", f"{results.get('Win Rate [%]', 0):.2f}%") # Display full results in expandable section with st.expander("See detailed results"):