import json
import logging
import warnings
+import time
from enum import Enum
from pathlib import Path
from typing import Any, Callable, Dict, Optional, Type, Tuple
storage=storage,
load_if_exists=True,
)
+ start = time.time()
try:
study.optimize(
lambda trial: self.objective(trial, train_df, total_timesteps, dk),
)
except KeyboardInterrupt:
pass
+ time_spent = time.time() - start
- logger.info("------------ Hyperopt results %s ------------", dk.pair)
+ logger.info(
+ "------------ Hyperopt results %s (%.2f secs) ------------",
+ dk.pair,
+ time_spent,
+ )
logger.info(
"Best trial: %s. Score: %s", study.best_trial.number, study.best_trial.value
)
"Best trial params: %s",
self.optuna_trial_params[dk.pair][study.best_trial.number],
)
- logger.info("---------------------------------------------")
+ logger.info("-------------------------------------------------------")
best_params_path = Path(
dk.full_path / f"{dk.pair.split('/')[0]}_hyperopt_best_params.json"
dk.data["extra_returns_per_train"]["DI_cutoff"] = cutoff
dk.data["extra_returns_per_train"]["label_period_candles"] = (
- self.__optuna_period_params.get(pair, {}).get(
- "label_period_candles", self.ft_params["label_period_candles"]
- )
+ self.__optuna_period_params.get(
+ pair, {}
+ ).get("label_period_candles", self.ft_params["label_period_candles"])
)
dk.data["extra_returns_per_train"]["hp_rmse"] = self.__optuna_hp_rmse.get(
pair, {}
self, study_name: str, storage
) -> optuna.study.Study | None:
try:
- previous_study = optuna.load_study(study_name=study_name, storage=storage)
+ study = optuna.load_study(study_name=study_name, storage=storage)
except Exception:
- previous_study = None
+ study = None
try:
optuna.delete_study(study_name=study_name, storage=storage)
except Exception:
pass
- return previous_study
+ return study
def optuna_study_has_best_params(self, study: optuna.study.Study | None) -> bool:
if not study:
dk.data["extra_returns_per_train"]["DI_cutoff"] = cutoff
dk.data["extra_returns_per_train"]["label_period_candles"] = (
- self.__optuna_period_params.get(pair, {}).get(
- "label_period_candles", self.ft_params["label_period_candles"]
- )
+ self.__optuna_period_params.get(
+ pair, {}
+ ).get("label_period_candles", self.ft_params["label_period_candles"])
)
dk.data["extra_returns_per_train"]["hp_rmse"] = self.__optuna_hp_rmse.get(
pair, {}
self, study_name: str, storage
) -> optuna.study.Study | None:
try:
- previous_study = optuna.load_study(study_name=study_name, storage=storage)
+ study = optuna.load_study(study_name=study_name, storage=storage)
except Exception:
- previous_study = None
+ study = None
try:
optuna.delete_study(study_name=study_name, storage=storage)
except Exception:
pass
- return previous_study
+ return study
def optuna_study_has_best_params(self, study: optuna.study.Study | None) -> bool:
if not study: