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) <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-03-31 09:58:51 +02:00
parent 91aae4640c
commit 261cb3bac2
2 changed files with 7 additions and 0 deletions

View File

@@ -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/<profile>.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)

View File

@@ -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}} \