#!/usr/bin/env python3 """Chinese Equity Quant Pipeline — decoupled phase CLI. Phases: data — Download daily bars to parquet derived — Ingest or compute daily derived data alpha — Compute alpha weights from data feature — Compute daily features from minute bars combo — Combine alphas into a single weight portfolio — Build tradable positions and simulate execution """ import logging import click from pipeline.data.cli import data from pipeline.derived.cli import derived from pipeline.alpha.cli import alpha from pipeline.features.cli import feature from pipeline.combo.cli import combo from pipeline.portfolio.cli import portfolio from tools.pqcat import pqcat from tools.alphaview import alphaview @click.group() @click.option( "--log-level", default="INFO", type=click.Choice(["DEBUG", "INFO", "WARNING", "ERROR"], case_sensitive=False), help="Logging verbosity (default INFO shows download/compute progress)", ) def cli(log_level): """Chinese Equity Quant Pipeline. Each phase is independent: read from parquet, write to parquet. """ logging.basicConfig( level=getattr(logging, log_level.upper()), format="%(asctime)s %(levelname)s %(name)s: %(message)s", datefmt="%H:%M:%S", ) cli.add_command(data) cli.add_command(derived) cli.add_command(alpha) cli.add_command(feature) cli.add_command(combo) cli.add_command(portfolio) cli.add_command(pqcat) cli.add_command(alphaview) if __name__ == "__main__": cli()