File tree 2 files changed +7
-2
lines changed
2 files changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -1157,8 +1157,9 @@ def optimize(self,
1157
1157
if not kwargs :
1158
1158
raise ValueError ('Need some strategy parameters to optimize' )
1159
1159
1160
+ maximize_key = None
1160
1161
if isinstance (maximize , str ):
1161
-
1162
+ maximize_key = str ( maximize )
1162
1163
stats = self ._results if self ._results is not None else self .run ()
1163
1164
if maximize not in stats :
1164
1165
raise ValueError ('`maximize`, if str, must match a key in pd.Series '
@@ -1202,6 +1203,7 @@ def __getattr__(self, item):
1202
1203
stacklevel = 2 )
1203
1204
1204
1205
heatmap = pd .Series (np .nan ,
1206
+ name = maximize_key ,
1205
1207
index = pd .MultiIndex .from_tuples ([p .values () for p in param_combos ],
1206
1208
names = next (iter (param_combos )).keys ()))
1207
1209
Original file line number Diff line number Diff line change
1
+ import inspect
1
2
import os
2
3
import sys
3
4
import time
@@ -400,14 +401,16 @@ def test_optimize(self):
400
401
res = bt .optimize (** OPT_PARAMS )
401
402
self .assertIsInstance (res , pd .Series )
402
403
403
- res2 = bt .optimize (** OPT_PARAMS , maximize = lambda s : s ['SQN' ])
404
+ default_maximize = inspect .signature (Backtest .optimize ).parameters ['maximize' ].default
405
+ res2 = bt .optimize (** OPT_PARAMS , maximize = lambda s : s [default_maximize ])
404
406
self .assertDictEqual (res .filter (regex = '^[^_]' ).fillna (- 1 ).to_dict (),
405
407
res2 .filter (regex = '^[^_]' ).fillna (- 1 ).to_dict ())
406
408
407
409
res3 , heatmap = bt .optimize (** OPT_PARAMS , return_heatmap = True ,
408
410
constraint = lambda d : d .slow > 2 * d .fast )
409
411
self .assertIsInstance (heatmap , pd .Series )
410
412
self .assertEqual (len (heatmap ), 4 )
413
+ self .assertEqual (heatmap .name , default_maximize )
411
414
412
415
with _tempfile () as f :
413
416
bt .plot (filename = f , open_browser = False )
You can’t perform that action at this time.
0 commit comments