| |
| """Generate research reports from GP outputs and qlib experiment artifacts.""" |
|
|
| import argparse |
| import sys |
| from pathlib import Path |
|
|
| ROOT = Path(__file__).resolve().parents[1] |
| if str(ROOT) not in sys.path: |
| sys.path.insert(0, str(ROOT)) |
|
|
| from reports.analysis import generate_experiment_report, generate_gp_only_report |
|
|
|
|
| def main(): |
| parser = argparse.ArgumentParser(description="Generate IC/backtest/GP analysis charts") |
| parser.add_argument("--run-id", type=str, default=None, help="GP mining run id") |
| parser.add_argument("--recorder-id", type=str, default=None, help="qlib Recorder id from mlruns") |
| parser.add_argument( |
| "--experiment-name", |
| type=str, |
| default=None, |
| help="qlib experiment name (e.g. ml_alpha_baseline, ml_alpha_gp)", |
| ) |
| parser.add_argument("--output-dir", type=str, default=None, help="Custom report output directory") |
| args = parser.parse_args() |
|
|
| out_dir = Path(args.output_dir) if args.output_dir else None |
|
|
| if args.recorder_id and args.experiment_name: |
| generate_experiment_report( |
| recorder_id=args.recorder_id, |
| experiment_name=args.experiment_name, |
| output_dir=out_dir, |
| run_id=args.run_id, |
| ) |
| else: |
| generate_gp_only_report(run_id=args.run_id, output_dir=out_dir) |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|