{
  "contract": {
    "archived_candidates_predeclared": [
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_grouped_v1_seed9090.json",
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_grouped_v1_seed9191.json",
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_grouped_v1_seed9292.json",
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_random_sparse_v1_seed9090.json",
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_random_sparse_v1_seed9191.json",
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_random_sparse_v1_seed9292.json",
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_hybrid_grouped_v1_seed9090.json",
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_hybrid_grouped_v1_seed9191.json",
      "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_hybrid_grouped_v1_seed9292.json"
    ],
    "entry_gate": "2017-12-01",
    "fees_per_side": 0.005,
    "terminal": "marked to market, no synthetic exit",
    "tail_policy": "drop exactly final export row on every timeframe",
    "windows": "continuous signals; carry-in return retained",
    "benchmark": "previous completed daily close vs200-calendar-day daily SMA,200 daily observations; same fees",
    "regime": "prior close vs prior trailing200D SMA; masked noncontiguous attribution, not standalone tradable returns",
    "archive_limit": "nine saved candidates plus incumbent; saved-threshold replay and equal additional128trial tuning; historical selection budgets unequal",
    "equal_additional_tuning": {
      "count_per_model": 128,
      "seed": 20260921,
      "selection_window": [
        "2017-12-01",
        "2026-02-28"
      ],
      "rank": "calendar Calmar with20entries; if none eligible retain highest with ineligible flag",
      "thresholds": "same seeded quantiles of each model IS scores; entry/exit/confirmation uniform quantiles0.05..0.95",
      "trail_choices": [
        0,
        5,
        10,
        20,
        30
      ],
      "confirmation": "both booleans sampled",
      "runtime_cap_seconds": 600,
      "limitation": "equal additional budget cannot equalize historical fitting or selection; later windows previously inspected"
    }
  },
  "inputs": [
    {
      "tf": "4H",
      "data": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 240.csv",
      "data_sha256": "edab76e18b7c03978b5b93930a36e6c8b870501c7944218171285dfc10c31bcb",
      "winner_sha256": "0c1a3d5acf8409d047c58d4fca4c2e32c8d6ef950fe95cebb540b34222a97aab",
      "weights": "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_4H_bb50_seed3020.json",
      "weights_sha256": "81bdd437f7ebcaf5daa302eed574663e8070bd5e009d5e5894ad8ce5a6ec73e5",
      "created": "2026-06-25 00:28:49",
      "training": {
        "phase1": {
          "device": "mps",
          "arch": [
            55,
            16,
            8,
            1
          ],
          "epochs_run": 32,
          "best_val_mse": 0.23791387677192688,
          "train_bars": 17163,
          "val_bars": 890,
          "target_k": 10,
          "vol_window": 60,
          "target_scale": 2.0,
          "val_span": [
            "2025-10-01 00:00:00",
            "2026-02-28 00:00:00"
          ]
        },
        "data_file": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 240.csv",
        "data_sha256": "56aff7ce434502229df5c0a12945628d2f9744f7fa4479175797a0a7f17fa454",
        "train_window": [
          "2017-01-01",
          "2026-02-28"
        ],
        "seed": 3020,
        "regime_filter": "all",
        "created": "2026-06-25T00:28:49+00:00",
        "phase2": {
          "es_popsize": 32,
          "es_sigma": 0.05,
          "es_generations": 300,
          "l2_anchor": 0.01,
          "es_workers": 2,
          "fold_objective": "robust",
          "best_fitness": -0.185078348808274,
          "fold_calmars": [
            0.6902762629264885,
            0.24605090372763405,
            0.41375205898737205,
            1.335092564030714,
            1.0319824313878814,
            0.0
          ],
          "fold_mean_calmar": 0.619525703510015,
          "fold_min_calmar": 0.0,
          "robust_diagnostics": {
            "valid_folds": 5,
            "drawdown_penalty": 0.0,
            "pnl_dd_penalty": 0.16666666666666666,
            "trade_penalty": 0.2111111111111111,
            "negative_fold_penalty": 0.16666666666666666,
            "fragility_penalty": 0.012,
            "fragile_0_05": 0,
            "fragile_1_0": 6,
            "trade_target": 15,
            "base_fold_score": 0.4336679924570105
          }
        },
        "recommended_thresholds": {
          "i_long_entry_activation_threshold": -42.67297279174775,
          "i_long_exit_activation_threshold": 7.002568474064587,
          "i_long_exit_activation_confirmation_threshold": -111.83132254846757,
          "i_trailing_stop_threshold": 5.097117772239415,
          "i_use_long_exit_confirmation": 1.0,
          "i_use_long_entry_confirmation": false
        }
      },
      "missing_counts_preserved_and_zero_filled": {
        "stoch_norm": 0,
        "macd_pred_norm": 0,
        "osc_norm": 0,
        "totalvol_norm": 0,
        "m3_momentum_norm": 0,
        "m2_tiny_norm": 0,
        "newaddr_norm": 0,
        "stoch_div_norm": 0,
        "vwap_div_norm": 0,
        "stoch_peak_norm": 0,
        "sendaddr_norm": 0,
        "m3_div_norm": 0,
        "bearish_engulfing_score": 0,
        "m2_nooff_norm": 0,
        "m2_div_norm": 0,
        "bullish_hammer_score": 0,
        "bullish_engulfing_score": 0,
        "shooting_star_score": 0,
        "btc_spx_corr_30": 0,
        "dxy_roc_norm": 0,
        "vix_pctrank_inv": 0,
        "btc_dom_roc_sign": 0,
        "us10y_roc_inv_sign": 0,
        "spy_above_200ema": 0,
        "gold_roc_pctrank": 0,
        "mvrv_zscore_value": 0,
        "mvrv_zscore_cont": 0,
        "nupl_norm": 0,
        "fed_net_liq_sign": 0,
        "gc_position": 0,
        "us2y_roc_inv_sign": 0,
        "yield_curve_sign": 0,
        "sopr_norm": 0,
        "rsid_reg_bull_norm": 0,
        "rsid_reg_bear_norm": 0,
        "rsid_hid_bull_norm": 0,
        "rsid_hid_bear_norm": 0,
        "rsid_rt_bull_norm": 0,
        "rsid_rt_bear_norm": 0,
        "rsid_slow_bull_norm": 0,
        "rsid_slow_bear_norm": 0,
        "rsid_delayed_peak_norm": 0,
        "rsid_delayed_dip_norm": 0,
        "oi_roc_norm": 0,
        "usdt_d_norm": 0,
        "basis_norm": 0,
        "cvd_norm": 0,
        "btc_gold_norm": 0,
        "rsi_subtf_norm": 0,
        "bb_pct_b_norm": 0,
        "rvol_norm": 0,
        "active1y_norm": 0,
        "hr_norm": 0
      },
      "duplicate_features": {
        "sopr_norm": 2,
        "cvd_norm": 2
      },
      "first": "2017-10-07 16:00:00",
      "last": "2026-08-21 12:00:00",
      "excluded_tail_rows": 1
    },
    {
      "tf": "6H",
      "data": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 360.csv",
      "data_sha256": "63107cd6218cb61e3d54a4086f70e23991bdefb7cca482a52f7b1edbedaef1db",
      "winner_sha256": "98978113caa9eed79b452ed101742a0e308f0de31727ed3d12e7f653311e3d69",
      "weights": "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_6H_bb50_seed4942.json",
      "weights_sha256": "91fa9223c87c489c24ec1d4711099c92fe331d189f660e7f080ee596c052763b",
      "created": "2026-06-25 13:19:45",
      "training": {
        "phase1": {
          "device": "mps",
          "arch": [
            55,
            16,
            8,
            1
          ],
          "epochs_run": 22,
          "best_val_mse": 0.23366740345954895,
          "train_bars": 11443,
          "val_bars": 591,
          "target_k": 10,
          "vol_window": 60,
          "target_scale": 2.0,
          "val_span": [
            "2025-10-01 00:00:00",
            "2026-02-28 00:00:00"
          ]
        },
        "data_file": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 360.csv",
        "data_sha256": "d42effbf2e64a6f33fd245d1c6447fd0ed85831fe4e6d463395e026802e5af1b",
        "train_window": [
          "2015-01-08",
          "2026-02-28"
        ],
        "seed": 4942,
        "regime_filter": "all",
        "created": "2026-06-25T13:19:45+00:00",
        "phase2": {
          "es_popsize": 32,
          "es_sigma": 0.05,
          "es_generations": 300,
          "l2_anchor": 0.01,
          "es_workers": 2,
          "fold_objective": "robust",
          "best_fitness": -0.5395807743705714,
          "fold_calmars": [
            2.161351720218386,
            0.0,
            1.4785087174278675,
            4.184147912878312,
            0.5237054724074439,
            0.0
          ],
          "fold_mean_calmar": 1.3912856371553348,
          "fold_min_calmar": 0.0,
          "robust_diagnostics": {
            "valid_folds": 4,
            "drawdown_penalty": 0.0,
            "pnl_dd_penalty": 0.3333333333333333,
            "trade_penalty": 0.24444444444444444,
            "negative_fold_penalty": 0.3333333333333333,
            "fragility_penalty": 0.006,
            "fragile_0_05": 0,
            "fragile_1_0": 3,
            "trade_target": 15,
            "base_fold_score": 0.9738999460087343
          }
        },
        "recommended_thresholds": {
          "i_long_entry_activation_threshold": -30.79058063450466,
          "i_long_exit_activation_threshold": 111.6223425616958,
          "i_long_exit_activation_confirmation_threshold": -41.99917796258356,
          "i_trailing_stop_threshold": 21.895025406021322,
          "i_use_long_exit_confirmation": 1.0,
          "i_use_long_entry_confirmation": false
        }
      },
      "missing_counts_preserved_and_zero_filled": {
        "stoch_norm": 0,
        "macd_pred_norm": 0,
        "osc_norm": 0,
        "totalvol_norm": 0,
        "m3_momentum_norm": 0,
        "m2_tiny_norm": 0,
        "newaddr_norm": 0,
        "stoch_div_norm": 0,
        "vwap_div_norm": 0,
        "stoch_peak_norm": 0,
        "sendaddr_norm": 0,
        "m3_div_norm": 0,
        "bearish_engulfing_score": 0,
        "m2_nooff_norm": 0,
        "m2_div_norm": 0,
        "bullish_hammer_score": 0,
        "bullish_engulfing_score": 0,
        "shooting_star_score": 0,
        "btc_spx_corr_30": 0,
        "dxy_roc_norm": 0,
        "vix_pctrank_inv": 0,
        "btc_dom_roc_sign": 0,
        "us10y_roc_inv_sign": 0,
        "spy_above_200ema": 0,
        "gold_roc_pctrank": 0,
        "mvrv_zscore_value": 0,
        "mvrv_zscore_cont": 0,
        "nupl_norm": 0,
        "fed_net_liq_sign": 0,
        "gc_position": 0,
        "us2y_roc_inv_sign": 0,
        "yield_curve_sign": 0,
        "sopr_norm": 0,
        "rsid_reg_bull_norm": 0,
        "rsid_reg_bear_norm": 0,
        "rsid_hid_bull_norm": 0,
        "rsid_hid_bear_norm": 0,
        "rsid_rt_bull_norm": 0,
        "rsid_rt_bear_norm": 0,
        "rsid_slow_bull_norm": 0,
        "rsid_slow_bear_norm": 0,
        "rsid_delayed_peak_norm": 0,
        "rsid_delayed_dip_norm": 0,
        "oi_roc_norm": 0,
        "usdt_d_norm": 0,
        "basis_norm": 0,
        "cvd_norm": 0,
        "btc_gold_norm": 0,
        "rsi_subtf_norm": 0,
        "bb_pct_b_norm": 0,
        "rvol_norm": 0,
        "active1y_norm": 0,
        "hr_norm": 0
      },
      "duplicate_features": {
        "sopr_norm": 2,
        "cvd_norm": 2
      },
      "first": "2017-10-15 12:00:00",
      "last": "2026-08-21 06:00:00",
      "excluded_tail_rows": 1
    },
    {
      "tf": "8H",
      "data": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 480.csv",
      "data_sha256": "8e655306bfdf8b6afb60031a173aa6c9fad1a5a8a99a8f9c671fb317c047f234",
      "winner_sha256": "5566bc89e78bf575016e5342f48f872edb673b3b8c38c974a0c225cc08148bdb",
      "weights": "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_8H_bb50_seed3629.json",
      "weights_sha256": "4884fc18fee697e9d54eac9d4de4bd9d0418ccbec7680a2dd12be61ce7830f38",
      "created": "2026-06-25 13:26:58",
      "training": {
        "phase1": {
          "device": "mps",
          "arch": [
            55,
            16,
            8,
            1
          ],
          "epochs_run": 23,
          "best_val_mse": 0.25512105226516724,
          "train_bars": 8582,
          "val_bars": 441,
          "target_k": 10,
          "vol_window": 60,
          "target_scale": 2.0,
          "val_span": [
            "2025-10-01 00:00:00",
            "2026-02-28 00:00:00"
          ]
        },
        "data_file": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 480.csv",
        "data_sha256": "48127c5b4565224634390995a2f6f54637beffd06e5038d9923a3508190523b5",
        "train_window": [
          "2015-01-08",
          "2026-02-28"
        ],
        "seed": 3629,
        "regime_filter": "all",
        "created": "2026-06-25T13:26:58+00:00",
        "phase2": {
          "es_popsize": 32,
          "es_sigma": 0.05,
          "es_generations": 300,
          "l2_anchor": 0.01,
          "es_workers": 2,
          "fold_objective": "robust",
          "best_fitness": -1.1366780902029383,
          "fold_calmars": [
            4.432008659311178,
            0.0,
            3.006779849762143,
            5.155470667956651,
            1.161920609566497,
            0.0
          ],
          "fold_mean_calmar": 2.2926966310994117,
          "fold_min_calmar": 0.0,
          "robust_diagnostics": {
            "valid_folds": 4,
            "drawdown_penalty": 0.0,
            "pnl_dd_penalty": 0.3333333333333333,
            "trade_penalty": 0.3,
            "negative_fold_penalty": 0.3333333333333333,
            "fragility_penalty": 0.026,
            "fragile_0_05": 0,
            "fragile_1_0": 13,
            "trade_target": 15,
            "base_fold_score": 1.604887641769588
          }
        },
        "recommended_thresholds": {
          "i_long_entry_activation_threshold": -42.707761801903224,
          "i_long_exit_activation_threshold": 71.90385153465772,
          "i_long_exit_activation_confirmation_threshold": -161.37697807671796,
          "i_trailing_stop_threshold": 0.0,
          "i_use_long_exit_confirmation": 1.0,
          "i_use_long_entry_confirmation": false
        }
      },
      "missing_counts_preserved_and_zero_filled": {
        "stoch_norm": 0,
        "macd_pred_norm": 0,
        "osc_norm": 0,
        "totalvol_norm": 0,
        "m3_momentum_norm": 0,
        "m2_tiny_norm": 0,
        "newaddr_norm": 0,
        "stoch_div_norm": 0,
        "vwap_div_norm": 0,
        "stoch_peak_norm": 0,
        "sendaddr_norm": 0,
        "m3_div_norm": 0,
        "bearish_engulfing_score": 0,
        "m2_nooff_norm": 0,
        "m2_div_norm": 0,
        "bullish_hammer_score": 0,
        "bullish_engulfing_score": 0,
        "shooting_star_score": 0,
        "btc_spx_corr_30": 0,
        "dxy_roc_norm": 0,
        "vix_pctrank_inv": 0,
        "btc_dom_roc_sign": 0,
        "us10y_roc_inv_sign": 0,
        "spy_above_200ema": 0,
        "gold_roc_pctrank": 0,
        "mvrv_zscore_value": 0,
        "mvrv_zscore_cont": 0,
        "nupl_norm": 0,
        "fed_net_liq_sign": 0,
        "gc_position": 0,
        "us2y_roc_inv_sign": 0,
        "yield_curve_sign": 0,
        "sopr_norm": 0,
        "rsid_reg_bull_norm": 0,
        "rsid_reg_bear_norm": 0,
        "rsid_hid_bull_norm": 0,
        "rsid_hid_bear_norm": 0,
        "rsid_rt_bull_norm": 0,
        "rsid_rt_bear_norm": 0,
        "rsid_slow_bull_norm": 0,
        "rsid_slow_bear_norm": 0,
        "rsid_delayed_peak_norm": 0,
        "rsid_delayed_dip_norm": 0,
        "oi_roc_norm": 0,
        "usdt_d_norm": 0,
        "basis_norm": 0,
        "cvd_norm": 0,
        "btc_gold_norm": 0,
        "rsi_subtf_norm": 0,
        "bb_pct_b_norm": 0,
        "rvol_norm": 0,
        "active1y_norm": 0,
        "hr_norm": 0
      },
      "duplicate_features": {
        "sopr_norm": 2,
        "cvd_norm": 2
      },
      "first": "2016-06-05 00:00:00",
      "last": "2026-08-21 08:00:00",
      "excluded_tail_rows": 1
    },
    {
      "tf": "12H",
      "data": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 720.csv",
      "data_sha256": "96e51a96b0998131daf1fe8f38db6790a89a39a9c478795afaac236c854761a1",
      "winner_sha256": "995f8d0b79826631ed8f3c49c3c90b72737bce5499393455addb26e569c4b02b",
      "weights": "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_12H_bb50_seed3528.json",
      "weights_sha256": "34b49d9de0d714715beb822c6a4f6ce333ce7b1af79054add5be90dabf3ca81e",
      "created": "2026-06-25 00:55:15",
      "training": {
        "phase1": {
          "device": "mps",
          "arch": [
            55,
            16,
            8,
            1
          ],
          "epochs_run": 21,
          "best_val_mse": 0.24535027146339417,
          "train_bars": 5722,
          "val_bars": 291,
          "target_k": 10,
          "vol_window": 60,
          "target_scale": 2.0,
          "val_span": [
            "2025-10-01 00:00:00",
            "2026-02-28 00:00:00"
          ]
        },
        "data_file": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 720.csv",
        "data_sha256": "9a786b78110d5837dc37efbbbc8f4ee1b84874537821f8bc11f243d1c1af6d7b",
        "train_window": [
          "2015-01-08",
          "2026-02-28"
        ],
        "seed": 3528,
        "regime_filter": "all",
        "created": "2026-06-25T00:55:15+00:00",
        "phase2": {
          "es_popsize": 32,
          "es_sigma": 0.05,
          "es_generations": 300,
          "l2_anchor": 0.01,
          "es_workers": 2,
          "fold_objective": "robust",
          "best_fitness": -3.168568216866961,
          "fold_calmars": [
            11.418445789520433,
            0.0,
            3.126562425775595,
            15.06793834401708,
            1.470278102158988,
            0.0
          ],
          "fold_mean_calmar": 5.180537443578683,
          "fold_min_calmar": 0.0,
          "robust_diagnostics": {
            "valid_folds": 4,
            "drawdown_penalty": 0.0,
            "pnl_dd_penalty": 0.3333333333333333,
            "trade_penalty": 0.26666666666666666,
            "negative_fold_penalty": 0.3333333333333333,
            "fragility_penalty": 0.024,
            "fragile_0_05": 0,
            "fragile_1_0": 12,
            "trade_target": 15,
            "base_fold_score": 3.626376210505078
          }
        },
        "recommended_thresholds": {
          "i_long_entry_activation_threshold": -181.8367055737754,
          "i_long_exit_activation_threshold": -41.68461978863749,
          "i_long_exit_activation_confirmation_threshold": -185.11685714914677,
          "i_trailing_stop_threshold": 0.0,
          "i_use_long_exit_confirmation": 1.0,
          "i_use_long_entry_confirmation": false
        }
      },
      "missing_counts_preserved_and_zero_filled": {
        "stoch_norm": 32,
        "macd_pred_norm": 0,
        "osc_norm": 14,
        "totalvol_norm": 365,
        "m3_momentum_norm": 0,
        "m2_tiny_norm": 0,
        "newaddr_norm": 365,
        "stoch_div_norm": 0,
        "vwap_div_norm": 1,
        "stoch_peak_norm": 0,
        "sendaddr_norm": 365,
        "m3_div_norm": 0,
        "bearish_engulfing_score": 0,
        "m2_nooff_norm": 0,
        "m2_div_norm": 0,
        "bullish_hammer_score": 0,
        "bullish_engulfing_score": 0,
        "shooting_star_score": 0,
        "btc_spx_corr_30": 30,
        "dxy_roc_norm": 0,
        "vix_pctrank_inv": 252,
        "btc_dom_roc_sign": 0,
        "us10y_roc_inv_sign": 0,
        "spy_above_200ema": 0,
        "gold_roc_pctrank": 252,
        "mvrv_zscore_value": 0,
        "mvrv_zscore_cont": 0,
        "nupl_norm": 0,
        "fed_net_liq_sign": 0,
        "gc_position": 0,
        "us2y_roc_inv_sign": 0,
        "yield_curve_sign": 0,
        "sopr_norm": 365,
        "rsid_reg_bull_norm": 0,
        "rsid_reg_bear_norm": 0,
        "rsid_hid_bull_norm": 0,
        "rsid_hid_bear_norm": 0,
        "rsid_rt_bull_norm": 0,
        "rsid_rt_bear_norm": 0,
        "rsid_slow_bull_norm": 0,
        "rsid_slow_bear_norm": 0,
        "rsid_delayed_peak_norm": 0,
        "rsid_delayed_dip_norm": 0,
        "oi_roc_norm": 252,
        "usdt_d_norm": 252,
        "basis_norm": 0,
        "cvd_norm": 252,
        "btc_gold_norm": 252,
        "rsi_subtf_norm": 0,
        "bb_pct_b_norm": 19,
        "rvol_norm": 252,
        "active1y_norm": 365,
        "hr_norm": 365
      },
      "duplicate_features": {
        "sopr_norm": 2,
        "cvd_norm": 2
      },
      "first": "2014-12-01 00:00:00",
      "last": "2026-06-25 00:00:00",
      "excluded_tail_rows": 1
    },
    {
      "tf": "1D",
      "data": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 1D.csv",
      "data_sha256": "f0942010c098346dff453b7470ba0025f3125a522f104c0c56dd27911648a81b",
      "winner_sha256": "d1b3edccb9ac5e8ab6606c78b92bf970f8b531ddcfa7c969e485acf5092bbedf",
      "weights": "/Users/jameslopez/projects/TradingBot25/strategies/params/mlp/mlp_weights_COINBASE_BTCUSD_1D_bb50_seed2727.json",
      "weights_sha256": "89680241aa1a0a33464386eb5ec316bcfa62e8d88b508fbaa9ec317b7bad9310",
      "created": "2026-06-25 13:26:58",
      "training": {
        "phase1": {
          "device": "mps",
          "arch": [
            55,
            16,
            8,
            1
          ],
          "epochs_run": 23,
          "best_val_mse": 0.2590208053588867,
          "train_bars": 2861,
          "val_bars": 141,
          "target_k": 10,
          "vol_window": 60,
          "target_scale": 2.0,
          "val_span": [
            "2025-10-01 00:00:00",
            "2026-02-28 00:00:00"
          ]
        },
        "data_file": "/Users/jameslopez/projects/TradingBot25/data/mlp/COINBASE_BTCUSD, 1D.csv",
        "data_sha256": "de82eb6dfeba0bec94a4d41fcfffef4bd28c2f604b15591c40ae7453283e262b",
        "train_window": [
          "2015-01-08",
          "2026-02-28"
        ],
        "seed": 2727,
        "regime_filter": "all",
        "created": "2026-06-25T13:26:58+00:00",
        "phase2": {
          "es_popsize": 32,
          "es_sigma": 0.05,
          "es_generations": 300,
          "l2_anchor": 0.01,
          "es_workers": 2,
          "fold_objective": "robust",
          "best_fitness": -9.258097228723681,
          "fold_calmars": [
            50.59706859771861,
            -0.9749487030449416,
            27.902079700558904,
            4.209578447955279,
            3.856606329041969,
            0.0
          ],
          "fold_mean_calmar": 14.265064062038304,
          "fold_min_calmar": -0.9749487030449416,
          "robust_diagnostics": {
            "valid_folds": 5,
            "drawdown_penalty": 0.013246855919751941,
            "pnl_dd_penalty": 0.3333333333333333,
            "trade_penalty": 0.12222222222222222,
            "negative_fold_penalty": 0.32915811717415694,
            "fragility_penalty": 0.028,
            "fragile_0_05": 0,
            "fragile_1_0": 14,
            "trade_target": 15,
            "base_fold_score": 9.693060232513329
          }
        },
        "recommended_thresholds": {
          "i_long_entry_activation_threshold": 5.846682562724686,
          "i_long_exit_activation_threshold": 116.94171150683724,
          "i_long_exit_activation_confirmation_threshold": -66.34427127344784,
          "i_trailing_stop_threshold": 0.0,
          "i_use_long_exit_confirmation": 1.0,
          "i_use_long_entry_confirmation": false
        }
      },
      "missing_counts_preserved_and_zero_filled": {
        "stoch_norm": 19,
        "macd_pred_norm": 0,
        "osc_norm": 14,
        "totalvol_norm": 365,
        "m3_momentum_norm": 0,
        "m2_tiny_norm": 0,
        "newaddr_norm": 365,
        "stoch_div_norm": 0,
        "vwap_div_norm": 1,
        "stoch_peak_norm": 0,
        "sendaddr_norm": 365,
        "m3_div_norm": 0,
        "bearish_engulfing_score": 0,
        "m2_nooff_norm": 0,
        "m2_div_norm": 0,
        "bullish_hammer_score": 0,
        "bullish_engulfing_score": 0,
        "shooting_star_score": 0,
        "btc_spx_corr_30": 30,
        "dxy_roc_norm": 0,
        "vix_pctrank_inv": 252,
        "btc_dom_roc_sign": 0,
        "us10y_roc_inv_sign": 0,
        "spy_above_200ema": 0,
        "gold_roc_pctrank": 252,
        "mvrv_zscore_value": 0,
        "mvrv_zscore_cont": 0,
        "nupl_norm": 0,
        "fed_net_liq_sign": 0,
        "gc_position": 0,
        "us2y_roc_inv_sign": 0,
        "yield_curve_sign": 0,
        "sopr_norm": 365,
        "rsid_reg_bull_norm": 0,
        "rsid_reg_bear_norm": 0,
        "rsid_hid_bull_norm": 0,
        "rsid_hid_bear_norm": 0,
        "rsid_rt_bull_norm": 0,
        "rsid_rt_bear_norm": 0,
        "rsid_slow_bull_norm": 0,
        "rsid_slow_bear_norm": 0,
        "rsid_delayed_peak_norm": 0,
        "rsid_delayed_dip_norm": 0,
        "oi_roc_norm": 252,
        "usdt_d_norm": 252,
        "basis_norm": 0,
        "cvd_norm": 252,
        "btc_gold_norm": 252,
        "rsi_subtf_norm": 0,
        "bb_pct_b_norm": 19,
        "rvol_norm": 252,
        "active1y_norm": 365,
        "hr_norm": 365
      },
      "duplicate_features": {
        "sopr_norm": 2,
        "cvd_norm": 2
      },
      "first": "2014-12-01 00:00:00",
      "last": "2026-06-24 00:00:00",
      "excluded_tail_rows": 1
    }
  ],
  "legacy_variants": null,
  "environment": {
    "python": "3.12.14 (main, Aug 25 2026, 13:50:33) [Clang 22.1.3 ]",
    "numpy": "2.2.6",
    "pandas": "3.0.3",
    "platform": "macOS-27.2-arm64-arm-64bit"
  },
  "source_sha256": {
    "tools/run_mlp_incumbent_audit.py": "62d290f9705cf91d1926672e98b924bd3de14d3c4b2208ea57b77423fcb4cdba",
    "strategies/mlp_accounting.py": "a861b9662a35fbf859ef9a3eab7384b3b4c9150ed0b9ca53597ed556249138cd",
    "strategies/strategy_mlp_scores.py": "8aeee0d227ca14087ffc019eee260b41e67dc69237acfaff049db00acc3fcb8b",
    "strategies/strategy_activation_scores.py": "b5f3d7e96ac9b1b962a26496d0a240f4751cf2fff8dd8f7ed3095bc047a8b6a3",
    "config.py": "2ad84bcf3427ec07afe436c54a8557245aabf72feb3e099c7b28fba86c1a72e0"
  },
  "outputs_sha256": {
    "archive_tuning_trials.csv": "2bd7c2b050efeb3dda6865f7c035ee51b6250268a8cab42abc1584bc1d79bcdb",
    "archived_candidates.csv": "b12cb56b8e65210b7833de03dcdc44a1ea02a01aec0737b4dd917bb823ffdaec",
    "concentration_diagnostics.csv": "33be71c7aa16bcc31d4bd68fa45f4553430fbcf5ca6dd4f1a56205fadc6e26e7",
    "metrics.csv": "b661ff14f53c9db49b02b7e7361e43bdef54447230a45903b11934402cb7bbc2",
    "protocol.json": "dbcdbb48c1183784e97e1492741e765c622451921aa9333bc0d4a4dd13f20374",
    "reconciliation.csv": "9417ac9ab33b0100f71b97b420d393364712687a93417da861e9054f858ac93e",
    "regime_attribution.csv": "5f317562d53a2f63cc207999c76313d988dfc090d12eb950a0de166518465ffd",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_bb50_seed4942.json": "5ccbc2dab076e8872e70e6a7814c5f23f864c5b7a063cc442338e79259e26629",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_grouped_v1_seed9090.json": "f0758ecf754b62aff794b3635d0ce0410ab3a587e838dd83575390b7f0395f8d",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_grouped_v1_seed9191.json": "a639b8d4117dd12d03aa3fb6d050a17db788a17e7d0124ffdda0848b48feb81e",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_grouped_v1_seed9292.json": "2a13646f54029df1ff2b52fd1a32d12af1011d8bae96c80b906d0a2f1e8d7bcc",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_hybrid_grouped_v1_seed9090.json": "6a43382113b8b8ff996ac2e241aa0395a1303b3ab4955863052358228eb3f7e1",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_hybrid_grouped_v1_seed9191.json": "fe4e1f9c73abe24d34bf13ffb36bb552146af89d0b726496a4b9b59f77428a9a",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_hybrid_grouped_v1_seed9292.json": "b83906255c037afdf925c64864dda3ec003965c0de079b738c279e7c9596739b",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_random_sparse_v1_seed9090.json": "19a468450c3b0ddd82871684848a0dcd62d75ab5b0befa04fe1b6e4005454f11",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_random_sparse_v1_seed9191.json": "a0b8d00c4f9415b9c2817743f8adacf5d38038d1960f992ee8f46eb0f5264626",
    "selection_mlp_weights_COINBASE_BTCUSD_6H_random_sparse_v1_seed9292.json": "71d3dd2f4de9058b0e04503ca58ca822f7f831dbdf5b6df5452790e6b0a0b05a",
    "trade_ledger.csv": "eb0a37f517c15038652a97735c072e6724f2f04f5132b41dc7a5a257fcb623d9"
  }
}
