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)))

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…