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:
@@ -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)
|
||||
|
||||
@@ -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}} \
|
||||
|
||||
Reference in New Issue
Block a user