improvements to hyperopt output
This commit is contained in:
parent
e8be357624
commit
aa8f44f68c
@ -11,7 +11,7 @@ import sys
|
|||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
from typing import Any, Dict, List
|
from typing import Any, Dict, List, Optional
|
||||||
|
|
||||||
from joblib import Parallel, delayed, dump, load, wrap_non_picklable_objects, cpu_count
|
from joblib import Parallel, delayed, dump, load, wrap_non_picklable_objects, cpu_count
|
||||||
from pandas import DataFrame
|
from pandas import DataFrame
|
||||||
@ -70,7 +70,7 @@ class Hyperopt(Backtesting):
|
|||||||
if hasattr(self.custom_hyperopt, 'populate_sell_trend'):
|
if hasattr(self.custom_hyperopt, 'populate_sell_trend'):
|
||||||
self.advise_sell = self.custom_hyperopt.populate_sell_trend # type: ignore
|
self.advise_sell = self.custom_hyperopt.populate_sell_trend # type: ignore
|
||||||
|
|
||||||
# Use max_open_trades for hyperopt as well, except --disable-max-market-positions is set
|
# Use max_open_trades for hyperopt as well, except --disable-max-market-positions is set
|
||||||
if self.config.get('use_max_market_positions', True):
|
if self.config.get('use_max_market_positions', True):
|
||||||
self.max_open_trades = self.config['max_open_trades']
|
self.max_open_trades = self.config['max_open_trades']
|
||||||
else:
|
else:
|
||||||
@ -134,10 +134,19 @@ class Hyperopt(Backtesting):
|
|||||||
|
|
||||||
log_str = self.format_results_logstring(best_result)
|
log_str = self.format_results_logstring(best_result)
|
||||||
print(f"\nBest result:\n{log_str}\nwith values:")
|
print(f"\nBest result:\n{log_str}\nwith values:")
|
||||||
pprint(params, indent=4)
|
if self.has_space('buy'):
|
||||||
|
print('Buy hyperspace params:')
|
||||||
|
pprint({p.name: params.get(p.name) for p in self.hyperopt_space('buy')},
|
||||||
|
indent=4)
|
||||||
|
if self.has_space('sell'):
|
||||||
|
print('Sell hyperspace params:')
|
||||||
|
pprint({p.name: params.get(p.name) for p in self.hyperopt_space('sell')},
|
||||||
|
indent=4)
|
||||||
if self.has_space('roi'):
|
if self.has_space('roi'):
|
||||||
print("ROI table:")
|
print("ROI table:")
|
||||||
pprint(self.custom_hyperopt.generate_roi_table(params), indent=4)
|
pprint(self.custom_hyperopt.generate_roi_table(params), indent=4)
|
||||||
|
if self.has_space('stoploss'):
|
||||||
|
print(f"Stoploss: {params.get('stoploss')}")
|
||||||
|
|
||||||
def log_results(self, results) -> None:
|
def log_results(self, results) -> None:
|
||||||
"""
|
"""
|
||||||
@ -171,21 +180,24 @@ class Hyperopt(Backtesting):
|
|||||||
"""
|
"""
|
||||||
return any(s in self.config['spaces'] for s in [space, 'all'])
|
return any(s in self.config['spaces'] for s in [space, 'all'])
|
||||||
|
|
||||||
def hyperopt_space(self) -> List[Dimension]:
|
def hyperopt_space(self, space: Optional[str] = None) -> List[Dimension]:
|
||||||
"""
|
"""
|
||||||
Return the space to use during Hyperopt
|
Return the dimentions in the hyperoptimization space.
|
||||||
|
:param space: Defines hyperspace to return dimentions for.
|
||||||
|
If None, then the self.has_space() will be used to return dimentions
|
||||||
|
for all hyperspaces used.
|
||||||
"""
|
"""
|
||||||
spaces: List[Dimension] = []
|
spaces: List[Dimension] = []
|
||||||
if self.has_space('buy'):
|
if space == 'buy' or (space is None and self.has_space('buy')):
|
||||||
logger.debug("Hyperopt has 'buy' space")
|
logger.debug("Hyperopt has 'buy' space")
|
||||||
spaces += self.custom_hyperopt.indicator_space()
|
spaces += self.custom_hyperopt.indicator_space()
|
||||||
if self.has_space('sell'):
|
if space == 'sell' or (space is None and self.has_space('sell')):
|
||||||
logger.debug("Hyperopt has 'sell' space")
|
logger.debug("Hyperopt has 'sell' space")
|
||||||
spaces += self.custom_hyperopt.sell_indicator_space()
|
spaces += self.custom_hyperopt.sell_indicator_space()
|
||||||
if self.has_space('roi'):
|
if space == 'roi' or (space is None and self.has_space('roi')):
|
||||||
logger.debug("Hyperopt has 'roi' space")
|
logger.debug("Hyperopt has 'roi' space")
|
||||||
spaces += self.custom_hyperopt.roi_space()
|
spaces += self.custom_hyperopt.roi_space()
|
||||||
if self.has_space('stoploss'):
|
if space == 'stoploss' or (space is None and self.has_space('stoploss')):
|
||||||
logger.debug("Hyperopt has 'stoploss' space")
|
logger.debug("Hyperopt has 'stoploss' space")
|
||||||
spaces += self.custom_hyperopt.stoploss_space()
|
spaces += self.custom_hyperopt.stoploss_space()
|
||||||
return spaces
|
return spaces
|
||||||
|
Loading…
Reference in New Issue
Block a user