File size: 1,388 Bytes
590a501
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env python3
"""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()