57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
#!/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()
|