from __future__ import annotations import argparse from pathlib import Path import sys PROJECT_ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(PROJECT_ROOT / "src")) from ml_crypto_lab.core.config import load_yaml from ml_crypto_lab.data.loading import load_raw_table, build_index_ohlc_and_matrices from ml_crypto_lab.inference.predict import predict_with_saved_model def main(): parser = argparse.ArgumentParser() parser.add_argument("--model-pack", required=True) parser.add_argument("--config", required=True) parser.add_argument("--output", required=True) args = parser.parse_args() cfg = load_yaml(args.config) raw = load_raw_table(cfg["data"]["path"]) built = build_index_ohlc_and_matrices(raw, cfg["data"]) base = built["ohlc"].copy() symbol = cfg["data"].get("symbol_candle", "INDEX") if symbol in built["buy"].columns: base["buy_volume"] = built["buy"][symbol] base["sell_volume"] = built["sell"][symbol] else: base["buy_volume"] = built["buy"].sum(axis=1) base["sell_volume"] = built["sell"].sum(axis=1) pred = predict_with_saved_model(args.model_pack, base, args.output) print(pred.tail()) print("saved:", args.output) if __name__ == "__main__": main()