INNER CODE UNIT · Python
_resolve_limit_pct
initial-d/ml-quant-trading · src/mlquant/cli/main.py:69
def _resolve_limit_pct(cfg, panel):
"""``limit_pct`` is a number, or ``"board"`` for per-board A-share thresholds."""
limit_pct = cfg.get("limit_pct", 0.098)
if isinstance(limit_pct, str):
if limit_pct != "board":
raise click.BadParameter(f"limit_pct must be a number or 'board', got {limit_pct!r}")
return board_limit_pct(panel.stocks, panel.dates)
return float(limit_pct)
def _oos_start(cfg, n_dates: int) -> int:
"""First out-of-sample date index; the model only trains on dates before it."""
train_frac = float(cfg.get("train_frac", 0.6))
if not 0.0 < train_frac < 1.0:
raise click.BadParameter(f"train_frac must be in (0, 1), got {train_frac}")
return max(1, min(n_dates - 2, int(n_dates * train_frac)))