From 1fe2d4117b2a2a6fb5716a579204054cb6f450fa Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Thu, 26 Feb 2026 23:10:26 +0100 Subject: [PATCH] ci: add dedicated PPO hyperopt training job Adds hyperopt-ppo job (manual, 4h timeout) that runs: 1. PSO hyperopt (20 trials, 15 epochs each) to find optimal PPO params 2. Full training with best params 3. Walk-forward evaluation with Sharpe/MaxDD/WinRate metrics Artifacts: ppo_hyperopt_results.json + ppo_eval_report.json (90 days) Co-Authored-By: Claude Opus 4.6 --- .gitlab-ci.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 45b3d98f7..422fab66f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -510,6 +510,44 @@ train-validate-tft: when: always expire_in: 30 days +hyperopt-ppo: + extends: .train-validate-base + needs: [build-training] + timeout: 4h + script: + - /usr/local/bin/hyperopt_baseline_rl + --model ppo + --trials 20 + --n-initial 5 + --epochs 15 + --symbol ES.FUT + --data-dir /mnt/training-data/futures-baseline + --base-dir ${CI_PROJECT_DIR}/output/hyperopt + --output ${CI_PROJECT_DIR}/output/ppo_hyperopt_results.json + - echo "=== PPO Hyperopt complete ===" + - cat ${CI_PROJECT_DIR}/output/ppo_hyperopt_results.json + - echo "=== Training PPO with best params ===" + - /usr/local/bin/train_baseline_rl + --model ppo + --symbol ES.FUT + --data-dir /mnt/training-data/futures-baseline + --output-dir ${CI_PROJECT_DIR}/output + --hyperopt-params ${CI_PROJECT_DIR}/output/ppo_hyperopt_results.json + - echo "=== Evaluating PPO with best params ===" + - /usr/local/bin/evaluate_baseline + --model ppo + --models-dir ${CI_PROJECT_DIR}/output + --data-dir /mnt/training-data/futures-baseline + --output ${CI_PROJECT_DIR}/output/ppo_eval_report.json + --symbol ES.FUT + - cat ${CI_PROJECT_DIR}/output/ppo_eval_report.json + artifacts: + paths: + - output/ppo_hyperopt_results.json + - output/ppo_eval_report.json + when: always + expire_in: 90 days + # -------------------------------------------------------------------------- # IaC: Terragrunt plan on MR (runs on gitlab pool) # --------------------------------------------------------------------------