OUProcessCV(
id: str = None,
loader_or_data: Callable = <function load_clean_data>,
timeframe: str = '1d',
start: str = None,
end: str = None,
s1: str = 'BTCUSDT',
s2: str = 'ETHUSDT',
suffix: str = 'h5',
use_close: bool = True,
freq: str = None,
signal_model: str = None,
long_entries: float = nan,
long_exits: float = nan,
short_entries: float = nan,
short_exits: float = nan,
clean: bool = True,
select_symbols: str | int | List[str | int] = None,
portfolio_config: Dict[str, Any] = _Nothing.NOTHING,
model_params: Dict[str, Any] = _Nothing.NOTHING,
metrics: str | List[str] = None,
metrics_kwargs: Dict[str, Any] = _Nothing.NOTHING,
use_rolling: bool = False,
storage: str | optuna.storages._base.BaseStorage = None,
pruner: optuna.pruners._base.BasePruner = <optuna.pruners._successive_halving.SuccessiveHalvingPruner object>,
sampler: optuna.samplers._base.BaseSampler = <optuna.samplers._tpe.sampler.TPESampler object>,
study_name: str = None,
direction: str | List[str] = 'maximize',
load_if_exists: bool = False,
n_trials: int = 100,
n_completed_trials: int = None,
timeout: float = None,
n_jobs: int = 1,
catch: Iterable[Type[Exception]] | Type[Exception] = _Nothing.NOTHING,
callbacks: Iterable[Callable[[optuna.study.study.Study, optuna.trial._frozen.FrozenTrial], None]] | None = None,
gc_after_trial: bool = False,
show_progress_bar: bool = False,
verbose: bool = True,
tracker: Type = None,
model: Any = None,
preprocess_func: Callable = None,
)