BugFix - hyperopt-show --print-json include non-optimized params
This commit is contained in:
parent
bb1222d9b8
commit
bd44deea0d
19
freqtrade/optimize/hyperopt_tools.py
Normal file → Executable file
19
freqtrade/optimize/hyperopt_tools.py
Normal file → Executable file
@ -93,7 +93,7 @@ class HyperoptTools():
|
|||||||
if print_json:
|
if print_json:
|
||||||
result_dict: Dict = {}
|
result_dict: Dict = {}
|
||||||
for s in ['buy', 'sell', 'roi', 'stoploss', 'trailing']:
|
for s in ['buy', 'sell', 'roi', 'stoploss', 'trailing']:
|
||||||
HyperoptTools._params_update_for_json(result_dict, params, s)
|
HyperoptTools._params_update_for_json(result_dict, params, non_optimized, s)
|
||||||
print(rapidjson.dumps(result_dict, default=str, number_mode=rapidjson.NM_NATIVE))
|
print(rapidjson.dumps(result_dict, default=str, number_mode=rapidjson.NM_NATIVE))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@ -106,11 +106,20 @@ class HyperoptTools():
|
|||||||
HyperoptTools._params_pretty_print(params, 'trailing', "Trailing stop:")
|
HyperoptTools._params_pretty_print(params, 'trailing', "Trailing stop:")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _params_update_for_json(result_dict, params, space: str) -> None:
|
def _params_update_for_json(result_dict, params, non_optimized, space: str) -> None:
|
||||||
if space in params:
|
if space in params:
|
||||||
space_params = HyperoptTools._space_params(params, space)
|
space_params = HyperoptTools._space_params(params, space)
|
||||||
|
space_non_optimized = HyperoptTools._space_params(non_optimized, space)
|
||||||
|
all_space_params = space_params
|
||||||
|
|
||||||
|
# Include non optimized params if there are any
|
||||||
|
if len(space_non_optimized) > 0:
|
||||||
|
for non_optimized_param in space_non_optimized:
|
||||||
|
if non_optimized_param not in all_space_params:
|
||||||
|
all_space_params[non_optimized_param] = space_non_optimized[non_optimized_param]
|
||||||
|
|
||||||
if space in ['buy', 'sell']:
|
if space in ['buy', 'sell']:
|
||||||
result_dict.setdefault('params', {}).update(space_params)
|
result_dict.setdefault('params', {}).update(all_space_params)
|
||||||
elif space == 'roi':
|
elif space == 'roi':
|
||||||
# TODO: get rid of OrderedDict when support for python 3.6 will be
|
# TODO: get rid of OrderedDict when support for python 3.6 will be
|
||||||
# dropped (dicts keep the order as the language feature)
|
# dropped (dicts keep the order as the language feature)
|
||||||
@ -120,10 +129,10 @@ class HyperoptTools():
|
|||||||
# OrderedDict is used to keep the numeric order of the items
|
# OrderedDict is used to keep the numeric order of the items
|
||||||
# in the dict.
|
# in the dict.
|
||||||
result_dict['minimal_roi'] = OrderedDict(
|
result_dict['minimal_roi'] = OrderedDict(
|
||||||
(str(k), v) for k, v in space_params.items()
|
(str(k), v) for k, v in all_space_params.items()
|
||||||
)
|
)
|
||||||
else: # 'stoploss', 'trailing'
|
else: # 'stoploss', 'trailing'
|
||||||
result_dict.update(space_params)
|
result_dict.update(all_space_params)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _params_pretty_print(params, space: str, header: str, non_optimized={}) -> None:
|
def _params_pretty_print(params, space: str, header: str, non_optimized={}) -> None:
|
||||||
|
Loading…
Reference in New Issue
Block a user