From fb5d6a57a2dc42f9944f3e03ec3bf837058ce58a Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Wed, 25 Mar 2026 12:49:24 +0100 Subject: [PATCH] fix: stress tester init non-fatal on small GPUs + hyperopt runs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The stress tester creates a SECOND DQNTrainer for validation, which OOMs on 4GB GPUs. Changed from fatal error (?) to warning + skip. Hyperopt now successfully trains on RTX 3050 — 2 trials × 10 epochs completed in 19 minutes. Backtest metrics still show extreme returns (multiplicative compounding over 895K bars) — needs separate fix. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../dqn/20260325_105524/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_105524/campaign_summary.json | 7 ++ .../dqn/20260325_105536/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_105536/campaign_summary.json | 7 ++ .../dqn/20260325_105548/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_105548/campaign_summary.json | 7 ++ .../dqn/20260325_105848/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_105848/campaign_summary.json | 7 ++ .../dqn/20260325_110152/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_110152/campaign_summary.json | 7 ++ .../dqn/20260325_110517/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_110517/campaign_summary.json | 7 ++ .../dqn/20260325_110701/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_110701/campaign_summary.json | 7 ++ .../dqn/20260325_111032/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_111032/campaign_summary.json | 7 ++ .../dqn/20260325_111411/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_111411/campaign_summary.json | 7 ++ .../dqn/20260325_111757/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_111757/campaign_summary.json | 7 ++ .../dqn/20260325_112048/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_112048/campaign_summary.json | 7 ++ .../dqn/20260325_112418/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_112418/campaign_summary.json | 7 ++ .../dqn/20260325_112701/best_params.json | 70 ++++++++++++++++ .../dqn/20260325_112701/campaign_summary.json | 7 ++ ...-36-46.898923065+00-00_sharpe_-0.0284.json | 79 +++++++++++++++++++ ...1-46-05.640280261+00-00_sharpe_0.0122.json | 79 +++++++++++++++++++ crates/ml/src/hyperopt/adapters/dqn.rs | 7 +- 29 files changed, 1164 insertions(+), 2 deletions(-) create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_105524/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_105524/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_105536/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_105536/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_105548/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_105548/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_105848/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_105848/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_110152/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_110152/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_110517/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_110517/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_110701/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_110701/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_111032/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_111032/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_111411/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_111411/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_111757/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_111757/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_112048/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_112048/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_112418/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_112418/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_112701/best_params.json create mode 100644 crates/ml/ml/hyperopt_results/dqn/20260325_112701/campaign_summary.json create mode 100644 crates/ml/ml/hyperopt_results/dqn_best_trial_2026-03-25T11-36-46.898923065+00-00_sharpe_-0.0284.json create mode 100644 crates/ml/ml/hyperopt_results/dqn_best_trial_2026-03-25T11-46-05.640280261+00-00_sharpe_0.0122.json diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_105524/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_105524/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_105524/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_105524/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_105524/campaign_summary.json new file mode 100644 index 000000000..ba6ad3f70 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_105524/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.615679373 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_105536/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_105536/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_105536/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_105536/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_105536/campaign_summary.json new file mode 100644 index 000000000..0672a09bd --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_105536/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.622961413 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_105548/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_105548/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_105548/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_105548/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_105548/campaign_summary.json new file mode 100644 index 000000000..7b0354a4b --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_105548/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.604241047 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_105848/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_105848/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_105848/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_105848/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_105848/campaign_summary.json new file mode 100644 index 000000000..d9e9ea0b7 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_105848/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.639284133 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_110152/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_110152/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_110152/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_110152/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_110152/campaign_summary.json new file mode 100644 index 000000000..147ec5fc0 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_110152/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.668801945 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_110517/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_110517/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_110517/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_110517/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_110517/campaign_summary.json new file mode 100644 index 000000000..b74c4254c --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_110517/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.611105014 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_110701/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_110701/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_110701/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_110701/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_110701/campaign_summary.json new file mode 100644 index 000000000..77179703c --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_110701/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.587114161 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_111032/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_111032/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_111032/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_111032/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_111032/campaign_summary.json new file mode 100644 index 000000000..e807993e3 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_111032/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.652871499 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_111411/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_111411/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_111411/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_111411/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_111411/campaign_summary.json new file mode 100644 index 000000000..e8ed69128 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_111411/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.613278123 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_111757/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_111757/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_111757/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_111757/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_111757/campaign_summary.json new file mode 100644 index 000000000..22a2e74c5 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_111757/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.606376186 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_112048/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_112048/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_112048/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_112048/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_112048/campaign_summary.json new file mode 100644 index 000000000..b25217b85 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_112048/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.596611982 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_112418/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_112418/best_params.json new file mode 100644 index 000000000..255086f32 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_112418/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_112418/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_112418/campaign_summary.json new file mode 100644 index 000000000..acc23dc16 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_112418/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 1, + "best_loss": 1000000.0, + "best_params_json": "{\n \"learning_rate\": 0.00005994999354431849,\n \"batch_size\": 307,\n \"gamma\": 0.9572818589229506,\n \"buffer_size\": 66246,\n \"max_position_absolute\": 1.1030284538648683,\n \"huber_delta\": 17.775790174607682,\n \"entropy_coefficient\": 0.38184099247597697,\n \"transaction_cost_multiplier\": 1.7738774066741243,\n \"per_alpha\": 0.45251155566697393,\n \"per_beta_start\": 0.20130083854118397,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.008986246204051671,\n \"num_atoms\": 101,\n \"v_min\": -280.91110000212706,\n \"v_max\": 280.91110000212706,\n \"noisy_sigma_init\": 0.24583814763225417,\n \"minimum_profit_factor\": 1.5028035348681215,\n \"weight_decay\": 0.00010597074820791314,\n \"kelly_fractional\": 0.5096243658522589,\n \"kelly_max_fraction\": 0.12010947414322902,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 23,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.10176748614555509,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.8479734309322158,\n \"spectral_norm_sigma_max\": 4.8543579475657985,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.23831546372779777,\n \"cql_alpha\": 0.5059776371295834,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.003947815597664894,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 10,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.48591734800375336,\n \"curiosity_weight_tunable\": 0.09052455736721342,\n \"use_cvar_action_selection\": 0.028233223186665324,\n \"cvar_alpha\": 0.03929750758139713\n}", + "best_checkpoint_path": null, + "total_time_seconds": 0.631659655 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_112701/best_params.json b/crates/ml/ml/hyperopt_results/dqn/20260325_112701/best_params.json new file mode 100644 index 000000000..207e87125 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_112701/best_params.json @@ -0,0 +1,70 @@ +{ + "learning_rate": 0.000022190877220087656, + "batch_size": 295, + "gamma": 0.9708044572883984, + "buffer_size": 78142, + "max_position_absolute": 2.7336642095489605, + "huber_delta": 33.038741593200534, + "entropy_coefficient": 0.11257353575380279, + "transaction_cost_multiplier": 1.5746512810722009, + "per_alpha": 0.42310878991492795, + "per_beta_start": 0.443376110589724, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.005735560746743293, + "num_atoms": 101, + "v_min": -300.0, + "v_max": 300.0, + "noisy_sigma_init": 0.2759837612234165, + "minimum_profit_factor": 1.909221443617045, + "weight_decay": 0.001, + "kelly_fractional": 0.6331514564654239, + "kelly_max_fraction": 0.16041424175716595, + "kelly_min_trades": 20, + "volatility_window": 28, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.35115315644521294, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.10209061418712961, + "spectral_norm_sigma_max": 5.943867735507343, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.061690164793656715, + "cql_alpha": 0.7125957338975473, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.010460795490728925, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 5, + "dt_pretrain_epochs": 0, + "her_ratio": 0.45962308931287466, + "curiosity_weight_tunable": 0.14953162706612275, + "use_cvar_action_selection": 0.47923390383514164, + "cvar_alpha": 0.19998051861344832 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn/20260325_112701/campaign_summary.json b/crates/ml/ml/hyperopt_results/dqn/20260325_112701/campaign_summary.json new file mode 100644 index 000000000..b16964503 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn/20260325_112701/campaign_summary.json @@ -0,0 +1,7 @@ +{ + "trials_completed": 2, + "best_loss": 10.308218440145017, + "best_params_json": "{\n \"learning_rate\": 0.000022190877220087656,\n \"batch_size\": 295,\n \"gamma\": 0.9708044572883984,\n \"buffer_size\": 78142,\n \"max_position_absolute\": 2.7336642095489605,\n \"huber_delta\": 33.038741593200534,\n \"entropy_coefficient\": 0.11257353575380279,\n \"transaction_cost_multiplier\": 1.5746512810722009,\n \"per_alpha\": 0.42310878991492795,\n \"per_beta_start\": 0.443376110589724,\n \"dueling_hidden_dim\": 128,\n \"n_steps\": 4,\n \"tau\": 0.005735560746743293,\n \"num_atoms\": 101,\n \"v_min\": -300.0,\n \"v_max\": 300.0,\n \"noisy_sigma_init\": 0.2759837612234165,\n \"minimum_profit_factor\": 1.909221443617045,\n \"weight_decay\": 0.001,\n \"kelly_fractional\": 0.6331514564654239,\n \"kelly_max_fraction\": 0.16041424175716595,\n \"kelly_min_trades\": 20,\n \"volatility_window\": 28,\n \"use_ensemble_uncertainty\": false,\n \"ensemble_size\": 5.0,\n \"beta_variance\": 0.5,\n \"beta_disagreement\": 0.5,\n \"beta_entropy\": 0.2,\n \"warmup_ratio\": 0.0,\n \"curiosity_weight\": 0.0,\n \"td_error_clamp_max\": 10.0,\n \"batch_diversity_cooldown\": 50.0,\n \"lr_decay_type\": 0.0,\n \"sharpe_weight\": 0.35115315644521294,\n \"gae_lambda\": 0.95,\n \"noisy_sigma_initial\": 0.5,\n \"noisy_sigma_final\": 0.3,\n \"use_spectral_norm\": true,\n \"use_attention\": true,\n \"use_residual\": true,\n \"norm_type\": 1.0,\n \"activation_type\": 1.0,\n \"num_quantiles\": 32,\n \"qr_kappa\": 1.0,\n \"iqn_lambda\": 0.10209061418712961,\n \"spectral_norm_sigma_max\": 5.943867735507343,\n \"hidden_dim_base\": 128,\n \"noisy_epsilon_floor\": 0.1,\n \"count_bonus_coefficient\": 0.061690164793656715,\n \"cql_alpha\": 0.7125957338975473,\n \"eval_softmax_temp\": 1.0,\n \"dsr_eta\": 0.010460795490728925,\n \"branch_hidden_dim\": 64,\n \"gradient_accumulation_steps\": 1,\n \"w_dsr\": 1.0,\n \"w_pnl\": 0.3,\n \"w_dd\": 1.0,\n \"w_idle\": 0.01,\n \"dd_threshold\": 0.01,\n \"loss_aversion\": 1.5,\n \"time_decay_rate\": 0.0005,\n \"q_gap_threshold\": 0.1,\n \"c51_warmup_epochs\": 5,\n \"dt_pretrain_epochs\": 0,\n \"her_ratio\": 0.45962308931287466,\n \"curiosity_weight_tunable\": 0.14953162706612275,\n \"use_cvar_action_selection\": 0.47923390383514164,\n \"cvar_alpha\": 0.19998051861344832\n}", + "best_checkpoint_path": null, + "total_time_seconds": 1144.633763253 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn_best_trial_2026-03-25T11-36-46.898923065+00-00_sharpe_-0.0284.json b/crates/ml/ml/hyperopt_results/dqn_best_trial_2026-03-25T11-36-46.898923065+00-00_sharpe_-0.0284.json new file mode 100644 index 000000000..2c9545ef2 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn_best_trial_2026-03-25T11-36-46.898923065+00-00_sharpe_-0.0284.json @@ -0,0 +1,79 @@ +{ + "trial_number": 0, + "sharpe": -0.028400666266679763, + "win_rate": 0.21477571427822112, + "max_drawdown": 100.0, + "total_return": -19063466697372.566, + "hyperparameters": { + "learning_rate": 0.00005994999354431849, + "batch_size": 307, + "gamma": 0.9572818589229506, + "buffer_size": 66246, + "max_position_absolute": 1.1030284538648683, + "huber_delta": 17.775790174607682, + "entropy_coefficient": 0.38184099247597697, + "transaction_cost_multiplier": 1.7738774066741243, + "per_alpha": 0.45251155566697393, + "per_beta_start": 0.20130083854118397, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.008986246204051671, + "num_atoms": 101, + "v_min": -280.91110000212706, + "v_max": 280.91110000212706, + "noisy_sigma_init": 0.24583814763225417, + "minimum_profit_factor": 1.5028035348681215, + "weight_decay": 0.00010597074820791314, + "kelly_fractional": 0.5096243658522589, + "kelly_max_fraction": 0.12010947414322902, + "kelly_min_trades": 20, + "volatility_window": 23, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.10176748614555509, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.8479734309322158, + "spectral_norm_sigma_max": 4.8543579475657985, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.23831546372779777, + "cql_alpha": 0.5059776371295834, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.003947815597664894, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 10, + "dt_pretrain_epochs": 0, + "her_ratio": 0.48591734800375336, + "curiosity_weight_tunable": 0.09052455736721342, + "use_cvar_action_selection": 0.028233223186665324, + "cvar_alpha": 0.03929750758139713 + }, + "timestamp": "2026-03-25T11:36:46.898923065+00:00", + "gradient_clip_norm": 10.0 +} \ No newline at end of file diff --git a/crates/ml/ml/hyperopt_results/dqn_best_trial_2026-03-25T11-46-05.640280261+00-00_sharpe_0.0122.json b/crates/ml/ml/hyperopt_results/dqn_best_trial_2026-03-25T11-46-05.640280261+00-00_sharpe_0.0122.json new file mode 100644 index 000000000..dfb2edf70 --- /dev/null +++ b/crates/ml/ml/hyperopt_results/dqn_best_trial_2026-03-25T11-46-05.640280261+00-00_sharpe_0.0122.json @@ -0,0 +1,79 @@ +{ + "trial_number": 1, + "sharpe": 0.0122409051284194, + "win_rate": 0.17802281987387686, + "max_drawdown": 100.0, + "total_return": 279102509770.2674, + "hyperparameters": { + "learning_rate": 0.000022190877220087656, + "batch_size": 295, + "gamma": 0.9708044572883984, + "buffer_size": 78142, + "max_position_absolute": 2.7336642095489605, + "huber_delta": 33.038741593200534, + "entropy_coefficient": 0.11257353575380279, + "transaction_cost_multiplier": 1.5746512810722009, + "per_alpha": 0.42310878991492795, + "per_beta_start": 0.443376110589724, + "dueling_hidden_dim": 128, + "n_steps": 4, + "tau": 0.005735560746743293, + "num_atoms": 101, + "v_min": -300.0, + "v_max": 300.0, + "noisy_sigma_init": 0.2759837612234165, + "minimum_profit_factor": 1.909221443617045, + "weight_decay": 0.001, + "kelly_fractional": 0.6331514564654239, + "kelly_max_fraction": 0.16041424175716595, + "kelly_min_trades": 20, + "volatility_window": 28, + "use_ensemble_uncertainty": false, + "ensemble_size": 5.0, + "beta_variance": 0.5, + "beta_disagreement": 0.5, + "beta_entropy": 0.2, + "warmup_ratio": 0.0, + "curiosity_weight": 0.0, + "td_error_clamp_max": 10.0, + "batch_diversity_cooldown": 50.0, + "lr_decay_type": 0.0, + "sharpe_weight": 0.35115315644521294, + "gae_lambda": 0.95, + "noisy_sigma_initial": 0.5, + "noisy_sigma_final": 0.3, + "use_spectral_norm": true, + "use_attention": true, + "use_residual": true, + "norm_type": 1.0, + "activation_type": 1.0, + "num_quantiles": 32, + "qr_kappa": 1.0, + "iqn_lambda": 0.10209061418712961, + "spectral_norm_sigma_max": 5.943867735507343, + "hidden_dim_base": 128, + "noisy_epsilon_floor": 0.1, + "count_bonus_coefficient": 0.061690164793656715, + "cql_alpha": 0.7125957338975473, + "eval_softmax_temp": 1.0, + "dsr_eta": 0.010460795490728925, + "branch_hidden_dim": 64, + "gradient_accumulation_steps": 1, + "w_dsr": 1.0, + "w_pnl": 0.3, + "w_dd": 1.0, + "w_idle": 0.01, + "dd_threshold": 0.01, + "loss_aversion": 1.5, + "time_decay_rate": 0.0005, + "q_gap_threshold": 0.1, + "c51_warmup_epochs": 5, + "dt_pretrain_epochs": 0, + "her_ratio": 0.45962308931287466, + "curiosity_weight_tunable": 0.14953162706612275, + "use_cvar_action_selection": 0.47923390383514164, + "cvar_alpha": 0.19998051861344832 + }, + "timestamp": "2026-03-25T11:46:05.640280261+00:00", + "gradient_clip_norm": 10.0 +} \ No newline at end of file diff --git a/crates/ml/src/hyperopt/adapters/dqn.rs b/crates/ml/src/hyperopt/adapters/dqn.rs index d11e16b51..4a1ec620d 100644 --- a/crates/ml/src/hyperopt/adapters/dqn.rs +++ b/crates/ml/src/hyperopt/adapters/dqn.rs @@ -3100,8 +3100,11 @@ impl HyperparameterOptimizable for DQNTrainer { // Two-phase stress tester init: now that the trainer is fully constructed, // resolve the circular dependency by creating the inner stress tester. - internal_trainer.init_stress_tester() - .map_err(|e| MLError::TrainingError(format!("Failed to init stress tester: {}", e)))?; + // Stress tester creates a SECOND DQNTrainer — may OOM on small GPUs (4GB). + // Non-fatal: training proceeds without stress testing. + if let Err(e) = internal_trainer.init_stress_tester() { + tracing::warn!("Stress tester init skipped (non-fatal, likely OOM): {}", e); + } // Inject preloaded OFI features into the trial trainer (Arc-clone, zero-copy) if let Some(ref ofi) = self.preloaded_ofi_features {