+pandas-stubs
+scipy-stubs
+uv
ruff
)
from optuna.storages.journal import JournalFileBackend
from optuna.study import Study, StudyDirection
+from optuna.study.study import ObjectiveFuncType
from pandas import DataFrame, merge
from sb3_contrib.common.maskable.callbacks import MaskableEvalCallback
from sb3_contrib.common.maskable.utils import is_masking_supported
hyperopt_failed = False
start_time = time.time()
try:
+ objective: ObjectiveFuncType = lambda trial: self.objective(
+ trial, dk, total_timesteps
+ )
study.optimize(
- lambda trial: self.objective(trial, dk, total_timesteps),
+ objective,
n_trials=self.optuna_n_trials,
timeout=(
hours_to_seconds(self.optuna_timeout_hours)
prices_train, prices_test = self.build_ohlc_price_dataframes(
dk.data_dictionary, dk.pair, dk
)
- seed = self.get_model_params().get("seed", 42) if seed is None else seed
+ seed: int = self.get_model_params().get("seed", 42) if seed is None else seed
if trial is not None:
seed += trial.number
set_random_seed(seed)
self._total_entry_additive: float = 0.0
self._last_exit_additive: float = 0.0
self._total_exit_additive: float = 0.0
- model_reward_parameters = self.rl_config.get("model_reward_parameters", {})
+ model_reward_parameters: Dict[str, Any] = self.rl_config.get(
+ "model_reward_parameters", {}
+ )
self.max_trade_duration_candles: int = int(
model_reward_parameters.get(
"max_trade_duration_candles",
+pandas-stubs
+scipy-stubs
ruff
from freqtrade.freqai.base_models.BaseRegressionModel import BaseRegressionModel
from freqtrade.freqai.data_kitchen import FreqaiDataKitchen
from numpy.typing import NDArray
+from optuna.study.study import ObjectiveFuncType
from sklearn_extra.cluster import KMedoids
from Utils import (
self,
pair: str,
namespace: str,
- callback: Callable[[], None],
+ callback: Callable[[], Optional[optuna.study.Study]],
) -> None:
if namespace not in {
QuickAdapterRegressorV3._OPTUNA_NAMESPACES[2]
self,
pair: str,
namespace: str,
- objective: Callable[[optuna.trial.Trial], float],
+ objective: ObjectiveFuncType,
direction: Optional[optuna.study.StudyDirection] = None,
directions: Optional[list[optuna.study.StudyDirection]] = None,
) -> Optional[optuna.study.Study]:
def get_optuna_callbacks(
trial: optuna.trial.Trial, regressor: Regressor
-) -> list[Callable[[optuna.trial.Trial, str], None]]:
+) -> list[
+ Union[
+ optuna.integration.XGBoostPruningCallback,
+ optuna.integration.LightGBMPruningCallback,
+ ]
+]:
+ callbacks: list[
+ Union[
+ optuna.integration.XGBoostPruningCallback,
+ optuna.integration.LightGBMPruningCallback,
+ ]
+ ]
if regressor == REGRESSORS[0]: # "xgboost"
callbacks = [
optuna.integration.XGBoostPruningCallback(trial, "validation_0-rmse")
eval_weights: Optional[list[NDArray[np.floating]]],
model_training_parameters: dict[str, Any],
init_model: Any = None,
- callbacks: Optional[list[Callable[[optuna.trial.Trial, str], None]]] = None,
+ callbacks: Optional[
+ list[
+ Union[
+ optuna.integration.XGBoostPruningCallback,
+ optuna.integration.LightGBMPruningCallback,
+ ]
+ ]
+ ] = None,
trial: Optional[optuna.trial.Trial] = None,
) -> Any:
if regressor == REGRESSORS[0]: # "xgboost"