@@ -898,7 +898,18 @@ def run_backtest(
898898 risk_free_rate = risk_free_rate ,
899899 )
900900
901- backtest .metadata = metadata if metadata is not None else {}
901+ # Add the metadata to the backtest
902+ if metadata is None :
903+
904+ if strategy .metadata is not None :
905+ backtest .metadata = strategy .metadata
906+ elif algorithm .metadata is not None :
907+ backtest .metadata = algorithm .metadata
908+ else :
909+ backtest .metadata = {}
910+ else :
911+ backtest .metadata = metadata
912+
902913 self .cleanup_backtest_resources ()
903914
904915 if save and directory :
@@ -965,6 +976,18 @@ def run_vector_backtests(
965976 data_sources , backtest_date_range
966977 )
967978
979+ if risk_free_rate is None :
980+ logger .info ("No risk free rate provided, retrieving it..." )
981+ risk_free_rate = get_risk_free_rate_us ()
982+
983+ if risk_free_rate is None :
984+ raise OperationalException (
985+ "Could not retrieve risk free rate for backtest metrics."
986+ "Please provide a risk free as an argument when running "
987+ "your backtest or make sure you have an internet "
988+ "connection"
989+ )
990+
968991 for strategy in tqdm (strategies ):
969992 backtests .append (
970993 self .run_vector_backtest (
@@ -1063,7 +1086,7 @@ def run_vector_backtest(
10631086 # Add the metadata to the backtest
10641087 if metadata is None :
10651088
1066- if strategy .metadata is not None :
1089+ if strategy .metadata is None :
10671090 backtest .metadata = {}
10681091 else :
10691092 backtest .metadata = strategy .metadata
0 commit comments