From 261cb3bac294f7865f5afc09e61460aabce69bb7 Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Tue, 31 Mar 2026 09:58:51 +0200 Subject: [PATCH] feat: wire --initial-capital into train_baseline_rl + Argo workflow train_baseline_rl now accepts --initial-capital (default $35K) matching hyperopt. Argo compile-and-train passes the workflow parameter to the train-best step. Both hyperopt and training now use consistent capital. Co-Authored-By: Claude Opus 4.6 (1M context) --- crates/ml/examples/train_baseline_rl.rs | 6 ++++++ infra/k8s/argo/compile-and-train-template.yaml | 1 + 2 files changed, 7 insertions(+) diff --git a/crates/ml/examples/train_baseline_rl.rs b/crates/ml/examples/train_baseline_rl.rs index db98f99c5..295ea73f2 100644 --- a/crates/ml/examples/train_baseline_rl.rs +++ b/crates/ml/examples/train_baseline_rl.rs @@ -246,6 +246,11 @@ struct Args { #[arg(long)] no_branching: bool, + /// Initial trading capital in dollars. Lower capital teaches conservative + /// position sizing. Must match hyperopt --initial-capital for consistency. + #[arg(long, default_value_t = 35_000.0)] + initial_capital: f64, + /// Named training profile to load from config/training/.toml. /// Profile values are applied after hyperopt JSON but before explicit CLI args. /// Known profiles: dqn-production, dqn-smoketest, dqn-hyperopt. @@ -568,6 +573,7 @@ fn train_dqn_fold( hyperparams.batch_size = hp_usize(hp, "batch_size").unwrap_or(args.batch_size); hyperparams.learning_rate = hp_f64(hp, "learning_rate").unwrap_or(args.learning_rate); hyperparams.max_training_steps_per_epoch = args.max_steps_per_epoch; + hyperparams.initial_capital = args.initial_capital as f32; // Create DQNTrainer -- auto-detects GPU, mixed precision, dynamic batch sizing let mut trainer = DQNTrainer::new(hyperparams) diff --git a/infra/k8s/argo/compile-and-train-template.yaml b/infra/k8s/argo/compile-and-train-template.yaml index 7c5ab3142..96880ff4e 100644 --- a/infra/k8s/argo/compile-and-train-template.yaml +++ b/infra/k8s/argo/compile-and-train-template.yaml @@ -496,6 +496,7 @@ spec: --tx-cost-bps {{workflow.parameters.tx-cost-bps}} \ --tick-size {{workflow.parameters.tick-size}} \ --spread-ticks {{workflow.parameters.spread-ticks}} \ + --initial-capital {{workflow.parameters.initial-capital}} \ --data-dir {{workflow.parameters.data-dir}} \ --mbp10-data-dir {{workflow.parameters.mbp10-data-dir}} \ --trades-data-dir {{workflow.parameters.trades-data-dir}} \