exportfilename can be a file or directory
This commit is contained in:
		| @@ -199,7 +199,7 @@ class Configuration: | ||||
|             config['exportfilename'] = Path(config['exportfilename']) | ||||
|         else: | ||||
|             config['exportfilename'] = (config['user_data_dir'] | ||||
|                                         / 'backtest_results/backtest-result.json') | ||||
|                                         / 'backtest_results') | ||||
|  | ||||
|     def _process_optimize_options(self, config: Dict[str, Any]) -> None: | ||||
|  | ||||
|   | ||||
| @@ -38,7 +38,8 @@ def get_latest_backtest_filename(directory: Union[Path, str]) -> str: | ||||
|     filename = directory / LAST_BT_RESULT_FN | ||||
|  | ||||
|     if not filename.is_file(): | ||||
|         raise ValueError(f"Directory '{directory}' does not seem to contain backtest statistics yet.") | ||||
|         raise ValueError( | ||||
|             f"Directory '{directory}' does not seem to contain backtest statistics yet.") | ||||
|  | ||||
|     with filename.open() as file: | ||||
|         data = json_load(file) | ||||
| @@ -57,9 +58,11 @@ def load_backtest_stats(filename: Union[Path, str]) -> Dict[str, Any]: | ||||
|     """ | ||||
|     if isinstance(filename, str): | ||||
|         filename = Path(filename) | ||||
|     if filename.is_dir(): | ||||
|         filename = get_latest_backtest_filename(filename) | ||||
|     if not filename.is_file(): | ||||
|         raise ValueError(f"File {filename} does not exist.") | ||||
|  | ||||
|     logger.info(f"Loading backtest result from {filename}") | ||||
|     with filename.open() as file: | ||||
|         data = json_load(file) | ||||
|  | ||||
|   | ||||
| @@ -16,12 +16,17 @@ logger = logging.getLogger(__name__) | ||||
|  | ||||
| def store_backtest_stats(recordfilename: Path, stats: Dict[str, DataFrame]) -> None: | ||||
|  | ||||
|     filename = Path.joinpath(recordfilename.parent, | ||||
|                              f'{recordfilename.stem}-{datetime.now().isoformat()}' | ||||
|     if recordfilename.is_dir(): | ||||
|         filename = recordfilename / \ | ||||
|             f'backtest-result-{datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}.json' | ||||
|     else: | ||||
|         filename = Path.joinpath( | ||||
|             recordfilename.parent, | ||||
|             f'{recordfilename.stem}-{datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}' | ||||
|             ).with_suffix(recordfilename.suffix) | ||||
|     file_dump_json(filename, stats) | ||||
|  | ||||
|     latest_filename = Path.joinpath(recordfilename.parent, LAST_BT_RESULT_FN) | ||||
|     latest_filename = Path.joinpath(filename.parent, LAST_BT_RESULT_FN) | ||||
|     file_dump_json(latest_filename, {'latest_backtest': str(filename.name)}) | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user