@@ -1061,12 +1061,25 @@ def test_MultiBacktest(self):
10611061 res = btm .run (fast = 2 )
10621062 self .assertIsInstance (res , pd .DataFrame )
10631063 self .assertEqual (res .columns .tolist (), [0 , 1 , 2 ])
1064- heatmap = btm .optimize (fast = [2 , 4 ], slow = [10 , 20 ])
1064+ stats , heatmap = btm .optimize (fast = [2 , 4 ], slow = [10 , 20 ],
1065+ return_heatmap = True )
1066+ self .assertIsInstance (stats , pd .DataFrame )
1067+ self .assertEqual (stats .columns .tolist (), [0 , 1 , 2 ])
1068+ self .assertIn ('# Trades' , stats .index )
10651069 self .assertIsInstance (heatmap , pd .DataFrame )
10661070 self .assertEqual (heatmap .columns .tolist (), [0 , 1 , 2 ])
10671071 print (start_method , time .monotonic () - start_time )
10681072 plot_heatmaps (heatmap .mean (axis = 1 ), open_browser = False )
10691073
1074+ def test_MultiBacktest_optimize_returns_best_stats_by_default (self ):
1075+ btm = MultiBacktest ([GOOG .iloc [:100 ]], SmaCross , cash = 100_000 ,
1076+ finalize_trades = True )
1077+ stats = btm .optimize (fast = [2 , 4 ], slow = [10 , 20 ])
1078+ self .assertIsInstance (stats , pd .DataFrame )
1079+ self .assertEqual (stats .columns .tolist (), [0 ])
1080+ self .assertIn ('# Trades' , stats .index )
1081+ self .assertNotIn ('_strategy' , stats .index )
1082+
10701083 class SometimesNoTrade (Strategy ):
10711084 def init (self ):
10721085 self ._will_trade = len (self .data ) == 20
0 commit comments