# Efficiency keys (env defaults)
"efficiency_weight": 0.75,
"efficiency_center": 0.75,
- # Profit factor params (env-compatible)
+ # Profit factor params (env defaults)
"win_reward_factor": 2.0,
"pnl_factor_beta": 0.5,
}
),
fit_live_predictions_candles,
self._optuna_config.get("label_candles_step"),
+ min_label_natr_ratio=self.ft_params.get(
+ "min_label_natr_ratio", 9.0
+ ),
+ max_label_natr_ratio=self.ft_params.get(
+ "max_label_natr_ratio", 12.0
+ ),
),
directions=[
optuna.study.StudyDirection.MAXIMIZE,
df: pd.DataFrame,
fit_live_predictions_candles: int,
candles_step: int,
+ min_label_natr_ratio: float = 9.0,
+ max_label_natr_ratio: float = 12.0,
) -> tuple[float, int]:
min_label_period_candles, max_label_period_candles, candles_step = (
get_min_max_label_period_candles(fit_live_predictions_candles, candles_step)
max_label_period_candles,
step=candles_step,
)
- label_natr_ratio = trial.suggest_float("label_natr_ratio", 9.0, 12.0, step=0.05)
+ label_natr_ratio = trial.suggest_float(
+ "label_natr_ratio", min_label_natr_ratio, max_label_natr_ratio, step=0.05
+ )
label_period_cycles = fit_live_predictions_candles / label_period_candles
df = df.iloc[-(max(2, int(label_period_cycles)) * label_period_candles) :]
side: str,
order: Literal["entry", "exit"],
rate: float,
- min_natr_ratio_percent: float = 0.0095,
- max_natr_ratio_percent: float = 0.025,
+ min_natr_ratio_percent: float = 0.009,
+ max_natr_ratio_percent: float = 0.03,
lookback_period: int = 1,
decay_ratio: float = 0.5,
) -> bool: