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 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-02-26 23:10:26 +01:00
parent b2086f74e6
commit 1fe2d4117b

View File

@@ -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)
# --------------------------------------------------------------------------