{
  "run_id": "ridge_closeh_dedicated_h10h20_executable_utility_135_20260712T233409Z",
  "hypothesis_id": "ridge_closeh_dedicated_h10h20_executable_utility_135",
  "hypothesis": {
    "bottleneck": "Passer d’un signal de touch intrabar non exécutable à une cible de rendement close-to-close directement tradable, tout en évitant le retuning Test des anciennes variantes close-H.",
    "causal_mechanism": "Si le score TP-prob encode un régime directionnel réel, un modèle linéaire entraîné sur le retour close-H net coûts, avec features 30m/1h et score TP-prob comme feature/gate train-only, devrait apprendre la fraction exécutable du signal sans dépendre au remplissage TP intrabar. Si le signal était seulement un artefact de touch/fill, le modèle close-H dédié échouera en Validation.",
    "created_at": "2026-07-13T03:22:48+04:00",
    "expected_result": "Val capital_score modérément positif avec DD <20%, avg_trade_ret net >0.12%, au moins 120 trades Test; Test reporting-only >0 et Recent non catastrophique si le mécanisme directionnel survit.",
    "falsification": "Validation <=0, DD >25%, top_asset_share >85% sans amélioration, ou Test/recent reporting-only négatifs après sélection Validation.",
    "id": "ridge_closeh_dedicated_h10h20_executable_utility_135",
    "leakage_risks": "Score TP-prob utilisé uniquement s’il est recalculé avec modèles Train-only par fold; seuils/horizons/caps choisis sur Validation; Test et 2026 recent ne servent qu’au reporting; pas de promotion sur Test.",
    "level": "L2/L3 target/exécution close-H dédié; leaderboard séparé de TP-touch intrabar",
    "observation": "132 a montré que le candidat TP-only 125/128 perd son transfert sous fill adverse/latence (Test score≈-13.3 malgré Recent positif), 133 falsifie la robustesse multi-actifs non-XRP, et 134 ne transforme pas le pont close-H low-exposure en candidat robuste (Test capital_score≈-3.2, top_asset_share≈83%). Le signal TP-prob conserve toutefois une information directionnelle dans 129, mais il ne doit plus être utilisé comme simple filtre historique retuné.",
    "quick_protocol": "Créer un protocole séparé closeh_utility_135. Train/Val/Test chronologiques identiques; target y=ret close H10/H20 net coût c8/c12 après entrée next-open/delay1. Modèles Ridge/Huber/ElasticNet uniquement, scaler fit Train. Features pré-entry 1h+30m, score TP-prob gelé 121/125, vol/range/session. Sélection horizon/seuil/cap uniquement sur Validation par capital_score pénalisé DD/turnover/concentration. Test/recent reporting-only. Publier timeouts=horizon fixe, avg bars, avg/max exposure, DD, top asset share, monthly attribution, courbes Val/Test.",
    "status": "pending",
    "success_criteria": "Validation capital_score >100, DD Val/Test <20%, avg_trade_ret Test >0.10%, Test reporting-only >10, top_asset_share Test <75% ou attribution multi-mois claire; aucune sélection sur Test.",
    "title": "Modèle Ridge/Huber close-H dédié H10/H20 conditionné par le score TP-prob, sans TP intrabar",
    "why_now": "Les falsificateurs 132/133/134 ferment la voie promotionnelle TP-touch et le simple pont; le prochain test causal rapide est un target close-H explicitement entraîné, pas un nouveau seuil sur 125."
  },
  "protocol_id": "autonomous_ridge_lab_closeh_utility_135",
  "protocol_level": "L2/L3 target/exécution close-H dédié; leaderboard séparé de TP-touch intrabar",
  "created_at": "2026-07-12T23:34:09+00:00",
  "completed_at": "2026-07-12T23:35:11+00:00",
  "config": {
    "model": "manual Ridge linear regression, train-only standardization, target p1/p99 winsor on Train",
    "features": [
      "score",
      "prob_tp_trainonly",
      "range30",
      "vol_chg30",
      "ret30",
      "fold",
      "bars_held",
      "hl_pos30",
      "micro30_score",
      "agree30_1h"
    ],
    "target": "future close-to-close return H10/H20 after delay1 minus cost 8/12 bps",
    "alphas": [
      1,
      10,
      100
    ],
    "threshold_percentiles": [
      70,
      80,
      90
    ],
    "caps": [
      1,
      2,
      3,
      5
    ],
    "selection": "Validation-only capital/stability score; Test/recent reporting-only",
    "no_test_selection": true,
    "test_reporting_only": true,
    "limitations": "No order book; long-only candidates inherited from TP-prob family; TP hits are zero by construction (timeout close-H)."
  },
  "data": {
    "rows_1h": 26744,
    "rows_30m": 53500,
    "start": "2023-05-04 04:00:00+00:00",
    "end": "2026-05-22 11:00:00+00:00",
    "symbols": [
      "ADA",
      "BCH",
      "BNB",
      "BTC",
      "DOT",
      "ETH",
      "LINK",
      "SOL",
      "SUI",
      "XRP"
    ],
    "fold_count": 17,
    "n_train_records": 149112,
    "n_val_records": 74448,
    "n_test_records": 62046,
    "n_recent_records": 9725,
    "candidate_diag": {
      "train": {
        "signals": 3542,
        "vetoed_signals": 808,
        "missed_fills_asset_attempts": 8668
      },
      "val": {
        "signals": 1838,
        "vetoed_signals": 358,
        "missed_fills_asset_attempts": 4569
      },
      "test": {
        "signals": 779,
        "vetoed_signals": 199,
        "missed_fills_asset_attempts": 2202
      },
      "recent": {
        "signals": 33,
        "vetoed_signals": 9,
        "missed_fills_asset_attempts": 25
      }
    },
    "candidates_after_prob_model": {
      "train": 12794,
      "val": 6568,
      "test": 2679,
      "recent": 148
    }
  },
  "source_model_diagnostics": {
    "train_candidates": 12794,
    "train_tp_rate": 0.3728310145380647
  },
  "variants": [
    {
      "name": "ridge_a1_H10_c8_p70_cap1",
      "variant": {
        "name": "ridge_a1_H10_c8_p70_cap1",
        "threshold": 0.033558452906995294,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p70_cap1",
        "variant": "ridge_a1_H10_c8_p70_cap1",
        "gain_pct": 2152.6365009502983,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 2134.937145954982,
        "stability_score": 2109.1678247854247,
        "n_trades": 98,
        "skipped_by_capacity": 1873,
        "avg_trade_ret_pct": 3.332274529705452,
        "median_trade_ret_pct": 2.763282723610374,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.208096679761184,
        "month_gain_concentration": 0.18434233613539608,
        "top_asset_trade_share": 0.6020408163265306,
        "long_counts": {
          "SOL": 29,
          "XRP": 59,
          "ETH": 6,
          "BTC": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 98,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.721526552720235,
          "2024-10-31 00:00:00+00:00": 5.437229735871142,
          "2024-11-30 00:00:00+00:00": 127.16860234952654,
          "2024-12-31 00:00:00+00:00": 267.0507922787984,
          "2025-01-31 00:00:00+00:00": 155.6596927329249,
          "2025-02-28 00:00:00+00:00": 329.5789759977673,
          "2025-03-31 00:00:00+00:00": 233.11599801368334,
          "2025-04-30 00:00:00+00:00": 395.9657780281841,
          "2025-05-31 00:00:00+00:00": 48.102741127609534,
          "2025-07-31 00:00:00+00:00": -7.999192162591271,
          "2025-08-31 00:00:00+00:00": 99.94200808775622,
          "2025-10-31 00:00:00+00:00": -14.324507851494673,
          "2025-11-30 00:00:00+00:00": 179.9099772654081,
          "2026-01-31 00:00:00+00:00": -11.087861688744397,
          "2026-02-28 00:00:00+00:00": 264.3382153643213,
          "2026-03-31 00:00:00+00:00": -30.208096679761184
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p70_cap1",
        "variant": "ridge_a1_H10_c8_p70_cap1",
        "gain_pct": 201.03122659735197,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 183.33187160203573,
        "stability_score": 183.33187160203573,
        "n_trades": 54,
        "skipped_by_capacity": 648,
        "avg_trade_ret_pct": 2.1401534354116167,
        "median_trade_ret_pct": 2.334028709077204,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7137779695117388,
        "month_gain_concentration": 0.20046899964991385,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 27,
          "SOL": 17,
          "ETH": 6,
          "BTC": 1,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 54,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 29.389402873486546,
          "2025-02-28 00:00:00+00:00": 39.3098466811345,
          "2025-03-31 00:00:00+00:00": 25.865967818231383,
          "2025-04-30 00:00:00+00:00": 12.843093151578529,
          "2025-05-31 00:00:00+00:00": 4.306984870869627,
          "2025-07-31 00:00:00+00:00": 4.644124382298088,
          "2025-08-31 00:00:00+00:00": 3.796639130446124,
          "2025-10-31 00:00:00+00:00": 12.441756351418292,
          "2025-11-30 00:00:00+00:00": 19.28875778261755,
          "2025-12-31 00:00:00+00:00": 0.7137779695117388,
          "2026-01-31 00:00:00+00:00": 5.863880106996561,
          "2026-02-28 00:00:00+00:00": 31.029107433842057,
          "2026-03-31 00:00:00+00:00": 6.596065543876591
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.5135094824584314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.260873674421276,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 25.090494999873144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 25.762778803275765,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 29.389402873486546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 28.177441094249843,
            "drawdown_pct": -4.428462590347304,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 28.177441094249843,
            "drawdown_pct": -4.428462590347304,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 35.272445013085246,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 35.272445013085246,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 39.987443261035054,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 50.45879233540458,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 51.56444204413597,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 51.56444204413597,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 56.632228536174495,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 68.69924955462105,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 87.82837708368936,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 87.82837708368936,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 88.28480105997247,
            "drawdown_pct": -3.8456119713030423,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 88.28480105997247,
            "drawdown_pct": -3.8456119713030423,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 79.3483517543306,
            "drawdown_pct": -8.409330387744795,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 90.37907744084433,
            "drawdown_pct": -2.7760946091366367,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 90.37907744084433,
            "drawdown_pct": -2.7760946091366367,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 94.56521737285243,
            "drawdown_pct": -0.6382920828641003,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 94.56521737285243,
            "drawdown_pct": -0.6382920828641003,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 105.73390849887926,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 105.73390849887926,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 104.20557928055356,
            "drawdown_pct": -0.7428669534725874,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 101.253105199884,
            "drawdown_pct": -2.177960517879174,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 107.40831052443096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 111.71529539530059,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 110.72131135794177,
            "drawdown_pct": -0.469490896018121,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 116.35941977759867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 116.35941977759867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 121.92634767937795,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 120.1560589080448,
            "drawdown_pct": -0.7976920225311601,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 118.73413486949568,
            "drawdown_pct": -1.438410915721522,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 118.73413486949568,
            "drawdown_pct": -1.438410915721522,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 116.21046623317315,
            "drawdown_pct": -2.5755758637828197,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 116.21046623317315,
            "drawdown_pct": -2.5755758637828197,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 128.49525964152454,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 127.26470519426996,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 127.26470519426996,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 132.5978152594631,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 151.88657304208064,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 152.60035101159238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 158.46423111858894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 167.44654544580038,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 193.49679732362415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 193.49679732362415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 189.493338552431,
            "drawdown_pct": -1.3640553517791032,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 189.493338552431,
            "drawdown_pct": -1.3640553517791032,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 196.0894040963076,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p70_cap1",
        "variant": "ridge_a1_H10_c8_p70_cap1",
        "gain_pct": 19.301478456820178,
        "max_drawdown_pct": -1.364055351779092,
        "capital_score": 17.25539542915154,
        "stability_score": 0.02360736299066879,
        "n_trades": 6,
        "skipped_by_capacity": 51,
        "avg_trade_ret_pct": 3.0349286077355178,
        "median_trade_ret_pct": 2.511498871979464,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8492715226464349,
        "top_asset_trade_share": 0.8333333333333334,
        "long_counts": {
          "XRP": 5,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 6,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 14.728905977920888,
          "2026-03-31 00:00:00+00:00": 2.6140822009642335
        }
      },
      "selection_score": 2134.937145954982
    },
    {
      "name": "ridge_a1_H10_c8_p70_cap2",
      "variant": {
        "name": "ridge_a1_H10_c8_p70_cap2",
        "threshold": 0.033558452906995294,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p70_cap2",
        "variant": "ridge_a1_H10_c8_p70_cap2",
        "gain_pct": 2192.8121201541094,
        "max_drawdown_pct": -11.451495366599474,
        "capital_score": 2175.6348771042103,
        "stability_score": 2149.2484739799597,
        "n_trades": 188,
        "skipped_by_capacity": 1783,
        "avg_trade_ret_pct": 1.7054948693501295,
        "median_trade_ret_pct": 1.4564806098937189,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.854488230633706,
        "month_gain_concentration": 0.17560926953373907,
        "top_asset_trade_share": 0.601063829787234,
        "long_counts": {
          "SOL": 54,
          "XRP": 113,
          "BTC": 4,
          "ETH": 14,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 188,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.942084942084942,
        "max_open_trades": 2,
        "avg_exposure": 0.971042471042471,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 46.034968679605015,
          "2024-10-31 00:00:00+00:00": 5.171122962568944,
          "2024-11-30 00:00:00+00:00": 127.32515614649057,
          "2024-12-31 00:00:00+00:00": 266.9496997522311,
          "2025-01-31 00:00:00+00:00": 163.93300397148528,
          "2025-02-28 00:00:00+00:00": 338.3250739701341,
          "2025-03-31 00:00:00+00:00": 245.78281153172497,
          "2025-04-30 00:00:00+00:00": 385.0005130211441,
          "2025-05-31 00:00:00+00:00": 49.12003240680042,
          "2025-07-31 00:00:00+00:00": -4.0555618506582505,
          "2025-08-31 00:00:00+00:00": 103.07614200683338,
          "2025-10-31 00:00:00+00:00": -7.2855723655891325,
          "2025-11-30 00:00:00+00:00": 186.11367582389948,
          "2026-01-31 00:00:00+00:00": -11.321493390524893,
          "2026-02-28 00:00:00+00:00": 275.53790663180735,
          "2026-03-31 00:00:00+00:00": -30.854488230633706
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p70_cap2",
        "variant": "ridge_a1_H10_c8_p70_cap2",
        "gain_pct": 199.21305509848702,
        "max_drawdown_pct": -7.8485607421914345,
        "capital_score": 187.44021398519988,
        "stability_score": 187.44021398519988,
        "n_trades": 102,
        "skipped_by_capacity": 600,
        "avg_trade_ret_pct": 1.097484338236863,
        "median_trade_ret_pct": 1.167014354538602,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7091586366762215,
        "month_gain_concentration": 0.1956230964274636,
        "top_asset_trade_share": 0.4803921568627451,
        "long_counts": {
          "XRP": 49,
          "SOL": 32,
          "ETH": 13,
          "BNB": 6,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 102,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9024390243902438,
        "max_open_trades": 2,
        "avg_exposure": 0.9512195121951219,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.98752086600659,
          "2025-02-28 00:00:00+00:00": 38.0058356403223,
          "2025-03-31 00:00:00+00:00": 26.908060381037956,
          "2025-04-30 00:00:00+00:00": 13.579741154644381,
          "2025-05-31 00:00:00+00:00": 4.247370743156523,
          "2025-07-31 00:00:00+00:00": 4.594850830810202,
          "2025-08-31 00:00:00+00:00": 7.306160538964036,
          "2025-10-31 00:00:00+00:00": 13.705657409743026,
          "2025-11-30 00:00:00+00:00": 16.744085479201516,
          "2025-12-31 00:00:00+00:00": 0.7091586366762215,
          "2026-01-31 00:00:00+00:00": 5.855605344521393,
          "2026-02-28 00:00:00+00:00": 31.49007165647015,
          "2026-03-31 00:00:00+00:00": 6.146803839344159
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2567547412292157,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 8.733743148200091,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.880797632769543,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 23.211001658254432,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.98752086600659,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 25.452478971215328,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 25.452478971215328,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.41348109320225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 30.41348109320225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 34.6497418978542,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.1155395253993,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 45.1765212904553,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 45.1765212904553,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.12627433518304,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 62.993356506328894,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 81.90671213350555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 81.90671213350555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 82.5392358260251,
            "drawdown_pct": -3.808640142718478,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 82.5392358260251,
            "drawdown_pct": -3.808640142718478,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 74.8728090271967,
            "drawdown_pct": -7.8485607421914345,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 85.7936460402234,
            "drawdown_pct": -2.0936875046154046,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 85.7936460402234,
            "drawdown_pct": -2.0936875046154046,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 89.90141688736685,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 89.90141688736685,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 100.88366575565772,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 100.88366575565772,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 100.2757282732604,
            "drawdown_pct": -0.3026316152238917,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 97.39053991434176,
            "drawdown_pct": -1.7388799772126706,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 103.48115804201123,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 107.72852878516775,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 106.75440695098285,
            "drawdown_pct": -0.4689398417645041,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 112.32337961597796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 112.32337961597796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 121.39204497271987,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 119.62954015494199,
            "drawdown_pct": -0.7961012411241142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 118.21330720575406,
            "drawdown_pct": -1.4357958378122815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 118.21330720575406,
            "drawdown_pct": -1.4357958378122815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 115.70290961668036,
            "drawdown_pct": -2.569710829827032,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 115.70290961668036,
            "drawdown_pct": -2.569710829827032,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 128.13295612162094,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 126.90600700085827,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 126.90600700085827,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 133.33519756468502,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 150.07928304388653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 150.78844168056276,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 156.64404702508415,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 165.64059535372104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 192.10500502789978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 192.10500502789978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 188.1341186815543,
            "drawdown_pct": -1.3594037342722687,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 188.1341186815543,
            "drawdown_pct": -1.3594037342722687,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 194.28092252089846,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p70_cap2",
        "variant": "ridge_a1_H10_c8_p70_cap2",
        "gain_pct": 19.62869008732119,
        "max_drawdown_pct": -1.3594037342722909,
        "capital_score": 17.589584485912752,
        "stability_score": 4.455153817504029,
        "n_trades": 11,
        "skipped_by_capacity": 46,
        "avg_trade_ret_pct": 1.6563612066068303,
        "median_trade_ret_pct": 1.3722558108335237,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9217408630999854,
        "top_asset_trade_share": 0.6363636363636364,
        "long_counts": {
          "XRP": 7,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 11,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9230769230769231,
        "max_open_trades": 2,
        "avg_exposure": 0.9615384615384616,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.497546089767269,
          "2026-03-31 00:00:00+00:00": 1.3157977796215192
        }
      },
      "selection_score": 2175.6348771042103
    },
    {
      "name": "ridge_a1_H10_c8_p70_cap3",
      "variant": {
        "name": "ridge_a1_H10_c8_p70_cap3",
        "threshold": 0.033558452906995294,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p70_cap3",
        "variant": "ridge_a1_H10_c8_p70_cap3",
        "gain_pct": 1997.0267935948032,
        "max_drawdown_pct": -11.341555128305458,
        "capital_score": 1980.014460902345,
        "stability_score": 1955.994924896095,
        "n_trades": 271,
        "skipped_by_capacity": 1700,
        "avg_trade_ret_pct": 1.1405019280587003,
        "median_trade_ret_pct": 0.9684278940793202,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -28.25385334942348,
        "month_gain_concentration": 0.17540514733734666,
        "top_asset_trade_share": 0.6088560885608856,
        "long_counts": {
          "SOL": 79,
          "XRP": 165,
          "BTC": 6,
          "BNB": 5,
          "ETH": 16
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 271,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.833976833976834,
        "max_open_trades": 3,
        "avg_exposure": 0.9446589446589446,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.84519409712419,
          "2024-10-31 00:00:00+00:00": 4.878729819616808,
          "2024-11-30 00:00:00+00:00": 126.3692232705032,
          "2024-12-31 00:00:00+00:00": 233.35222148863227,
          "2025-01-31 00:00:00+00:00": 143.09511864771525,
          "2025-02-28 00:00:00+00:00": 310.6460105037331,
          "2025-03-31 00:00:00+00:00": 249.90169364689552,
          "2025-04-30 00:00:00+00:00": 350.49048816760137,
          "2025-05-31 00:00:00+00:00": 30.372517760452865,
          "2025-07-31 00:00:00+00:00": -2.4897903439648417,
          "2025-08-31 00:00:00+00:00": 95.46701284055825,
          "2025-10-31 00:00:00+00:00": -4.477520890222877,
          "2025-11-30 00:00:00+00:00": 172.54614100108233,
          "2026-01-31 00:00:00+00:00": -10.450061674036306,
          "2026-02-28 00:00:00+00:00": 239.212404045501,
          "2026-03-31 00:00:00+00:00": -28.25385334942348
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p70_cap3",
        "variant": "ridge_a1_H10_c8_p70_cap3",
        "gain_pct": 185.46174479138637,
        "max_drawdown_pct": -8.59213979749197,
        "capital_score": 172.5735350951484,
        "stability_score": 172.5735350951484,
        "n_trades": 145,
        "skipped_by_capacity": 557,
        "avg_trade_ret_pct": 0.7337046019160968,
        "median_trade_ret_pct": 0.7906934537382457,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.675598960638581,
        "month_gain_concentration": 0.1997341348279846,
        "top_asset_trade_share": 0.4413793103448276,
        "long_counts": {
          "XRP": 64,
          "SOL": 48,
          "ETH": 20,
          "BNB": 9,
          "BTC": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 145,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.731707317073171,
        "max_open_trades": 3,
        "avg_exposure": 0.9105691056910568,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 23.957698157855432,
          "2025-02-28 00:00:00+00:00": 35.83254413095345,
          "2025-03-31 00:00:00+00:00": 24.48421716284122,
          "2025-04-30 00:00:00+00:00": 13.511554074811414,
          "2025-05-31 00:00:00+00:00": 4.135665916026625,
          "2025-07-31 00:00:00+00:00": 2.975014452463995,
          "2025-08-31 00:00:00+00:00": 5.93350768441158,
          "2025-10-31 00:00:00+00:00": 12.3311749108953,
          "2025-11-30 00:00:00+00:00": 15.027069820961941,
          "2025-12-31 00:00:00+00:00": 0.675598960638581,
          "2026-01-31 00:00:00+00:00": 5.588022692061628,
          "2026-02-28 00:00:00+00:00": 28.003224777319446,
          "2026-03-31 00:00:00+00:00": 6.945910572420416
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8378364941528105,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 7.356137004907211,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.557961135915036,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.777518804278273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 23.957698157855432,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 26.48828501806223,
            "drawdown_pct": -2.4260102299107467,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 26.48828501806223,
            "drawdown_pct": -2.4260102299107467,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 31.804562372756465,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 31.804562372756465,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 36.21575666273225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.78582244364367,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 45.54653047393742,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 45.54653047393742,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.88900856341667,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 59.790242288808884,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 77.85177456575556,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 77.85177456575556,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 78.53229598273242,
            "drawdown_pct": -3.7965268358667426,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 78.53229598273242,
            "drawdown_pct": -3.7965268358667426,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 69.63270260502989,
            "drawdown_pct": -8.59213979749197,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 80.28122967955792,
            "drawdown_pct": -2.854100732834519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 80.28122967955792,
            "drawdown_pct": -2.854100732834519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 84.2744594516501,
            "drawdown_pct": -0.7023187759450877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 84.2744594516501,
            "drawdown_pct": -0.7023187759450877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 94.95794222937576,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 94.95794222937576,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 94.6542925896982,
            "drawdown_pct": -0.1557513565260682,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 91.85345623549901,
            "drawdown_pct": -1.5923875469634363,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 97.78601352646152,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 101.92167944248814,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 101.29017137355459,
            "drawdown_pct": -0.3127490176771386,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 104.89669389495214,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 104.89669389495214,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 112.52096066547585,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 110.83020157936372,
            "drawdown_pct": -0.7955728605864576,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 109.47144002968827,
            "drawdown_pct": -1.4349269955483468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 109.47144002968827,
            "drawdown_pct": -1.4349269955483468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 107.06392351122904,
            "drawdown_pct": -2.5677642041326054,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 107.06392351122904,
            "drawdown_pct": -2.5677642041326054,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 117.94038049085196,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 116.7687747676656,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 116.7687747676656,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 123.16137649025902,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 138.18844631122096,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 138.86404527185954,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 144.45206796392117,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 153.04621464089996,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 176.20578781981743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 176.20578781981743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 172.4552927412406,
            "drawdown_pct": -1.3578625951978451,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 172.4552927412406,
            "drawdown_pct": -1.3578625951978451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 179.40120331366103,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p70_cap3",
        "variant": "ridge_a1_H10_c8_p70_cap3",
        "gain_pct": 19.042935488050915,
        "max_drawdown_pct": 0.0,
        "capital_score": 19.042935488050915,
        "stability_score": 6.372377611456217,
        "n_trades": 15,
        "skipped_by_capacity": 42,
        "avg_trade_ret_pct": 1.1747994593074182,
        "median_trade_ret_pct": 0.9148372072223491,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.946822315063788,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 9,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 15,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6923076923076925,
        "max_open_trades": 3,
        "avg_exposure": 0.8974358974358974,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.637315242948375,
          "2026-03-31 00:00:00+00:00": 0.8782600600004997
        }
      },
      "selection_score": 1980.014460902345
    },
    {
      "name": "ridge_a1_H10_c8_p70_cap5",
      "variant": {
        "name": "ridge_a1_H10_c8_p70_cap5",
        "threshold": 0.033558452906995294,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p70_cap5",
        "variant": "ridge_a1_H10_c8_p70_cap5",
        "gain_pct": 1612.9457257138906,
        "max_drawdown_pct": -11.255639059853117,
        "capital_score": 1596.062267124111,
        "stability_score": 1592.415172551172,
        "n_trades": 416,
        "skipped_by_capacity": 1555,
        "avg_trade_ret_pct": 0.6892667155754105,
        "median_trade_ret_pct": 0.610006010400939,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -8.40670995755454,
        "month_gain_concentration": 0.16398528630435572,
        "top_asset_trade_share": 0.5913461538461539,
        "long_counts": {
          "SOL": 124,
          "XRP": 246,
          "BTC": 11,
          "BNB": 9,
          "ETH": 26
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 416,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.455598455598456,
        "max_open_trades": 5,
        "avg_exposure": 0.8911196911196911,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 28.600627611316014,
          "2024-10-31 00:00:00+00:00": 3.726471240639114,
          "2024-11-30 00:00:00+00:00": 112.9275197647047,
          "2024-12-31 00:00:00+00:00": 180.2318348823251,
          "2025-01-31 00:00:00+00:00": 113.36418002757182,
          "2025-02-28 00:00:00+00:00": 252.94477727654316,
          "2025-03-31 00:00:00+00:00": 210.2254847716797,
          "2025-04-30 00:00:00+00:00": 261.10727438062213,
          "2025-05-31 00:00:00+00:00": 14.721629251730747,
          "2025-07-31 00:00:00+00:00": -1.1998776944126348,
          "2025-08-31 00:00:00+00:00": 77.03401385245729,
          "2025-10-31 00:00:00+00:00": -2.159645752538836,
          "2025-11-30 00:00:00+00:00": 138.90343066614423,
          "2026-01-31 00:00:00+00:00": -8.40670995755454,
          "2026-02-28 00:00:00+00:00": 193.3038557652235,
          "2026-03-31 00:00:00+00:00": 5.169281089825745
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p70_cap5",
        "variant": "ridge_a1_H10_c8_p70_cap5",
        "gain_pct": 121.76513966020522,
        "max_drawdown_pct": -9.70871604216159,
        "capital_score": 107.20206559696284,
        "stability_score": 107.20206559696284,
        "n_trades": 214,
        "skipped_by_capacity": 488,
        "avg_trade_ret_pct": 0.37620473676422533,
        "median_trade_ret_pct": 0.47187316199899626,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.3145895807197405,
        "month_gain_concentration": 0.21061800654194368,
        "top_asset_trade_share": 0.4392523364485981,
        "long_counts": {
          "XRP": 94,
          "SOL": 63,
          "ETH": 33,
          "BTC": 9,
          "BNB": 15
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 214,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.105691056910569,
        "max_open_trades": 5,
        "avg_exposure": 0.8211382113821137,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 14.990041928918501,
          "2025-02-28 00:00:00+00:00": 18.016317293154444,
          "2025-03-31 00:00:00+00:00": 10.135082475149318,
          "2025-04-30 00:00:00+00:00": 10.257987159161985,
          "2025-05-31 00:00:00+00:00": 1.9192194010618948,
          "2025-07-31 00:00:00+00:00": 1.3720699928192062,
          "2025-08-31 00:00:00+00:00": 5.868474831816968,
          "2025-10-31 00:00:00+00:00": 10.985914648522026,
          "2025-11-30 00:00:00+00:00": 11.377007002360841,
          "2025-12-31 00:00:00+00:00": 0.3145895807197405,
          "2026-01-31 00:00:00+00:00": 3.252367273929792,
          "2026-02-28 00:00:00+00:00": 24.47643140460673,
          "2026-03-31 00:00:00+00:00": 3.2469320529860966
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.5027018964916863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.3701210435237385,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.6917730267866915,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 14.207891508771354,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 14.330650821031156,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 14.990041928918501,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 13.567511654113346,
            "drawdown_pct": -1.953531660720631,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 11.750910238800031,
            "drawdown_pct": -3.521861815686711,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 15.024023496066661,
            "drawdown_pct": -0.6960783616398403,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 15.024023496066661,
            "drawdown_pct": -0.6960783616398403,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 18.77951636689869,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 24.928290768045983,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 25.348000352137277,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 25.348000352137277,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 29.000431587951994,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 33.006359222072945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 41.94334082442569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 41.94334082442569,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 41.503057066393325,
            "drawdown_pct": -3.5982352919233573,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 41.503057066393325,
            "drawdown_pct": -3.5982352919233573,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 34.696891719434234,
            "drawdown_pct": -8.23507045255144,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 39.72896292333172,
            "drawdown_pct": -4.806872120660966,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 39.72896292333172,
            "drawdown_pct": -4.806872120660966,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 43.14144169722226,
            "drawdown_pct": -2.4820532605458134,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 43.14144169722226,
            "drawdown_pct": -2.4820532605458134,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.297604378147696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 51.297604378147696,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 51.23981104858615,
            "drawdown_pct": -0.0381984432596183,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 48.50088767363155,
            "drawdown_pct": -1.8484871032895756,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 53.39942885638425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 55.31864825744614,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 55.02710243449417,
            "drawdown_pct": -0.18770818972666525,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 56.69071825026535,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 56.69071825026535,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 63.33971525090311,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 62.55919308208232,
            "drawdown_pct": -0.4778520445084977,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 61.51197942701492,
            "drawdown_pct": -1.1189782111966085,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 61.51197942701492,
            "drawdown_pct": -1.1189782111966085,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 61.01689866771437,
            "drawdown_pct": -1.4220770371863978,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 61.01689866771437,
            "drawdown_pct": -1.4220770371863978,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 69.33110715817196,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 68.42114184922062,
            "drawdown_pct": -0.5373881528462188,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 68.42114184922062,
            "drawdown_pct": -0.5373881528462188,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 73.54510773060434,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 74.30662552730368,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 74.30662552730368,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 74.30662552730368,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 80.46777437160387,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 80.46777437160387,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 80.46777437160387,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 84.92211473296518,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 85.23670431368492,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 88.48907158761472,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 95.13125827615829,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 115.89439772388147,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 115.89439772388147,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 112.96550299222145,
            "drawdown_pct": -1.3566330402912663,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 112.96550299222145,
            "drawdown_pct": -1.3566330402912663,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 116.21243504520754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p70_cap5",
        "variant": "ridge_a1_H10_c8_p70_cap5",
        "gain_pct": 16.133581692551203,
        "max_drawdown_pct": 0.0,
        "capital_score": 16.133581692551203,
        "stability_score": 4.583673835064731,
        "n_trades": 21,
        "skipped_by_capacity": 36,
        "avg_trade_ret_pct": 0.7166926366956786,
        "median_trade_ret_pct": 0.5654076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9619963142994589,
        "top_asset_trade_share": 0.5238095238095238,
        "long_counts": {
          "XRP": 11,
          "ETH": 5,
          "BTC": 1,
          "SOL": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 21,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.076923076923077,
        "max_open_trades": 5,
        "avg_exposure": 0.8153846153846154,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 13.03927474485549,
          "2026-03-31 00:00:00+00:00": 0.5151168375601856
        }
      },
      "selection_score": 1596.062267124111
    },
    {
      "name": "ridge_a1_H10_c8_p80_cap1",
      "variant": {
        "name": "ridge_a1_H10_c8_p80_cap1",
        "threshold": 0.05217790571961471,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p80_cap1",
        "variant": "ridge_a1_H10_c8_p80_cap1",
        "gain_pct": 1392.8370454580627,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 1375.1376904627464,
        "stability_score": 1358.1005135478315,
        "n_trades": 83,
        "skipped_by_capacity": 1231,
        "avg_trade_ret_pct": 3.409028382528867,
        "median_trade_ret_pct": 3.125137365567101,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -20.019104625758246,
        "month_gain_concentration": 0.149445934224803,
        "top_asset_trade_share": 0.6506024096385542,
        "long_counts": {
          "SOL": 23,
          "ETH": 4,
          "XRP": 54,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 83,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 19.89753205190148,
          "2024-10-31 00:00:00+00:00": 9.012172622110754,
          "2024-11-30 00:00:00+00:00": 129.0117939483123,
          "2024-12-31 00:00:00+00:00": 181.06780099073808,
          "2025-01-31 00:00:00+00:00": 125.32094446775511,
          "2025-02-28 00:00:00+00:00": 205.16678358398394,
          "2025-03-31 00:00:00+00:00": 148.93698636936074,
          "2025-04-30 00:00:00+00:00": 72.48438522475408,
          "2025-05-31 00:00:00+00:00": 123.67371663530503,
          "2025-07-31 00:00:00+00:00": -5.2328146136799205,
          "2025-10-31 00:00:00+00:00": 65.37885199056313,
          "2025-11-30 00:00:00+00:00": 66.7459354646237,
          "2026-01-31 00:00:00+00:00": 50.973970576953434,
          "2026-02-28 00:00:00+00:00": 175.17867630203887,
          "2026-03-31 00:00:00+00:00": -20.019104625758246
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p80_cap1",
        "variant": "ridge_a1_H10_c8_p80_cap1",
        "gain_pct": 152.95156366730407,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 135.25220867198783,
        "stability_score": 133.89506581484497,
        "n_trades": 42,
        "skipped_by_capacity": 401,
        "avg_trade_ret_pct": 2.3307425669433135,
        "median_trade_ret_pct": 2.5716722576802433,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.440689418059975,
        "month_gain_concentration": 0.19603578407962213,
        "top_asset_trade_share": 0.5952380952380952,
        "long_counts": {
          "XRP": 25,
          "SOL": 12,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 42,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 25.090494999873144,
          "2025-02-28 00:00:00+00:00": 22.412267895699713,
          "2025-03-31 00:00:00+00:00": 20.37702038641163,
          "2025-04-30 00:00:00+00:00": 13.113379932709421,
          "2025-05-31 00:00:00+00:00": -1.3445383975666516,
          "2025-07-31 00:00:00+00:00": 3.9407193382120624,
          "2025-10-31 00:00:00+00:00": 14.351678073217784,
          "2025-11-30 00:00:00+00:00": 18.53765682100729,
          "2025-12-31 00:00:00+00:00": 0.6134416380692471,
          "2026-01-31 00:00:00+00:00": 5.039589861169645,
          "2026-02-28 00:00:00+00:00": 30.10801077719796,
          "2026-03-31 00:00:00+00:00": -3.440689418059975
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.5135094824584314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.260873674421276,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 25.090494999873144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 23.91880013523358,
            "drawdown_pct": -4.4284625903472925,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 23.91880013523358,
            "drawdown_pct": -4.4284625903472925,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.778075566784565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 39.75600984004589,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 40.78300991876944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 47.50276289557286,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 64.2283806429462,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 56.841362853900534,
            "drawdown_pct": -4.498015361368024,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 56.841362853900534,
            "drawdown_pct": -4.498015361368024,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 61.060521511230064,
            "drawdown_pct": -3.7557745049325852,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 54.749974486956944,
            "drawdown_pct": -7.526740258070419,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 64.26778996651515,
            "drawdown_pct": -1.8392212395058838,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 64.26778996651515,
            "drawdown_pct": -1.8392212395058838,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 67.87978328198449,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 67.87978328198449,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 80.99316321469391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 79.64862481712726,
            "drawdown_pct": -0.7428669534725763,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 78.80519087878909,
            "drawdown_pct": -1.2088701567746218,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 83.58934415533932,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 83.58934415533932,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 88.31309800667745,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 88.31309800667745,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 99.01279976211319,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 97.9410222285571,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 97.9410222285571,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 102.58600771831607,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 116.47867904956439,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 117.09212068763364,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 122.13171054880328,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 129.8513738753509,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 152.23972132600124,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 148.79903190794127,
            "drawdown_pct": -1.364055351779092,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p80_cap1",
        "variant": "ridge_a1_H10_c8_p80_cap1",
        "gain_pct": 16.643766426278845,
        "max_drawdown_pct": -1.364055351779092,
        "capital_score": 14.597683398610206,
        "stability_score": -5.402316601389794,
        "n_trades": 5,
        "skipped_by_capacity": 34,
        "avg_trade_ret_pct": 3.1862171048242445,
        "median_trade_ret_pct": 2.7445116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5866079932734323,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.31551397119432,
          "2026-03-31 00:00:00+00:00": -1.5866079932734323
        }
      },
      "selection_score": 1375.1376904627464
    },
    {
      "name": "ridge_a1_H10_c8_p80_cap2",
      "variant": {
        "name": "ridge_a1_H10_c8_p80_cap2",
        "threshold": 0.05217790571961471,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p80_cap2",
        "variant": "ridge_a1_H10_c8_p80_cap2",
        "gain_pct": 1271.2118653520174,
        "max_drawdown_pct": -11.451495366599463,
        "capital_score": 1254.0346223021181,
        "stability_score": 1238.7150665301551,
        "n_trades": 158,
        "skipped_by_capacity": 1156,
        "avg_trade_ret_pct": 1.6951269574166605,
        "median_trade_ret_pct": 1.530152873845307,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -18.452467164368045,
        "month_gain_concentration": 0.1450233667423962,
        "top_asset_trade_share": 0.6455696202531646,
        "long_counts": {
          "SOL": 43,
          "ETH": 10,
          "XRP": 102,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 158,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9414634146341463,
        "max_open_trades": 2,
        "avg_exposure": 0.9707317073170731,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.512387434175821,
          "2024-10-31 00:00:00+00:00": 8.57997406329524,
          "2024-11-30 00:00:00+00:00": 107.422773537248,
          "2024-12-31 00:00:00+00:00": 171.6855467737051,
          "2025-01-31 00:00:00+00:00": 122.34709854412199,
          "2025-02-28 00:00:00+00:00": 182.70015167268264,
          "2025-03-31 00:00:00+00:00": 142.43620341252608,
          "2025-04-30 00:00:00+00:00": 61.28800023211954,
          "2025-05-31 00:00:00+00:00": 115.0520543181351,
          "2025-07-31 00:00:00+00:00": -2.4038501725084416,
          "2025-10-31 00:00:00+00:00": 61.096245321573974,
          "2025-11-30 00:00:00+00:00": 62.392378150301965,
          "2026-01-31 00:00:00+00:00": 47.500302656309714,
          "2026-02-28 00:00:00+00:00": 164.7849135158947,
          "2026-03-31 00:00:00+00:00": -18.452467164368045
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p80_cap2",
        "variant": "ridge_a1_H10_c8_p80_cap2",
        "gain_pct": 149.66194121859476,
        "max_drawdown_pct": -8.38607464964145,
        "capital_score": 137.0828292441326,
        "stability_score": 137.0828292441326,
        "n_trades": 79,
        "skipped_by_capacity": 364,
        "avg_trade_ret_pct": 1.18591064690226,
        "median_trade_ret_pct": 1.2851722505389696,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.3839713935452096,
        "month_gain_concentration": 0.20203671735866013,
        "top_asset_trade_share": 0.5443037974683544,
        "long_counts": {
          "XRP": 43,
          "SOL": 23,
          "ETH": 10,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 79,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.903225806451613,
        "max_open_trades": 2,
        "avg_exposure": 0.9516129032258065,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 20.841284532687197,
          "2025-02-28 00:00:00+00:00": 21.16044502227892,
          "2025-03-31 00:00:00+00:00": 18.82719495230623,
          "2025-04-30 00:00:00+00:00": 12.705358639985008,
          "2025-05-31 00:00:00+00:00": -0.6445644212232651,
          "2025-07-31 00:00:00+00:00": 3.824233832361216,
          "2025-10-31 00:00:00+00:00": 17.117845423831938,
          "2025-11-30 00:00:00+00:00": 19.28463651800365,
          "2025-12-31 00:00:00+00:00": 0.6043417843490602,
          "2026-01-31 00:00:00+00:00": 4.990120403719743,
          "2026-02-28 00:00:00+00:00": 30.219668104999556,
          "2026-03-31 00:00:00+00:00": -3.3839713935452096
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2567547412292157,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.07068838930077,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 20.841284532687197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 21.290818488541433,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 21.290818488541433,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 26.087248282784472,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 34.46898408002781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 35.45894769217091,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 42.00172955496612,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 58.479267463960326,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 51.43100504568969,
            "drawdown_pct": -4.447435005890266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 51.43100504568969,
            "drawdown_pct": -4.447435005890266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 56.272374733279406,
            "drawdown_pct": -3.3313921014899717,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 48.10108456479162,
            "drawdown_pct": -8.38607464964145,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 57.35002277869677,
            "drawdown_pct": -2.6647692480723406,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 57.35002277869677,
            "drawdown_pct": -2.6647692480723406,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 60.82892450727235,
            "drawdown_pct": -0.5127536554821122,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 60.82892450727235,
            "drawdown_pct": -0.5127536554821122,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 73.53428314725736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 72.88971872603409,
            "drawdown_pct": -0.3714334767362937,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 72.07896995261314,
            "drawdown_pct": -0.8386315189427229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 76.7139525583953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 76.7139525583953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 84.26168330061384,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 84.26168330061384,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 94.879904893338,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 93.83179798222724,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 93.83179798222724,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 99.32385869506768,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 113.1164345002309,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 113.72077628457996,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 118.7108966882997,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 126.37771450411864,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 148.93056479329925,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 145.54659339975404,
            "drawdown_pct": -1.3594037342722909,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p80_cap2",
        "variant": "ridge_a1_H10_c8_p80_cap2",
        "gain_pct": 18.281179952075604,
        "max_drawdown_pct": -1.3594037342722909,
        "capital_score": 16.242074350667167,
        "stability_score": 2.2420743506671688,
        "n_trades": 10,
        "skipped_by_capacity": 29,
        "avg_trade_ret_pct": 1.7080730211529191,
        "median_trade_ret_pct": 1.467412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5917157985415287,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 17.089261888308798,
          "2026-03-31 00:00:00+00:00": -1.5917157985415287
        }
      },
      "selection_score": 1254.0346223021181
    },
    {
      "name": "ridge_a1_H10_c8_p80_cap3",
      "variant": {
        "name": "ridge_a1_H10_c8_p80_cap3",
        "threshold": 0.05217790571961471,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p80_cap3",
        "variant": "ridge_a1_H10_c8_p80_cap3",
        "gain_pct": 1166.7243335595517,
        "max_drawdown_pct": -11.341555128305469,
        "capital_score": 1149.7120008670936,
        "stability_score": 1135.4575546249878,
        "n_trades": 224,
        "skipped_by_capacity": 1090,
        "avg_trade_ret_pct": 1.1509834250083206,
        "median_trade_ret_pct": 1.0340214473882807,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -17.066946242105814,
        "month_gain_concentration": 0.1450814682474086,
        "top_asset_trade_share": 0.65625,
        "long_counts": {
          "SOL": 61,
          "ETH": 12,
          "XRP": 147,
          "BTC": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 224,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8146341463414632,
        "max_open_trades": 3,
        "avg_exposure": 0.938211382113821,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 14.300952956685379,
          "2024-10-31 00:00:00+00:00": 6.14679275199417,
          "2024-11-30 00:00:00+00:00": 105.0607974801863,
          "2024-12-31 00:00:00+00:00": 157.75128750691616,
          "2025-01-31 00:00:00+00:00": 104.03314380405817,
          "2025-02-28 00:00:00+00:00": 168.06099256911818,
          "2025-03-31 00:00:00+00:00": 136.82542407483925,
          "2025-04-30 00:00:00+00:00": 52.88274307338497,
          "2025-05-31 00:00:00+00:00": 108.69517905091845,
          "2025-07-31 00:00:00+00:00": -1.492601251966903,
          "2025-10-31 00:00:00+00:00": 57.23139831140861,
          "2025-11-30 00:00:00+00:00": 58.451435036944304,
          "2026-01-31 00:00:00+00:00": 44.452341931195406,
          "2026-02-28 00:00:00+00:00": 144.49799784115953,
          "2026-03-31 00:00:00+00:00": -17.066946242105814
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p80_cap3",
        "variant": "ridge_a1_H10_c8_p80_cap3",
        "gain_pct": 137.97699177231064,
        "max_drawdown_pct": -8.319235081150001,
        "capital_score": 125.49813915058564,
        "stability_score": 125.49813915058564,
        "n_trades": 111,
        "skipped_by_capacity": 332,
        "avg_trade_ret_pct": 0.7932711904517822,
        "median_trade_ret_pct": 0.8576666714275158,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.206333389067339,
        "month_gain_concentration": 0.19880608442752676,
        "top_asset_trade_share": 0.5225225225225225,
        "long_counts": {
          "XRP": 58,
          "SOL": 33,
          "ETH": 14,
          "BNB": 5,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 111,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7204301075268815,
        "max_open_trades": 3,
        "avg_exposure": 0.906810035842294,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 16.30377689766749,
          "2025-02-28 00:00:00+00:00": 21.62810707221763,
          "2025-03-31 00:00:00+00:00": 18.08907262997704,
          "2025-04-30 00:00:00+00:00": 12.372709202465956,
          "2025-05-31 00:00:00+00:00": -0.41698029832883776,
          "2025-07-31 00:00:00+00:00": 2.4748856508680603,
          "2025-10-31 00:00:00+00:00": 14.62869364953744,
          "2025-11-30 00:00:00+00:00": 18.549270042912212,
          "2025-12-31 00:00:00+00:00": 0.5775758825783157,
          "2026-01-31 00:00:00+00:00": 4.777252965553089,
          "2026-02-28 00:00:00+00:00": 27.14655267317039,
          "2026-03-31 00:00:00+00:00": -3.206333389067339
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8378364941528105,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.033848159998328,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 16.30377689766749,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 18.678109544881224,
            "drawdown_pct": -2.4260102299107578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 18.678109544881224,
            "drawdown_pct": -2.4260102299107578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 23.66612678443252,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 32.65504895655448,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 33.30572390701931,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 37.93188396988512,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 53.52270565372348,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 46.72024975668822,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 46.72024975668822,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 52.24427777576199,
            "drawdown_pct": -2.8166569164233435,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 43.624117036147965,
            "drawdown_pct": -8.319235081150001,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 52.63998057736384,
            "drawdown_pct": -2.564064689713541,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 52.63998057736384,
            "drawdown_pct": -2.564064689713541,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 56.02095659986216,
            "drawdown_pct": -0.4058584336087856,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 56.02095659986216,
            "drawdown_pct": -0.4058584336087856,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 68.39366580232812,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 67.97668550399928,
            "drawdown_pct": -0.24762231782418098,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 67.45134007015889,
            "drawdown_pct": -0.5595968991347844,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 70.45157115486734,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 70.45157115486734,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 76.79412468872712,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 76.79412468872712,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 86.0805984443679,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 85.08026480440478,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 85.08026480440478,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 90.53835913037389,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 103.62953484731699,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 104.2071107298953,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 108.9843636954484,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 116.33158022649792,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 136.13091636861878,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 132.92458297955145,
            "drawdown_pct": -1.357862595197823,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p80_cap3",
        "variant": "ridge_a1_H10_c8_p80_cap3",
        "gain_pct": 18.145624931994078,
        "max_drawdown_pct": 0.0,
        "capital_score": 18.145624931994078,
        "stability_score": 5.0517341849326645,
        "n_trades": 14,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 1.204464036822427,
        "median_trade_ret_pct": 0.9285916847808965,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9980413441681709,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8181818181818183,
        "max_open_trades": 3,
        "avg_exposure": 0.9393939393939393,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.606687124253625,
          "2026-03-31 00:00:00+00:00": 0.03062811869475013
        }
      },
      "selection_score": 1149.7120008670936
    },
    {
      "name": "ridge_a1_H10_c8_p80_cap5",
      "variant": {
        "name": "ridge_a1_H10_c8_p80_cap5",
        "threshold": 0.05217790571961471,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p80_cap5",
        "variant": "ridge_a1_H10_c8_p80_cap5",
        "gain_pct": 1052.1612498604636,
        "max_drawdown_pct": -11.255639059853117,
        "capital_score": 1035.277791270684,
        "stability_score": 1032.8628352589537,
        "n_trades": 341,
        "skipped_by_capacity": 973,
        "avg_trade_ret_pct": 0.7234258454194521,
        "median_trade_ret_pct": 0.657108586076312,
        "positive_month_rate": 0.875,
        "worst_month_pct": -0.8092410693016063,
        "month_gain_concentration": 0.14340841707742819,
        "top_asset_trade_share": 0.6304985337243402,
        "long_counts": {
          "SOL": 103,
          "BNB": 1,
          "ETH": 17,
          "XRP": 215,
          "BTC": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 341,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.443902439024391,
        "max_open_trades": 5,
        "avg_exposure": 0.888780487804878,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 15.166806845111353,
          "2024-10-31 00:00:00+00:00": 3.9159586908690187,
          "2024-11-30 00:00:00+00:00": 98.75019803363153,
          "2024-12-31 00:00:00+00:00": 139.54228585625245,
          "2025-01-31 00:00:00+00:00": 88.31279328088124,
          "2025-02-28 00:00:00+00:00": 147.8745733550212,
          "2025-03-31 00:00:00+00:00": 124.16369552137121,
          "2025-04-30 00:00:00+00:00": 44.742408023881694,
          "2025-05-31 00:00:00+00:00": 99.35956733632304,
          "2025-07-31 00:00:00+00:00": -0.8092410693016063,
          "2025-10-31 00:00:00+00:00": 51.95453506040087,
          "2025-11-30 00:00:00+00:00": 53.06639181115327,
          "2026-01-31 00:00:00+00:00": 30.796736052951474,
          "2026-02-28 00:00:00+00:00": 130.02000513967653,
          "2026-03-31 00:00:00+00:00": 3.4769609287250205
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p80_cap5",
        "variant": "ridge_a1_H10_c8_p80_cap5",
        "gain_pct": 97.87004706134596,
        "max_drawdown_pct": -9.70871604216159,
        "capital_score": 83.30697299810357,
        "stability_score": 83.30697299810357,
        "n_trades": 165,
        "skipped_by_capacity": 278,
        "avg_trade_ret_pct": 0.41847420513694833,
        "median_trade_ret_pct": 0.5212891053213391,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.6531508856762116,
        "month_gain_concentration": 0.2585091334606049,
        "top_asset_trade_share": 0.49696969696969695,
        "long_counts": {
          "XRP": 82,
          "SOL": 48,
          "ETH": 22,
          "BTC": 4,
          "BNB": 9
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 165,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.096774193548387,
        "max_open_trades": 5,
        "avg_exposure": 0.8193548387096776,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 11.01763104415312,
          "2025-02-28 00:00:00+00:00": 10.195413863452728,
          "2025-03-31 00:00:00+00:00": 8.52994556562308,
          "2025-04-30 00:00:00+00:00": 10.469005886264796,
          "2025-05-31 00:00:00+00:00": -0.20831771715177183,
          "2025-07-31 00:00:00+00:00": 1.23677902495686,
          "2025-10-31 00:00:00+00:00": 12.763821719108336,
          "2025-11-30 00:00:00+00:00": 13.928433331108721,
          "2025-12-31 00:00:00+00:00": -0.09448916311325206,
          "2026-01-31 00:00:00+00:00": 2.9468865127207664,
          "2026-02-28 00:00:00+00:00": 24.78368465326534,
          "2026-03-31 00:00:00+00:00": -2.6531508856762116
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.5027018964916863,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.413935728221958,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 11.01763104415312,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 9.644243065956914,
            "drawdown_pct": -1.95353166072062,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 7.890397408572028,
            "drawdown_pct": -3.5218618156866888,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.05043869445636,
            "drawdown_pct": -0.6960783616398292,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 18.220983207605116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 18.568738355386316,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 21.21304490760585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 29.357608510732092,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 22.89586479300094,
            "drawdown_pct": -4.99525601325187,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 22.89586479300094,
            "drawdown_pct": -4.99525601325187,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 26.658032874268002,
            "drawdown_pct": -2.0869090481369867,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 26.658032874268002,
            "drawdown_pct": -2.0869090481369867,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 26.658032874268002,
            "drawdown_pct": -2.0869090481369867,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 26.658032874268002,
            "drawdown_pct": -2.0869090481369867,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 26.658032874268002,
            "drawdown_pct": -2.0869090481369867,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 31.469600773909548,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 31.469600773909548,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 31.469600773909548,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 28.00906577719502,
            "drawdown_pct": -2.6321940405567013,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 28.783182158044866,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 28.783182158044866,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 28.783182158044866,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 21.3293793068532,
            "drawdown_pct": -7.712978062886688,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 25.86206055883406,
            "drawdown_pct": -4.265275152633096,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 25.86206055883406,
            "drawdown_pct": -4.265275152633096,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 29.74299047322893,
            "drawdown_pct": -1.3133152382883595,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 29.74299047322893,
            "drawdown_pct": -1.3133152382883595,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 32.03599373128574,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 32.03599373128574,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 32.03599373128574,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 32.03599373128574,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 40.211996359493725,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 40.00367864234195,
            "drawdown_pct": -0.14857339069451747,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 39.74088027161167,
            "drawdown_pct": -0.3360026959990936,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 41.24045766729881,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 41.24045766729881,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 47.233839980465774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 47.233839980465774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 54.8363515961843,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 54.00427938640715,
            "drawdown_pct": -0.5373881528461855,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 54.00427938640715,
            "drawdown_pct": -0.5373881528461855,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 58.68963340134124,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 65.43450816416322,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 65.43450816416322,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 65.43450816416322,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 67.93271271751587,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 67.83822355440262,
            "drawdown_pct": -0.05626608513863429,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 70.78511006712338,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 76.80342494943741,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 78.2105934521339,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 78.2105934521339,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 78.2105934521339,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 78.2105934521339,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 78.2105934521339,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 78.2105934521339,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 78.2105934521339,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 95.56879472038872,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 92.91564383471251,
            "drawdown_pct": -1.3566330402912774,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p80_cap5",
        "variant": "ridge_a1_H10_c8_p80_cap5",
        "gain_pct": 16.875738773619887,
        "max_drawdown_pct": 0.0,
        "capital_score": 16.875738773619887,
        "stability_score": 5.838965151935264,
        "n_trades": 19,
        "skipped_by_capacity": 20,
        "avg_trade_ret_pct": 0.8266831845841457,
        "median_trade_ret_pct": 0.5654076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9067341027621217,
        "top_asset_trade_share": 0.5789473684210527,
        "long_counts": {
          "XRP": 11,
          "ETH": 4,
          "BTC": 1,
          "SOL": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 19,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.090909090909091,
        "max_open_trades": 5,
        "avg_exposure": 0.8181818181818182,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 13.595886715439917,
          "2026-03-31 00:00:00+00:00": 1.3984613233331942
        }
      },
      "selection_score": 1035.277791270684
    },
    {
      "name": "ridge_a1_H10_c8_p90_cap1",
      "variant": {
        "name": "ridge_a1_H10_c8_p90_cap1",
        "threshold": 0.06568395684989363,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p90_cap1",
        "variant": "ridge_a1_H10_c8_p90_cap1",
        "gain_pct": 681.1391734601186,
        "max_drawdown_pct": -11.79956999687749,
        "capital_score": 663.4398184648024,
        "stability_score": 658.9398184648024,
        "n_trades": 60,
        "skipped_by_capacity": 597,
        "avg_trade_ret_pct": 3.600870302371014,
        "median_trade_ret_pct": 3.3855499917021104,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14215155905727123,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "SOL": 14,
          "ETH": 3,
          "XRP": 42,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 60,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 5.152240821192876,
          "2024-10-31 00:00:00+00:00": 7.122175198274405,
          "2024-11-30 00:00:00+00:00": 82.39365558896344,
          "2024-12-31 00:00:00+00:00": 94.4646902739789,
          "2025-01-31 00:00:00+00:00": 93.80694056549078,
          "2025-02-28 00:00:00+00:00": 86.08680497139903,
          "2025-03-31 00:00:00+00:00": 75.24899540988423,
          "2025-04-30 00:00:00+00:00": 35.391113380748834,
          "2025-07-31 00:00:00+00:00": 40.099018626579436,
          "2025-10-31 00:00:00+00:00": 36.525854318909296,
          "2025-11-30 00:00:00+00:00": 37.28961645750633,
          "2026-02-28 00:00:00+00:00": 98.36059094201892
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p90_cap1",
        "variant": "ridge_a1_H10_c8_p90_cap1",
        "gain_pct": 123.81730535885652,
        "max_drawdown_pct": -10.747643605950541,
        "capital_score": 107.6958399499307,
        "stability_score": 107.64411581199967,
        "n_trades": 29,
        "skipped_by_capacity": 170,
        "avg_trade_ret_pct": 2.9178695229843847,
        "median_trade_ret_pct": 3.230925877556148,
        "positive_month_rate": 1.0,
        "worst_month_pct": 3.1999102721526924,
        "month_gain_concentration": 0.2087928539404254,
        "top_asset_trade_share": 0.5517241379310345,
        "long_counts": {
          "XRP": 16,
          "SOL": 11,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 29,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 17.68554093536818,
          "2025-02-28 00:00:00+00:00": 26.34661690205536,
          "2025-03-31 00:00:00+00:00": 16.948306144323737,
          "2025-04-30 00:00:00+00:00": 3.1999102721526924,
          "2025-07-31 00:00:00+00:00": 16.05406975124214,
          "2025-10-31 00:00:00+00:00": 14.089416409040382,
          "2025-11-30 00:00:00+00:00": 6.0902305147906475,
          "2026-02-28 00:00:00+00:00": 26.498426771432435
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 9.508370400323443,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 17.68554093536818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.749724577887463,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.710373246416395,
            "drawdown_pct": -2.324556584178905,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.77952356587855,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.03215783742354,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 50.90699679662674,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 66.2591937137106,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 63.99764196384518,
            "drawdown_pct": -1.3602566566993546,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 63.99764196384518,
            "drawdown_pct": -1.3602566566993546,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 48.39024811123406,
            "drawdown_pct": -10.747643605950541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 57.516911977712596,
            "drawdown_pct": -5.258224547300372,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 57.516911977712596,
            "drawdown_pct": -5.258224547300372,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 60.98046398174728,
            "drawdown_pct": -3.1750001994193533,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 75.53771604524033,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 80.23444400514211,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 84.87187627513651,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 95.37605235237166,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 94.32386041418249,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 100.41409092897314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 106.88932165506625,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 126.91251770040557,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p90_cap1",
        "variant": "ridge_a1_H10_c8_p90_cap1",
        "gain_pct": 7.8528639762707115,
        "max_drawdown_pct": 0.0,
        "capital_score": 7.8528639762707115,
        "stability_score": -18.14713602372929,
        "n_trades": 2,
        "skipped_by_capacity": 8,
        "avg_trade_ret_pct": 3.9901632586229057,
        "median_trade_ret_pct": 3.9901632586229057,
        "positive_month_rate": 1.0,
        "worst_month_pct": 9.344381869024915,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 9.344381869024915
        }
      },
      "selection_score": 563.4398184648024
    },
    {
      "name": "ridge_a1_H10_c8_p90_cap2",
      "variant": {
        "name": "ridge_a1_H10_c8_p90_cap2",
        "threshold": 0.06568395684989363,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p90_cap2",
        "variant": "ridge_a1_H10_c8_p90_cap2",
        "gain_pct": 716.3366017267824,
        "max_drawdown_pct": -11.451495366599474,
        "capital_score": 699.1593586768832,
        "stability_score": 694.7110828148143,
        "n_trades": 116,
        "skipped_by_capacity": 541,
        "avg_trade_ret_pct": 1.8546816813194398,
        "median_trade_ret_pct": 1.7283063142351962,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.1444756946872382,
        "top_asset_trade_share": 0.6982758620689655,
        "long_counts": {
          "SOL": 26,
          "ETH": 7,
          "XRP": 81,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 116,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9318181818181819,
        "max_open_trades": 2,
        "avg_exposure": 0.9659090909090909,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 1.4938014052498119,
          "2024-10-31 00:00:00+00:00": 6.962081607370493,
          "2024-11-30 00:00:00+00:00": 85.3367659222774,
          "2024-12-31 00:00:00+00:00": 105.11861534566609,
          "2025-01-31 00:00:00+00:00": 101.72573746585414,
          "2025-02-28 00:00:00+00:00": 94.4646204184279,
          "2025-03-31 00:00:00+00:00": 82.9823960384607,
          "2025-04-30 00:00:00+00:00": 24.590063077130367,
          "2025-07-31 00:00:00+00:00": 42.41158001895428,
          "2025-10-31 00:00:00+00:00": 38.578237218040385,
          "2025-11-30 00:00:00+00:00": 39.39665935625146,
          "2026-02-28 00:00:00+00:00": 104.52629037250438
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p90_cap2",
        "variant": "ridge_a1_H10_c8_p90_cap2",
        "gain_pct": 89.25122117868563,
        "max_drawdown_pct": -11.138267371858069,
        "capital_score": 72.54382012089852,
        "stability_score": 71.64382012089852,
        "n_trades": 50,
        "skipped_by_capacity": 149,
        "avg_trade_ret_pct": 1.3095123882508533,
        "median_trade_ret_pct": 1.5670310639696772,
        "positive_month_rate": 1.0,
        "worst_month_pct": 1.3419596690797277,
        "month_gain_concentration": 0.2422704410080809,
        "top_asset_trade_share": 0.58,
        "long_counts": {
          "XRP": 29,
          "SOL": 16,
          "ETH": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 50,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.7924528301886793,
        "max_open_trades": 2,
        "avg_exposure": 0.8962264150943396,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 8.458903338007389,
          "2025-02-28 00:00:00+00:00": 17.772885982829237,
          "2025-03-31 00:00:00+00:00": 8.79030305047202,
          "2025-04-30 00:00:00+00:00": 1.3419596690797277,
          "2025-07-31 00:00:00+00:00": 13.52772728350405,
          "2025-10-31 00:00:00+00:00": 14.51964755257029,
          "2025-11-30 00:00:00+00:00": 5.193128909391618,
          "2026-02-28 00:00:00+00:00": 22.254808759005186
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.754185200161714,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 8.458903338007389,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 16.530237897728682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 15.175832238923192,
            "drawdown_pct": -1.162278292089447,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 18.363495271177896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 26.231789320836626,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 29.244391631816256,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 42.72719624127592,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 40.8971085820867,
            "drawdown_pct": -1.2822277094937884,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 40.8971085820867,
            "drawdown_pct": -1.2822277094937884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.829859511566042,
            "drawdown_pct": -11.138267371858069,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 30.730161285868178,
            "drawdown_pct": -8.405570396777872,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 30.730161285868178,
            "drawdown_pct": -8.405570396777872,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 35.022092371308645,
            "drawdown_pct": -5.398483311437041,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 45.960308266526994,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 49.89177932389242,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 56.29389287763078,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 65.30044898000114,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 64.41142687646271,
            "drawdown_pct": -0.5378219533124118,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.60455578585433,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 74.58038962668627,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 91.85936454485952,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p90_cap2",
        "variant": "ridge_a1_H10_c8_p90_cap2",
        "gain_pct": 8.868665927877103,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.868665927877103,
        "stability_score": -17.131334072122897,
        "n_trades": 4,
        "skipped_by_capacity": 6,
        "avg_trade_ret_pct": 2.1876712367817226,
        "median_trade_ret_pct": 1.9950816293114528,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.369026596915546,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.75,
        "max_open_trades": 2,
        "avg_exposure": 0.875,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.369026596915546
        }
      },
      "selection_score": 699.1593586768832
    },
    {
      "name": "ridge_a1_H10_c8_p90_cap3",
      "variant": {
        "name": "ridge_a1_H10_c8_p90_cap3",
        "threshold": 0.06568395684989363,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p90_cap3",
        "variant": "ridge_a1_H10_c8_p90_cap3",
        "gain_pct": 733.074837033812,
        "max_drawdown_pct": -11.341555128305458,
        "capital_score": 716.0625043413538,
        "stability_score": 711.5986489196671,
        "n_trades": 166,
        "skipped_by_capacity": 491,
        "avg_trade_ret_pct": 1.2979606253951603,
        "median_trade_ret_pct": 1.2178607810500737,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14937627198091663,
        "top_asset_trade_share": 0.6987951807228916,
        "long_counts": {
          "SOL": 38,
          "ETH": 9,
          "XRP": 116,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 166,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.787878787878788,
        "max_open_trades": 3,
        "avg_exposure": 0.9292929292929293,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 4.462028732940723,
          "2024-10-31 00:00:00+00:00": 7.415193021830788,
          "2024-11-30 00:00:00+00:00": 90.06508505286209,
          "2024-12-31 00:00:00+00:00": 111.21699263394203,
          "2025-01-31 00:00:00+00:00": 102.30240029958213,
          "2025-02-28 00:00:00+00:00": 99.482574708568,
          "2025-03-31 00:00:00+00:00": 84.01165777124561,
          "2025-04-30 00:00:00+00:00": 16.91113626545325,
          "2025-07-31 00:00:00+00:00": 43.59314539823481,
          "2025-10-31 00:00:00+00:00": 39.6337590746723,
          "2025-11-30 00:00:00+00:00": 40.478656160342325,
          "2026-02-28 00:00:00+00:00": 104.96993549962781
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p90_cap3",
        "variant": "ridge_a1_H10_c8_p90_cap3",
        "gain_pct": 61.21478049701952,
        "max_drawdown_pct": -11.264725152320809,
        "capital_score": 44.31769276853831,
        "stability_score": 42.72945747442066,
        "n_trades": 68,
        "skipped_by_capacity": 131,
        "avg_trade_ret_pct": 0.7203664945903153,
        "median_trade_ret_pct": 1.0155979957741985,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.802270727586972,
        "month_gain_concentration": 0.2712965517974652,
        "top_asset_trade_share": 0.6029411764705882,
        "long_counts": {
          "XRP": 41,
          "SOL": 19,
          "ETH": 4,
          "BNB": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 68,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.452830188679245,
        "max_open_trades": 3,
        "avg_exposure": 0.8176100628930818,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.1710473516892392,
          "2025-02-28 00:00:00+00:00": 13.37092966308147,
          "2025-03-31 00:00:00+00:00": 4.539462446070161,
          "2025-04-30 00:00:00+00:00": 0.802270727586972,
          "2025-07-31 00:00:00+00:00": 8.649430218098217,
          "2025-10-31 00:00:00+00:00": 11.202767502707133,
          "2025-11-30 00:00:00+00:00": 4.488658978776584,
          "2026-02-28 00:00:00+00:00": 17.209422620383748
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.1694568001078096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.1710473516892392,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 6.421582129373263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 5.596972164581359,
            "drawdown_pct": -0.7748521947263054,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.545341354793635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.54197701477071,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 18.396209513941884,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 30.854058738440926,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 29.209962931927606,
            "drawdown_pct": -1.2564347047114843,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 29.209962931927606,
            "drawdown_pct": -1.2564347047114843,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 16.11370867089913,
            "drawdown_pct": -11.264725152320809,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 18.494212787169474,
            "drawdown_pct": -9.445519741941721,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 18.494212787169474,
            "drawdown_pct": -9.445519741941721,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 21.08143946084087,
            "drawdown_pct": -7.46833485473627,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 28.235540080645507,
            "drawdown_pct": -2.00109853912096,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 30.53314040652606,
            "drawdown_pct": -0.24524904692206917,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 35.39031728886181,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 42.50197119978532,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 41.73590790923319,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 46.224566888009775,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 49.077699994029786,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 63.43398950839352,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p90_cap3",
        "variant": "ridge_a1_H10_c8_p90_cap3",
        "gain_pct": 10.762646758545287,
        "max_drawdown_pct": 0.0,
        "capital_score": 10.762646758545287,
        "stability_score": -10.237353241454713,
        "n_trades": 6,
        "skipped_by_capacity": 4,
        "avg_trade_ret_pct": 1.7340837283366206,
        "median_trade_ret_pct": 2.028570059340539,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.733309762224167,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8333333333333334,
        "long_counts": {
          "XRP": 5,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 6,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5,
        "max_open_trades": 3,
        "avg_exposure": 0.8333333333333333,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.733309762224167
        }
      },
      "selection_score": 716.0625043413538
    },
    {
      "name": "ridge_a1_H10_c8_p90_cap5",
      "variant": {
        "name": "ridge_a1_H10_c8_p90_cap5",
        "threshold": 0.06568395684989363,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a1_H10_c8_p90_cap5",
        "variant": "ridge_a1_H10_c8_p90_cap5",
        "gain_pct": 769.2526733896094,
        "max_drawdown_pct": -8.235321226960169,
        "capital_score": 756.8996915491691,
        "stability_score": 753.0090665491691,
        "n_trades": 256,
        "skipped_by_capacity": 401,
        "avg_trade_ret_pct": 0.8527291623944638,
        "median_trade_ret_pct": 0.7435086517906879,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.16251386988968125,
        "top_asset_trade_share": 0.6796875,
        "long_counts": {
          "SOL": 65,
          "BNB": 1,
          "ETH": 13,
          "XRP": 174,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 256,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.356060606060606,
        "max_open_trades": 5,
        "avg_exposure": 0.8712121212121212,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 6.752530083642981,
          "2024-10-31 00:00:00+00:00": 8.444340654917184,
          "2024-11-30 00:00:00+00:00": 90.21323227279254,
          "2024-12-31 00:00:00+00:00": 115.32104888077373,
          "2025-01-31 00:00:00+00:00": 101.3196604270284,
          "2025-02-28 00:00:00+00:00": 124.57968902428411,
          "2025-03-31 00:00:00+00:00": 76.83127393001416,
          "2025-04-30 00:00:00+00:00": 10.524881932814765,
          "2025-07-31 00:00:00+00:00": 46.69309098671556,
          "2025-10-31 00:00:00+00:00": 41.07272656959401,
          "2025-11-30 00:00:00+00:00": 41.95170639792116,
          "2026-02-28 00:00:00+00:00": 102.87462905952827
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c8_p90_cap5",
        "variant": "ridge_a1_H10_c8_p90_cap5",
        "gain_pct": 55.39808148895696,
        "max_drawdown_pct": -8.721654370524568,
        "capital_score": 42.315599933170105,
        "stability_score": 41.315599933170105,
        "n_trades": 96,
        "skipped_by_capacity": 103,
        "avg_trade_ret_pct": 0.46634096877732945,
        "median_trade_ret_pct": 0.6268124255878709,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4709859261489129,
        "month_gain_concentration": 0.2991858435003523,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 56,
          "SOL": 25,
          "ETH": 7,
          "BTC": 1,
          "BNB": 7
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 96,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.5849056603773586,
        "max_open_trades": 5,
        "avg_exposure": 0.7169811320754715,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4728320514690836,
          "2025-02-28 00:00:00+00:00": 15.344185464069284,
          "2025-03-31 00:00:00+00:00": 1.654324603247204,
          "2025-04-30 00:00:00+00:00": 0.4709859261489129,
          "2025-07-31 00:00:00+00:00": 5.790864127334501,
          "2025-10-31 00:00:00+00:00": 11.27206930391256,
          "2025-11-30 00:00:00+00:00": 4.316261010413484,
          "2026-02-28 00:00:00+00:00": 17.213734346669725
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.9016740800646943,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4728320514690836,
            "drawdown_pct": -0.4208390416222896,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.0415804674099007,
            "drawdown_pct": -5.142030676019305,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.0415804674099007,
            "drawdown_pct": -5.142030676019305,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 4.2696703737683634,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 6.529051482947324,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.708391671499797,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.817017515538367,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 17.932182621958887,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 25.278186979053984,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 26.55935330835706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 26.55935330835706,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.521283939231111,
            "drawdown_pct": -8.721654370524568,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 16.942299054923964,
            "drawdown_pct": -7.598849079136416,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.942299054923964,
            "drawdown_pct": -7.598849079136416,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 18.47134211878557,
            "drawdown_pct": -6.390686249688205,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 23.408875623295202,
            "drawdown_pct": -2.489328210603159,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 24.733192172268986,
            "drawdown_pct": -1.4429286246736006,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 30.026106965784408,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 36.74008650123079,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 36.005261476181545,
            "drawdown_pct": -0.5373881528461855,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 40.32152248659503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 41.96115726335145,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 57.535256833264754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c8_p90_cap5",
        "variant": "ridge_a1_H10_c8_p90_cap5",
        "gain_pct": 8.559571287803536,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.559571287803536,
        "stability_score": -6.1904287121964625,
        "n_trades": 8,
        "skipped_by_capacity": 2,
        "avg_trade_ret_pct": 1.036199482885801,
        "median_trade_ret_pct": 1.0234472205372862,
        "positive_month_rate": 1.0,
        "worst_month_pct": 8.540631996014753,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 2,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.0,
        "max_open_trades": 5,
        "avg_exposure": 0.6,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 8.540631996014753
        }
      },
      "selection_score": 756.8996915491691
    },
    {
      "name": "ridge_a10_H10_c8_p70_cap1",
      "variant": {
        "name": "ridge_a10_H10_c8_p70_cap1",
        "threshold": 0.033562053253575586,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p70_cap1",
        "variant": "ridge_a10_H10_c8_p70_cap1",
        "gain_pct": 2152.6365009502983,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 2134.937145954982,
        "stability_score": 2109.1678247854247,
        "n_trades": 98,
        "skipped_by_capacity": 1873,
        "avg_trade_ret_pct": 3.332274529705452,
        "median_trade_ret_pct": 2.763282723610374,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.208096679761184,
        "month_gain_concentration": 0.18434233613539608,
        "top_asset_trade_share": 0.6020408163265306,
        "long_counts": {
          "SOL": 29,
          "XRP": 59,
          "ETH": 6,
          "BTC": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 98,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.721526552720235,
          "2024-10-31 00:00:00+00:00": 5.437229735871142,
          "2024-11-30 00:00:00+00:00": 127.16860234952654,
          "2024-12-31 00:00:00+00:00": 267.0507922787984,
          "2025-01-31 00:00:00+00:00": 155.6596927329249,
          "2025-02-28 00:00:00+00:00": 329.5789759977673,
          "2025-03-31 00:00:00+00:00": 233.11599801368334,
          "2025-04-30 00:00:00+00:00": 395.9657780281841,
          "2025-05-31 00:00:00+00:00": 48.102741127609534,
          "2025-07-31 00:00:00+00:00": -7.999192162591271,
          "2025-08-31 00:00:00+00:00": 99.94200808775622,
          "2025-10-31 00:00:00+00:00": -14.324507851494673,
          "2025-11-30 00:00:00+00:00": 179.9099772654081,
          "2026-01-31 00:00:00+00:00": -11.087861688744397,
          "2026-02-28 00:00:00+00:00": 264.3382153643213,
          "2026-03-31 00:00:00+00:00": -30.208096679761184
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p70_cap1",
        "variant": "ridge_a10_H10_c8_p70_cap1",
        "gain_pct": 200.11075431753568,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 182.41139932221944,
        "stability_score": 182.41139932221944,
        "n_trades": 54,
        "skipped_by_capacity": 647,
        "avg_trade_ret_pct": 2.13436195359234,
        "median_trade_ret_pct": 2.334028709077204,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7137779695117388,
        "month_gain_concentration": 0.20139887545225418,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 27,
          "SOL": 17,
          "ETH": 6,
          "BTC": 1,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 54,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 29.389402873486546,
          "2025-02-28 00:00:00+00:00": 39.3098466811345,
          "2025-03-31 00:00:00+00:00": 25.865967818231383,
          "2025-04-30 00:00:00+00:00": 12.843093151578529,
          "2025-05-31 00:00:00+00:00": 4.306984870869627,
          "2025-07-31 00:00:00+00:00": 4.644124382298088,
          "2025-08-31 00:00:00+00:00": 3.796639130446124,
          "2025-10-31 00:00:00+00:00": 12.441756351418292,
          "2025-11-30 00:00:00+00:00": 19.28875778261755,
          "2025-12-31 00:00:00+00:00": 0.7137779695117388,
          "2026-01-31 00:00:00+00:00": 5.863880106996561,
          "2026-02-28 00:00:00+00:00": 31.029107433842057,
          "2026-03-31 00:00:00+00:00": 5.690704024081413
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.5135094824584314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.260873674421276,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 25.090494999873144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 25.762778803275765,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 29.389402873486546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 28.177441094249843,
            "drawdown_pct": -4.428462590347304,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 28.177441094249843,
            "drawdown_pct": -4.428462590347304,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 35.272445013085246,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 35.272445013085246,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 39.987443261035054,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 50.45879233540458,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 51.56444204413597,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 51.56444204413597,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 56.632228536174495,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 68.69924955462105,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 87.82837708368936,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 87.82837708368936,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 88.28480105997247,
            "drawdown_pct": -3.8456119713030423,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 88.28480105997247,
            "drawdown_pct": -3.8456119713030423,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 79.3483517543306,
            "drawdown_pct": -8.409330387744795,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 90.37907744084433,
            "drawdown_pct": -2.7760946091366367,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 90.37907744084433,
            "drawdown_pct": -2.7760946091366367,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 94.56521737285243,
            "drawdown_pct": -0.6382920828641003,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 94.56521737285243,
            "drawdown_pct": -0.6382920828641003,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 105.73390849887926,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 105.73390849887926,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 104.20557928055356,
            "drawdown_pct": -0.7428669534725874,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 101.253105199884,
            "drawdown_pct": -2.177960517879174,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 107.40831052443096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 111.71529539530059,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 110.72131135794177,
            "drawdown_pct": -0.469490896018121,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 116.35941977759867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 116.35941977759867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 121.92634767937795,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 120.1560589080448,
            "drawdown_pct": -0.7976920225311601,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 118.73413486949568,
            "drawdown_pct": -1.438410915721522,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 118.73413486949568,
            "drawdown_pct": -1.438410915721522,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 116.21046623317315,
            "drawdown_pct": -2.5755758637828197,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 116.21046623317315,
            "drawdown_pct": -2.5755758637828197,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 128.49525964152454,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 127.26470519426996,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 127.26470519426996,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 132.5978152594631,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 151.88657304208064,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 152.60035101159238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 158.46423111858894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 167.44654544580038,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 193.49679732362415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 193.49679732362415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 189.493338552431,
            "drawdown_pct": -1.3640553517791032,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 195.1840425765124,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p70_cap1",
        "variant": "ridge_a10_H10_c8_p70_cap1",
        "gain_pct": 16.643766426278845,
        "max_drawdown_pct": -1.364055351779092,
        "capital_score": 14.597683398610206,
        "stability_score": -5.402316601389794,
        "n_trades": 5,
        "skipped_by_capacity": 51,
        "avg_trade_ret_pct": 3.1862171048242445,
        "median_trade_ret_pct": 2.7445116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5866079932734323,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.31551397119432,
          "2026-03-31 00:00:00+00:00": -1.5866079932734323
        }
      },
      "selection_score": 2134.937145954982
    },
    {
      "name": "ridge_a10_H10_c8_p70_cap2",
      "variant": {
        "name": "ridge_a10_H10_c8_p70_cap2",
        "threshold": 0.033562053253575586,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p70_cap2",
        "variant": "ridge_a10_H10_c8_p70_cap2",
        "gain_pct": 2192.8121201541094,
        "max_drawdown_pct": -11.451495366599474,
        "capital_score": 2175.6348771042103,
        "stability_score": 2149.2484739799597,
        "n_trades": 188,
        "skipped_by_capacity": 1783,
        "avg_trade_ret_pct": 1.7054948693501295,
        "median_trade_ret_pct": 1.4564806098937189,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.854488230633706,
        "month_gain_concentration": 0.17560926953373907,
        "top_asset_trade_share": 0.601063829787234,
        "long_counts": {
          "SOL": 54,
          "XRP": 113,
          "BTC": 4,
          "ETH": 14,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 188,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.942084942084942,
        "max_open_trades": 2,
        "avg_exposure": 0.971042471042471,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 46.034968679605015,
          "2024-10-31 00:00:00+00:00": 5.171122962568944,
          "2024-11-30 00:00:00+00:00": 127.32515614649057,
          "2024-12-31 00:00:00+00:00": 266.9496997522311,
          "2025-01-31 00:00:00+00:00": 163.93300397148528,
          "2025-02-28 00:00:00+00:00": 338.3250739701341,
          "2025-03-31 00:00:00+00:00": 245.78281153172497,
          "2025-04-30 00:00:00+00:00": 385.0005130211441,
          "2025-05-31 00:00:00+00:00": 49.12003240680042,
          "2025-07-31 00:00:00+00:00": -4.0555618506582505,
          "2025-08-31 00:00:00+00:00": 103.07614200683338,
          "2025-10-31 00:00:00+00:00": -7.2855723655891325,
          "2025-11-30 00:00:00+00:00": 186.11367582389948,
          "2026-01-31 00:00:00+00:00": -11.321493390524893,
          "2026-02-28 00:00:00+00:00": 275.53790663180735,
          "2026-03-31 00:00:00+00:00": -30.854488230633706
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p70_cap2",
        "variant": "ridge_a10_H10_c8_p70_cap2",
        "gain_pct": 200.78551868674975,
        "max_drawdown_pct": -7.8485607421914345,
        "capital_score": 189.0126775734626,
        "stability_score": 189.0126775734626,
        "n_trades": 102,
        "skipped_by_capacity": 599,
        "avg_trade_ret_pct": 1.1026953203987655,
        "median_trade_ret_pct": 1.215040185308412,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7091586366762215,
        "month_gain_concentration": 0.1940781668331856,
        "top_asset_trade_share": 0.47058823529411764,
        "long_counts": {
          "XRP": 48,
          "SOL": 33,
          "ETH": 13,
          "BNB": 6,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 102,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9098360655737705,
        "max_open_trades": 2,
        "avg_exposure": 0.9549180327868853,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.98752086600659,
          "2025-02-28 00:00:00+00:00": 38.0058356403223,
          "2025-03-31 00:00:00+00:00": 26.908060381037956,
          "2025-04-30 00:00:00+00:00": 13.579741154644381,
          "2025-05-31 00:00:00+00:00": 4.247370743156523,
          "2025-07-31 00:00:00+00:00": 4.594850830810202,
          "2025-08-31 00:00:00+00:00": 7.306160538964036,
          "2025-10-31 00:00:00+00:00": 13.705657409743026,
          "2025-11-30 00:00:00+00:00": 16.744085479201516,
          "2025-12-31 00:00:00+00:00": 0.7091586366762215,
          "2026-01-31 00:00:00+00:00": 5.855605344521393,
          "2026-02-28 00:00:00+00:00": 31.49007165647015,
          "2026-03-31 00:00:00+00:00": 7.6933474392955645
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2567547412292157,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 8.733743148200091,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.880797632769543,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 23.211001658254432,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.98752086600659,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 25.452478971215328,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 25.452478971215328,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.41348109320225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 30.41348109320225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 34.6497418978542,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.1155395253993,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 45.1765212904553,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 45.1765212904553,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.12627433518304,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 62.993356506328894,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 81.90671213350555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 81.90671213350555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 82.5392358260251,
            "drawdown_pct": -3.808640142718478,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 82.5392358260251,
            "drawdown_pct": -3.808640142718478,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 74.8728090271967,
            "drawdown_pct": -7.8485607421914345,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 85.7936460402234,
            "drawdown_pct": -2.0936875046154046,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 85.7936460402234,
            "drawdown_pct": -2.0936875046154046,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 89.90141688736685,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 89.90141688736685,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 100.88366575565772,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 100.88366575565772,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 100.2757282732604,
            "drawdown_pct": -0.3026316152238917,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 97.39053991434176,
            "drawdown_pct": -1.7388799772126706,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 103.48115804201123,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 107.72852878516775,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 106.75440695098285,
            "drawdown_pct": -0.4689398417645041,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 112.32337961597796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 112.32337961597796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 121.39204497271987,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 119.62954015494199,
            "drawdown_pct": -0.7961012411241142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 118.21330720575406,
            "drawdown_pct": -1.4357958378122815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 118.21330720575406,
            "drawdown_pct": -1.4357958378122815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 115.70290961668036,
            "drawdown_pct": -2.569710829827032,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 115.70290961668036,
            "drawdown_pct": -2.569710829827032,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 128.13295612162094,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 126.90600700085827,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 126.90600700085827,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 133.33519756468502,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 150.07928304388653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 150.78844168056276,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 156.64404702508415,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 165.64059535372104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 192.10500502789978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 192.10500502789978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 188.1341186815543,
            "drawdown_pct": -1.3594037342722687,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 195.82746612084986,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p70_cap2",
        "variant": "ridge_a10_H10_c8_p70_cap2",
        "gain_pct": 18.281179952075604,
        "max_drawdown_pct": -1.3594037342722909,
        "capital_score": 16.242074350667167,
        "stability_score": 2.2420743506671688,
        "n_trades": 10,
        "skipped_by_capacity": 46,
        "avg_trade_ret_pct": 1.7080730211529191,
        "median_trade_ret_pct": 1.467412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5917157985415287,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 17.089261888308798,
          "2026-03-31 00:00:00+00:00": -1.5917157985415287
        }
      },
      "selection_score": 2175.6348771042103
    },
    {
      "name": "ridge_a10_H10_c8_p70_cap3",
      "variant": {
        "name": "ridge_a10_H10_c8_p70_cap3",
        "threshold": 0.033562053253575586,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p70_cap3",
        "variant": "ridge_a10_H10_c8_p70_cap3",
        "gain_pct": 1997.0267935948032,
        "max_drawdown_pct": -11.341555128305458,
        "capital_score": 1980.014460902345,
        "stability_score": 1955.994924896095,
        "n_trades": 271,
        "skipped_by_capacity": 1700,
        "avg_trade_ret_pct": 1.1405019280587003,
        "median_trade_ret_pct": 0.9684278940793202,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -28.25385334942348,
        "month_gain_concentration": 0.17540514733734666,
        "top_asset_trade_share": 0.6088560885608856,
        "long_counts": {
          "SOL": 79,
          "XRP": 165,
          "BTC": 6,
          "BNB": 5,
          "ETH": 16
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 271,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.833976833976834,
        "max_open_trades": 3,
        "avg_exposure": 0.9446589446589446,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.84519409712419,
          "2024-10-31 00:00:00+00:00": 4.878729819616808,
          "2024-11-30 00:00:00+00:00": 126.3692232705032,
          "2024-12-31 00:00:00+00:00": 233.35222148863227,
          "2025-01-31 00:00:00+00:00": 143.09511864771525,
          "2025-02-28 00:00:00+00:00": 310.6460105037331,
          "2025-03-31 00:00:00+00:00": 249.90169364689552,
          "2025-04-30 00:00:00+00:00": 350.49048816760137,
          "2025-05-31 00:00:00+00:00": 30.372517760452865,
          "2025-07-31 00:00:00+00:00": -2.4897903439648417,
          "2025-08-31 00:00:00+00:00": 95.46701284055825,
          "2025-10-31 00:00:00+00:00": -4.477520890222877,
          "2025-11-30 00:00:00+00:00": 172.54614100108233,
          "2026-01-31 00:00:00+00:00": -10.450061674036306,
          "2026-02-28 00:00:00+00:00": 239.212404045501,
          "2026-03-31 00:00:00+00:00": -28.25385334942348
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p70_cap3",
        "variant": "ridge_a10_H10_c8_p70_cap3",
        "gain_pct": 183.310018307983,
        "max_drawdown_pct": -8.59213979749197,
        "capital_score": 170.42180861174504,
        "stability_score": 170.42180861174504,
        "n_trades": 144,
        "skipped_by_capacity": 557,
        "avg_trade_ret_pct": 0.7335254993315051,
        "median_trade_ret_pct": 0.8142649739455267,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.675598960638581,
        "month_gain_concentration": 0.2021067255932416,
        "top_asset_trade_share": 0.4375,
        "long_counts": {
          "XRP": 63,
          "SOL": 48,
          "ETH": 20,
          "BNB": 9,
          "BTC": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 144,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.737704918032787,
        "max_open_trades": 3,
        "avg_exposure": 0.912568306010929,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 23.957698157855432,
          "2025-02-28 00:00:00+00:00": 35.83254413095345,
          "2025-03-31 00:00:00+00:00": 24.48421716284122,
          "2025-04-30 00:00:00+00:00": 13.511554074811414,
          "2025-05-31 00:00:00+00:00": 4.135665916026625,
          "2025-07-31 00:00:00+00:00": 2.975014452463995,
          "2025-08-31 00:00:00+00:00": 5.93350768441158,
          "2025-10-31 00:00:00+00:00": 12.3311749108953,
          "2025-11-30 00:00:00+00:00": 15.027069820961941,
          "2025-12-31 00:00:00+00:00": 0.675598960638581,
          "2026-01-31 00:00:00+00:00": 5.588022692061628,
          "2026-02-28 00:00:00+00:00": 28.003224777319446,
          "2026-03-31 00:00:00+00:00": 4.8398666641408
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8378364941528105,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 7.356137004907211,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.557961135915036,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.777518804278273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 23.957698157855432,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 26.48828501806223,
            "drawdown_pct": -2.4260102299107467,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 26.48828501806223,
            "drawdown_pct": -2.4260102299107467,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 31.804562372756465,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 31.804562372756465,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 36.21575666273225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.78582244364367,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 45.54653047393742,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 45.54653047393742,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.88900856341667,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 59.790242288808884,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 77.85177456575556,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 77.85177456575556,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 78.53229598273242,
            "drawdown_pct": -3.7965268358667426,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 78.53229598273242,
            "drawdown_pct": -3.7965268358667426,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 69.63270260502989,
            "drawdown_pct": -8.59213979749197,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 80.28122967955792,
            "drawdown_pct": -2.854100732834519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 80.28122967955792,
            "drawdown_pct": -2.854100732834519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 84.2744594516501,
            "drawdown_pct": -0.7023187759450877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 84.2744594516501,
            "drawdown_pct": -0.7023187759450877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 94.95794222937576,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 94.95794222937576,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 94.6542925896982,
            "drawdown_pct": -0.1557513565260682,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 91.85345623549901,
            "drawdown_pct": -1.5923875469634363,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 97.78601352646152,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 101.92167944248814,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 101.29017137355459,
            "drawdown_pct": -0.3127490176771386,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 104.89669389495214,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 104.89669389495214,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 112.52096066547585,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 110.83020157936372,
            "drawdown_pct": -0.7955728605864576,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 109.47144002968827,
            "drawdown_pct": -1.4349269955483468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 109.47144002968827,
            "drawdown_pct": -1.4349269955483468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 107.06392351122904,
            "drawdown_pct": -2.5677642041326054,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 107.06392351122904,
            "drawdown_pct": -2.5677642041326054,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 117.94038049085196,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 116.7687747676656,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 116.7687747676656,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 123.16137649025902,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 138.18844631122096,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 138.86404527185954,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 144.45206796392117,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 153.04621464089996,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 176.20578781981743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 176.20578781981743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 172.4552927412406,
            "drawdown_pct": -1.3578625951978451,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 177.2951594053814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p70_cap3",
        "variant": "ridge_a10_H10_c8_p70_cap3",
        "gain_pct": 18.145624931994078,
        "max_drawdown_pct": 0.0,
        "capital_score": 18.145624931994078,
        "stability_score": 5.0517341849326645,
        "n_trades": 14,
        "skipped_by_capacity": 42,
        "avg_trade_ret_pct": 1.204464036822427,
        "median_trade_ret_pct": 0.9285916847808965,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9980413441681709,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8333333333333335,
        "max_open_trades": 3,
        "avg_exposure": 0.9444444444444443,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.606687124253625,
          "2026-03-31 00:00:00+00:00": 0.03062811869475013
        }
      },
      "selection_score": 1980.014460902345
    },
    {
      "name": "ridge_a10_H10_c8_p70_cap5",
      "variant": {
        "name": "ridge_a10_H10_c8_p70_cap5",
        "threshold": 0.033562053253575586,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p70_cap5",
        "variant": "ridge_a10_H10_c8_p70_cap5",
        "gain_pct": 1612.9457257138906,
        "max_drawdown_pct": -11.255639059853117,
        "capital_score": 1596.062267124111,
        "stability_score": 1592.415172551172,
        "n_trades": 416,
        "skipped_by_capacity": 1555,
        "avg_trade_ret_pct": 0.6892667155754105,
        "median_trade_ret_pct": 0.610006010400939,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -8.40670995755454,
        "month_gain_concentration": 0.16398528630435572,
        "top_asset_trade_share": 0.5913461538461539,
        "long_counts": {
          "SOL": 124,
          "XRP": 246,
          "BTC": 11,
          "BNB": 9,
          "ETH": 26
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 416,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.455598455598456,
        "max_open_trades": 5,
        "avg_exposure": 0.8911196911196911,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 28.600627611316014,
          "2024-10-31 00:00:00+00:00": 3.726471240639114,
          "2024-11-30 00:00:00+00:00": 112.9275197647047,
          "2024-12-31 00:00:00+00:00": 180.2318348823251,
          "2025-01-31 00:00:00+00:00": 113.36418002757182,
          "2025-02-28 00:00:00+00:00": 252.94477727654316,
          "2025-03-31 00:00:00+00:00": 210.2254847716797,
          "2025-04-30 00:00:00+00:00": 261.10727438062213,
          "2025-05-31 00:00:00+00:00": 14.721629251730747,
          "2025-07-31 00:00:00+00:00": -1.1998776944126348,
          "2025-08-31 00:00:00+00:00": 77.03401385245729,
          "2025-10-31 00:00:00+00:00": -2.159645752538836,
          "2025-11-30 00:00:00+00:00": 138.90343066614423,
          "2026-01-31 00:00:00+00:00": -8.40670995755454,
          "2026-02-28 00:00:00+00:00": 193.3038557652235,
          "2026-03-31 00:00:00+00:00": 5.169281089825745
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p70_cap5",
        "variant": "ridge_a10_H10_c8_p70_cap5",
        "gain_pct": 120.75914635751604,
        "max_drawdown_pct": -9.70871604216159,
        "capital_score": 106.19607229427366,
        "stability_score": 106.19607229427366,
        "n_trades": 213,
        "skipped_by_capacity": 488,
        "avg_trade_ret_pct": 0.3758315325966472,
        "median_trade_ret_pct": 0.47441607224294735,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.3145895807197405,
        "month_gain_concentration": 0.2124107009756855,
        "top_asset_trade_share": 0.43661971830985913,
        "long_counts": {
          "XRP": 93,
          "SOL": 63,
          "ETH": 33,
          "BTC": 9,
          "BNB": 15
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.122950819672131,
        "max_open_trades": 5,
        "avg_exposure": 0.8245901639344262,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 14.990041928918501,
          "2025-02-28 00:00:00+00:00": 18.016317293154444,
          "2025-03-31 00:00:00+00:00": 10.135082475149318,
          "2025-04-30 00:00:00+00:00": 10.257987159161985,
          "2025-05-31 00:00:00+00:00": 1.9192194010618948,
          "2025-07-31 00:00:00+00:00": 1.3720699928192062,
          "2025-08-31 00:00:00+00:00": 5.868474831816968,
          "2025-10-31 00:00:00+00:00": 10.985914648522026,
          "2025-11-30 00:00:00+00:00": 11.377007002360841,
          "2025-12-31 00:00:00+00:00": 0.3145895807197405,
          "2026-01-31 00:00:00+00:00": 3.252367273929792,
          "2026-02-28 00:00:00+00:00": 24.47643140460673,
          "2026-03-31 00:00:00+00:00": 2.266127486736991
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.5027018964916863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.3701210435237385,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.6917730267866915,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 14.207891508771354,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 14.330650821031156,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 14.990041928918501,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 13.567511654113346,
            "drawdown_pct": -1.953531660720631,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 11.750910238800031,
            "drawdown_pct": -3.521861815686711,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 15.024023496066661,
            "drawdown_pct": -0.6960783616398403,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 15.024023496066661,
            "drawdown_pct": -0.6960783616398403,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 18.77951636689869,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 24.928290768045983,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 25.348000352137277,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 25.348000352137277,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 29.000431587951994,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 33.006359222072945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 41.94334082442569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 41.94334082442569,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 41.503057066393325,
            "drawdown_pct": -3.5982352919233573,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 41.503057066393325,
            "drawdown_pct": -3.5982352919233573,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 34.696891719434234,
            "drawdown_pct": -8.23507045255144,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 39.72896292333172,
            "drawdown_pct": -4.806872120660966,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 39.72896292333172,
            "drawdown_pct": -4.806872120660966,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 43.14144169722226,
            "drawdown_pct": -2.4820532605458134,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 43.14144169722226,
            "drawdown_pct": -2.4820532605458134,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.297604378147696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 51.297604378147696,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 51.23981104858615,
            "drawdown_pct": -0.0381984432596183,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 48.50088767363155,
            "drawdown_pct": -1.8484871032895756,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 53.39942885638425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 55.31864825744614,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 55.02710243449417,
            "drawdown_pct": -0.18770818972666525,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 56.69071825026535,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 56.69071825026535,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 63.33971525090311,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 62.55919308208232,
            "drawdown_pct": -0.4778520445084977,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 61.51197942701492,
            "drawdown_pct": -1.1189782111966085,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 61.51197942701492,
            "drawdown_pct": -1.1189782111966085,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 61.01689866771437,
            "drawdown_pct": -1.4220770371863978,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 61.01689866771437,
            "drawdown_pct": -1.4220770371863978,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 69.33110715817196,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 68.42114184922062,
            "drawdown_pct": -0.5373881528462188,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 68.42114184922062,
            "drawdown_pct": -0.5373881528462188,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 73.54510773060434,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 74.30662552730368,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 74.30662552730368,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 74.30662552730368,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 80.46777437160387,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 80.46777437160387,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 80.46777437160387,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 84.92211473296518,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 85.23670431368492,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 88.48907158761472,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 95.13125827615829,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 96.68429697219182,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 115.89439772388147,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 115.89439772388147,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 112.96550299222145,
            "drawdown_pct": -1.3566330402912663,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 115.23163047895844,
            "drawdown_pct": -0.30698677312167577,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p70_cap5",
        "variant": "ridge_a10_H10_c8_p70_cap5",
        "gain_pct": 15.606764873735457,
        "max_drawdown_pct": 0.0,
        "capital_score": 15.606764873735457,
        "stability_score": 5.7424279913484035,
        "n_trades": 20,
        "skipped_by_capacity": 36,
        "avg_trade_ret_pct": 0.7297424073075437,
        "median_trade_ret_pct": 0.5654076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8945734752954821,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 10,
          "ETH": 5,
          "BTC": 1,
          "SOL": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 20,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.333333333333333,
        "max_open_trades": 5,
        "avg_exposure": 0.8666666666666667,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 11.664589323837987,
          "2026-03-31 00:00:00+00:00": 1.374685421017503
        }
      },
      "selection_score": 1596.062267124111
    },
    {
      "name": "ridge_a10_H10_c8_p80_cap1",
      "variant": {
        "name": "ridge_a10_H10_c8_p80_cap1",
        "threshold": 0.052151359479987176,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p80_cap1",
        "variant": "ridge_a10_H10_c8_p80_cap1",
        "gain_pct": 1392.8370454580627,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 1375.1376904627464,
        "stability_score": 1358.1005135478315,
        "n_trades": 83,
        "skipped_by_capacity": 1231,
        "avg_trade_ret_pct": 3.409028382528867,
        "median_trade_ret_pct": 3.125137365567101,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -20.019104625758246,
        "month_gain_concentration": 0.149445934224803,
        "top_asset_trade_share": 0.6506024096385542,
        "long_counts": {
          "SOL": 23,
          "ETH": 4,
          "XRP": 54,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 83,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 19.89753205190148,
          "2024-10-31 00:00:00+00:00": 9.012172622110754,
          "2024-11-30 00:00:00+00:00": 129.0117939483123,
          "2024-12-31 00:00:00+00:00": 181.06780099073808,
          "2025-01-31 00:00:00+00:00": 125.32094446775511,
          "2025-02-28 00:00:00+00:00": 205.16678358398394,
          "2025-03-31 00:00:00+00:00": 148.93698636936074,
          "2025-04-30 00:00:00+00:00": 72.48438522475408,
          "2025-05-31 00:00:00+00:00": 123.67371663530503,
          "2025-07-31 00:00:00+00:00": -5.2328146136799205,
          "2025-10-31 00:00:00+00:00": 65.37885199056313,
          "2025-11-30 00:00:00+00:00": 66.7459354646237,
          "2026-01-31 00:00:00+00:00": 50.973970576953434,
          "2026-02-28 00:00:00+00:00": 175.17867630203887,
          "2026-03-31 00:00:00+00:00": -20.019104625758246
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p80_cap1",
        "variant": "ridge_a10_H10_c8_p80_cap1",
        "gain_pct": 152.95156366730407,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 135.25220867198783,
        "stability_score": 133.89506581484497,
        "n_trades": 42,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.3307425669433135,
        "median_trade_ret_pct": 2.5716722576802433,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.440689418059975,
        "month_gain_concentration": 0.19603578407962213,
        "top_asset_trade_share": 0.5952380952380952,
        "long_counts": {
          "XRP": 25,
          "SOL": 12,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 42,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 25.090494999873144,
          "2025-02-28 00:00:00+00:00": 22.412267895699713,
          "2025-03-31 00:00:00+00:00": 20.37702038641163,
          "2025-04-30 00:00:00+00:00": 13.113379932709421,
          "2025-05-31 00:00:00+00:00": -1.3445383975666516,
          "2025-07-31 00:00:00+00:00": 3.9407193382120624,
          "2025-10-31 00:00:00+00:00": 14.351678073217784,
          "2025-11-30 00:00:00+00:00": 18.53765682100729,
          "2025-12-31 00:00:00+00:00": 0.6134416380692471,
          "2026-01-31 00:00:00+00:00": 5.039589861169645,
          "2026-02-28 00:00:00+00:00": 30.10801077719796,
          "2026-03-31 00:00:00+00:00": -3.440689418059975
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.5135094824584314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.260873674421276,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 25.090494999873144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 23.91880013523358,
            "drawdown_pct": -4.4284625903472925,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 23.91880013523358,
            "drawdown_pct": -4.4284625903472925,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.778075566784565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 39.75600984004589,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 40.78300991876944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 47.50276289557286,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 64.2283806429462,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 56.841362853900534,
            "drawdown_pct": -4.498015361368024,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 56.841362853900534,
            "drawdown_pct": -4.498015361368024,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 61.060521511230064,
            "drawdown_pct": -3.7557745049325852,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 54.749974486956944,
            "drawdown_pct": -7.526740258070419,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 64.26778996651515,
            "drawdown_pct": -1.8392212395058838,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 64.26778996651515,
            "drawdown_pct": -1.8392212395058838,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 67.87978328198449,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 67.87978328198449,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 80.99316321469391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 79.64862481712726,
            "drawdown_pct": -0.7428669534725763,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 78.80519087878909,
            "drawdown_pct": -1.2088701567746218,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 83.58934415533932,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 83.58934415533932,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 88.31309800667745,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 88.31309800667745,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 99.01279976211319,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 97.9410222285571,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 97.9410222285571,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 102.58600771831607,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 116.47867904956439,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 117.09212068763364,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 122.13171054880328,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 129.8513738753509,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 152.23972132600124,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 148.79903190794127,
            "drawdown_pct": -1.364055351779092,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p80_cap1",
        "variant": "ridge_a10_H10_c8_p80_cap1",
        "gain_pct": 16.643766426278845,
        "max_drawdown_pct": -1.364055351779092,
        "capital_score": 14.597683398610206,
        "stability_score": -5.402316601389794,
        "n_trades": 5,
        "skipped_by_capacity": 34,
        "avg_trade_ret_pct": 3.1862171048242445,
        "median_trade_ret_pct": 2.7445116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5866079932734323,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.31551397119432,
          "2026-03-31 00:00:00+00:00": -1.5866079932734323
        }
      },
      "selection_score": 1375.1376904627464
    },
    {
      "name": "ridge_a10_H10_c8_p80_cap2",
      "variant": {
        "name": "ridge_a10_H10_c8_p80_cap2",
        "threshold": 0.052151359479987176,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p80_cap2",
        "variant": "ridge_a10_H10_c8_p80_cap2",
        "gain_pct": 1271.2118653520174,
        "max_drawdown_pct": -11.451495366599463,
        "capital_score": 1254.0346223021181,
        "stability_score": 1238.7150665301551,
        "n_trades": 158,
        "skipped_by_capacity": 1156,
        "avg_trade_ret_pct": 1.6951269574166605,
        "median_trade_ret_pct": 1.530152873845307,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -18.452467164368045,
        "month_gain_concentration": 0.1450233667423962,
        "top_asset_trade_share": 0.6455696202531646,
        "long_counts": {
          "SOL": 43,
          "ETH": 10,
          "XRP": 102,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 158,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9414634146341463,
        "max_open_trades": 2,
        "avg_exposure": 0.9707317073170731,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.512387434175821,
          "2024-10-31 00:00:00+00:00": 8.57997406329524,
          "2024-11-30 00:00:00+00:00": 107.422773537248,
          "2024-12-31 00:00:00+00:00": 171.6855467737051,
          "2025-01-31 00:00:00+00:00": 122.34709854412199,
          "2025-02-28 00:00:00+00:00": 182.70015167268264,
          "2025-03-31 00:00:00+00:00": 142.43620341252608,
          "2025-04-30 00:00:00+00:00": 61.28800023211954,
          "2025-05-31 00:00:00+00:00": 115.0520543181351,
          "2025-07-31 00:00:00+00:00": -2.4038501725084416,
          "2025-10-31 00:00:00+00:00": 61.096245321573974,
          "2025-11-30 00:00:00+00:00": 62.392378150301965,
          "2026-01-31 00:00:00+00:00": 47.500302656309714,
          "2026-02-28 00:00:00+00:00": 164.7849135158947,
          "2026-03-31 00:00:00+00:00": -18.452467164368045
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p80_cap2",
        "variant": "ridge_a10_H10_c8_p80_cap2",
        "gain_pct": 149.66194121859476,
        "max_drawdown_pct": -8.38607464964145,
        "capital_score": 137.0828292441326,
        "stability_score": 137.0828292441326,
        "n_trades": 79,
        "skipped_by_capacity": 363,
        "avg_trade_ret_pct": 1.18591064690226,
        "median_trade_ret_pct": 1.2851722505389696,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.3839713935452096,
        "month_gain_concentration": 0.20203671735866013,
        "top_asset_trade_share": 0.5443037974683544,
        "long_counts": {
          "XRP": 43,
          "SOL": 23,
          "ETH": 10,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 79,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.903225806451613,
        "max_open_trades": 2,
        "avg_exposure": 0.9516129032258065,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 20.841284532687197,
          "2025-02-28 00:00:00+00:00": 21.16044502227892,
          "2025-03-31 00:00:00+00:00": 18.82719495230623,
          "2025-04-30 00:00:00+00:00": 12.705358639985008,
          "2025-05-31 00:00:00+00:00": -0.6445644212232651,
          "2025-07-31 00:00:00+00:00": 3.824233832361216,
          "2025-10-31 00:00:00+00:00": 17.117845423831938,
          "2025-11-30 00:00:00+00:00": 19.28463651800365,
          "2025-12-31 00:00:00+00:00": 0.6043417843490602,
          "2026-01-31 00:00:00+00:00": 4.990120403719743,
          "2026-02-28 00:00:00+00:00": 30.219668104999556,
          "2026-03-31 00:00:00+00:00": -3.3839713935452096
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2567547412292157,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.07068838930077,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 20.841284532687197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 21.290818488541433,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 21.290818488541433,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 26.087248282784472,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 34.46898408002781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 35.45894769217091,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 42.00172955496612,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 58.479267463960326,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 51.43100504568969,
            "drawdown_pct": -4.447435005890266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 51.43100504568969,
            "drawdown_pct": -4.447435005890266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 56.272374733279406,
            "drawdown_pct": -3.3313921014899717,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 48.10108456479162,
            "drawdown_pct": -8.38607464964145,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 57.35002277869677,
            "drawdown_pct": -2.6647692480723406,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 57.35002277869677,
            "drawdown_pct": -2.6647692480723406,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 60.82892450727235,
            "drawdown_pct": -0.5127536554821122,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 60.82892450727235,
            "drawdown_pct": -0.5127536554821122,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 73.53428314725736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 72.88971872603409,
            "drawdown_pct": -0.3714334767362937,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 72.07896995261314,
            "drawdown_pct": -0.8386315189427229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 76.7139525583953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 76.7139525583953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 84.26168330061384,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 84.26168330061384,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 94.879904893338,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 93.83179798222724,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 93.83179798222724,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 99.32385869506768,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 113.1164345002309,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 113.72077628457996,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 118.7108966882997,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 126.37771450411864,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 148.93056479329925,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 145.54659339975404,
            "drawdown_pct": -1.3594037342722909,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p80_cap2",
        "variant": "ridge_a10_H10_c8_p80_cap2",
        "gain_pct": 18.281179952075604,
        "max_drawdown_pct": -1.3594037342722909,
        "capital_score": 16.242074350667167,
        "stability_score": 2.2420743506671688,
        "n_trades": 10,
        "skipped_by_capacity": 29,
        "avg_trade_ret_pct": 1.7080730211529191,
        "median_trade_ret_pct": 1.467412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5917157985415287,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 17.089261888308798,
          "2026-03-31 00:00:00+00:00": -1.5917157985415287
        }
      },
      "selection_score": 1254.0346223021181
    },
    {
      "name": "ridge_a10_H10_c8_p80_cap3",
      "variant": {
        "name": "ridge_a10_H10_c8_p80_cap3",
        "threshold": 0.052151359479987176,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p80_cap3",
        "variant": "ridge_a10_H10_c8_p80_cap3",
        "gain_pct": 1166.7243335595517,
        "max_drawdown_pct": -11.341555128305469,
        "capital_score": 1149.7120008670936,
        "stability_score": 1135.4575546249878,
        "n_trades": 224,
        "skipped_by_capacity": 1090,
        "avg_trade_ret_pct": 1.1509834250083206,
        "median_trade_ret_pct": 1.0340214473882807,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -17.066946242105814,
        "month_gain_concentration": 0.1450814682474086,
        "top_asset_trade_share": 0.65625,
        "long_counts": {
          "SOL": 61,
          "ETH": 12,
          "XRP": 147,
          "BTC": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 224,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8146341463414632,
        "max_open_trades": 3,
        "avg_exposure": 0.938211382113821,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 14.300952956685379,
          "2024-10-31 00:00:00+00:00": 6.14679275199417,
          "2024-11-30 00:00:00+00:00": 105.0607974801863,
          "2024-12-31 00:00:00+00:00": 157.75128750691616,
          "2025-01-31 00:00:00+00:00": 104.03314380405817,
          "2025-02-28 00:00:00+00:00": 168.06099256911818,
          "2025-03-31 00:00:00+00:00": 136.82542407483925,
          "2025-04-30 00:00:00+00:00": 52.88274307338497,
          "2025-05-31 00:00:00+00:00": 108.69517905091845,
          "2025-07-31 00:00:00+00:00": -1.492601251966903,
          "2025-10-31 00:00:00+00:00": 57.23139831140861,
          "2025-11-30 00:00:00+00:00": 58.451435036944304,
          "2026-01-31 00:00:00+00:00": 44.452341931195406,
          "2026-02-28 00:00:00+00:00": 144.49799784115953,
          "2026-03-31 00:00:00+00:00": -17.066946242105814
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p80_cap3",
        "variant": "ridge_a10_H10_c8_p80_cap3",
        "gain_pct": 137.97699177231064,
        "max_drawdown_pct": -8.319235081150001,
        "capital_score": 125.49813915058564,
        "stability_score": 125.49813915058564,
        "n_trades": 111,
        "skipped_by_capacity": 331,
        "avg_trade_ret_pct": 0.7932711904517822,
        "median_trade_ret_pct": 0.8576666714275158,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.206333389067339,
        "month_gain_concentration": 0.19880608442752676,
        "top_asset_trade_share": 0.5225225225225225,
        "long_counts": {
          "XRP": 58,
          "SOL": 33,
          "ETH": 14,
          "BNB": 5,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 111,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7204301075268815,
        "max_open_trades": 3,
        "avg_exposure": 0.906810035842294,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 16.30377689766749,
          "2025-02-28 00:00:00+00:00": 21.62810707221763,
          "2025-03-31 00:00:00+00:00": 18.08907262997704,
          "2025-04-30 00:00:00+00:00": 12.372709202465956,
          "2025-05-31 00:00:00+00:00": -0.41698029832883776,
          "2025-07-31 00:00:00+00:00": 2.4748856508680603,
          "2025-10-31 00:00:00+00:00": 14.62869364953744,
          "2025-11-30 00:00:00+00:00": 18.549270042912212,
          "2025-12-31 00:00:00+00:00": 0.5775758825783157,
          "2026-01-31 00:00:00+00:00": 4.777252965553089,
          "2026-02-28 00:00:00+00:00": 27.14655267317039,
          "2026-03-31 00:00:00+00:00": -3.206333389067339
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8378364941528105,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.033848159998328,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 16.30377689766749,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 18.678109544881224,
            "drawdown_pct": -2.4260102299107578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 18.678109544881224,
            "drawdown_pct": -2.4260102299107578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 23.66612678443252,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 32.65504895655448,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 33.30572390701931,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 37.93188396988512,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 53.52270565372348,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 46.72024975668822,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 46.72024975668822,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 52.24427777576199,
            "drawdown_pct": -2.8166569164233435,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 43.624117036147965,
            "drawdown_pct": -8.319235081150001,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 52.63998057736384,
            "drawdown_pct": -2.564064689713541,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 52.63998057736384,
            "drawdown_pct": -2.564064689713541,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 56.02095659986216,
            "drawdown_pct": -0.4058584336087856,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 56.02095659986216,
            "drawdown_pct": -0.4058584336087856,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 68.39366580232812,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 67.97668550399928,
            "drawdown_pct": -0.24762231782418098,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 67.45134007015889,
            "drawdown_pct": -0.5595968991347844,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 70.45157115486734,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 70.45157115486734,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 76.79412468872712,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 76.79412468872712,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 86.0805984443679,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 85.08026480440478,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 85.08026480440478,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 90.53835913037389,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 103.62953484731699,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 104.2071107298953,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 108.9843636954484,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 116.33158022649792,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 136.13091636861878,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 132.92458297955145,
            "drawdown_pct": -1.357862595197823,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p80_cap3",
        "variant": "ridge_a10_H10_c8_p80_cap3",
        "gain_pct": 18.145624931994078,
        "max_drawdown_pct": 0.0,
        "capital_score": 18.145624931994078,
        "stability_score": 5.0517341849326645,
        "n_trades": 14,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 1.204464036822427,
        "median_trade_ret_pct": 0.9285916847808965,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9980413441681709,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8181818181818183,
        "max_open_trades": 3,
        "avg_exposure": 0.9393939393939393,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.606687124253625,
          "2026-03-31 00:00:00+00:00": 0.03062811869475013
        }
      },
      "selection_score": 1149.7120008670936
    },
    {
      "name": "ridge_a10_H10_c8_p80_cap5",
      "variant": {
        "name": "ridge_a10_H10_c8_p80_cap5",
        "threshold": 0.052151359479987176,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p80_cap5",
        "variant": "ridge_a10_H10_c8_p80_cap5",
        "gain_pct": 1052.1612498604636,
        "max_drawdown_pct": -11.255639059853117,
        "capital_score": 1035.277791270684,
        "stability_score": 1032.8628352589537,
        "n_trades": 341,
        "skipped_by_capacity": 973,
        "avg_trade_ret_pct": 0.7234258454194521,
        "median_trade_ret_pct": 0.657108586076312,
        "positive_month_rate": 0.875,
        "worst_month_pct": -0.8092410693016063,
        "month_gain_concentration": 0.14340841707742819,
        "top_asset_trade_share": 0.6304985337243402,
        "long_counts": {
          "SOL": 103,
          "BNB": 1,
          "ETH": 17,
          "XRP": 215,
          "BTC": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 341,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.443902439024391,
        "max_open_trades": 5,
        "avg_exposure": 0.888780487804878,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 15.166806845111353,
          "2024-10-31 00:00:00+00:00": 3.9159586908690187,
          "2024-11-30 00:00:00+00:00": 98.75019803363153,
          "2024-12-31 00:00:00+00:00": 139.54228585625245,
          "2025-01-31 00:00:00+00:00": 88.31279328088124,
          "2025-02-28 00:00:00+00:00": 147.8745733550212,
          "2025-03-31 00:00:00+00:00": 124.16369552137121,
          "2025-04-30 00:00:00+00:00": 44.742408023881694,
          "2025-05-31 00:00:00+00:00": 99.35956733632304,
          "2025-07-31 00:00:00+00:00": -0.8092410693016063,
          "2025-10-31 00:00:00+00:00": 51.95453506040087,
          "2025-11-30 00:00:00+00:00": 53.06639181115327,
          "2026-01-31 00:00:00+00:00": 30.796736052951474,
          "2026-02-28 00:00:00+00:00": 130.02000513967653,
          "2026-03-31 00:00:00+00:00": 3.4769609287250205
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p80_cap5",
        "variant": "ridge_a10_H10_c8_p80_cap5",
        "gain_pct": 96.64203366523077,
        "max_drawdown_pct": -9.70871604216159,
        "capital_score": 82.07895960198839,
        "stability_score": 82.07895960198839,
        "n_trades": 165,
        "skipped_by_capacity": 277,
        "avg_trade_ret_pct": 0.41469591347764306,
        "median_trade_ret_pct": 0.5212891053213391,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.6366850037607605,
        "month_gain_concentration": 0.26020405981716094,
        "top_asset_trade_share": 0.49696969696969695,
        "long_counts": {
          "XRP": 82,
          "SOL": 49,
          "ETH": 22,
          "BTC": 3,
          "BNB": 9
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 165,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.086021505376344,
        "max_open_trades": 5,
        "avg_exposure": 0.8172043010752689,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 11.01763104415312,
          "2025-02-28 00:00:00+00:00": 10.195413863452728,
          "2025-03-31 00:00:00+00:00": 7.724739660437308,
          "2025-04-30 00:00:00+00:00": 10.404033548797514,
          "2025-05-31 00:00:00+00:00": -0.20702486383157748,
          "2025-07-31 00:00:00+00:00": 1.229103375037937,
          "2025-10-31 00:00:00+00:00": 12.684607384804167,
          "2025-11-30 00:00:00+00:00": 13.841991229479277,
          "2025-12-31 00:00:00+00:00": -0.09390274814131772,
          "2026-01-31 00:00:00+00:00": 2.9285976601724144,
          "2026-02-28 00:00:00+00:00": 24.62987311275532,
          "2026-03-31 00:00:00+00:00": -2.6366850037607605
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.5027018964916863,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.413935728221958,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 11.01763104415312,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 9.644243065956914,
            "drawdown_pct": -1.95353166072062,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 7.890397408572028,
            "drawdown_pct": -3.5218618156866888,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.05043869445636,
            "drawdown_pct": -0.6960783616398292,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 18.220983207605116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 18.568738355386316,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 21.21304490760585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 28.554794348104565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 22.133153253107295,
            "drawdown_pct": -4.99525601325187,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 22.133153253107295,
            "drawdown_pct": -4.99525601325187,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.6536792469781,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.6536792469781,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.6536792469781,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 27.214620888071067,
            "drawdown_pct": -2.6321940405567124,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 27.983932977923104,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 27.983932977923104,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 27.983932977923104,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 20.576389628304355,
            "drawdown_pct": -7.712978062886677,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 25.080940330055796,
            "drawdown_pct": -4.265275152633096,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 25.080940330055796,
            "drawdown_pct": -4.265275152633096,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.937784568043156,
            "drawdown_pct": -1.3133152382883484,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.937784568043156,
            "drawdown_pct": -1.3133152382883484,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 31.216557078394374,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 31.216557078394374,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 31.216557078394374,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 31.216557078394374,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 39.34181811684067,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 39.13479325300909,
            "drawdown_pct": -0.14857339069451747,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 38.87362585131393,
            "drawdown_pct": -0.3360026959990936,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 40.36389662804703,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 40.36389662804703,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 46.3200830448269,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 46.3200830448269,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 53.87541224841746,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 53.0485040128512,
            "drawdown_pct": -0.5373881528462077,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 53.0485040128512,
            "drawdown_pct": -0.5373881528462077,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 57.70477996578788,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 64.40779494898743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 64.40779494898743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 64.40779494898743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 66.89049524233047,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 66.79659249418916,
            "drawdown_pct": -0.05626608513862319,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 69.72519015436157,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 75.7061544047468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 94.35506326711689,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 91.71837826335613,
            "drawdown_pct": -1.3566330402912996,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p80_cap5",
        "variant": "ridge_a10_H10_c8_p80_cap5",
        "gain_pct": 16.875738773619887,
        "max_drawdown_pct": 0.0,
        "capital_score": 16.875738773619887,
        "stability_score": 5.838965151935264,
        "n_trades": 19,
        "skipped_by_capacity": 20,
        "avg_trade_ret_pct": 0.8266831845841457,
        "median_trade_ret_pct": 0.5654076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9067341027621217,
        "top_asset_trade_share": 0.5789473684210527,
        "long_counts": {
          "XRP": 11,
          "ETH": 4,
          "BTC": 1,
          "SOL": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 19,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.090909090909091,
        "max_open_trades": 5,
        "avg_exposure": 0.8181818181818182,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 13.595886715439917,
          "2026-03-31 00:00:00+00:00": 1.3984613233331942
        }
      },
      "selection_score": 1035.277791270684
    },
    {
      "name": "ridge_a10_H10_c8_p90_cap1",
      "variant": {
        "name": "ridge_a10_H10_c8_p90_cap1",
        "threshold": 0.06565539266108743,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p90_cap1",
        "variant": "ridge_a10_H10_c8_p90_cap1",
        "gain_pct": 681.1391734601186,
        "max_drawdown_pct": -11.79956999687749,
        "capital_score": 663.4398184648024,
        "stability_score": 658.9398184648024,
        "n_trades": 60,
        "skipped_by_capacity": 597,
        "avg_trade_ret_pct": 3.600870302371014,
        "median_trade_ret_pct": 3.3855499917021104,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14215155905727123,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "SOL": 14,
          "ETH": 3,
          "XRP": 42,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 60,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 5.152240821192876,
          "2024-10-31 00:00:00+00:00": 7.122175198274405,
          "2024-11-30 00:00:00+00:00": 82.39365558896344,
          "2024-12-31 00:00:00+00:00": 94.4646902739789,
          "2025-01-31 00:00:00+00:00": 93.80694056549078,
          "2025-02-28 00:00:00+00:00": 86.08680497139903,
          "2025-03-31 00:00:00+00:00": 75.24899540988423,
          "2025-04-30 00:00:00+00:00": 35.391113380748834,
          "2025-07-31 00:00:00+00:00": 40.099018626579436,
          "2025-10-31 00:00:00+00:00": 36.525854318909296,
          "2025-11-30 00:00:00+00:00": 37.28961645750633,
          "2026-02-28 00:00:00+00:00": 98.36059094201892
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p90_cap1",
        "variant": "ridge_a10_H10_c8_p90_cap1",
        "gain_pct": 123.81730535885652,
        "max_drawdown_pct": -10.747643605950541,
        "capital_score": 107.6958399499307,
        "stability_score": 107.64411581199967,
        "n_trades": 29,
        "skipped_by_capacity": 170,
        "avg_trade_ret_pct": 2.9178695229843847,
        "median_trade_ret_pct": 3.230925877556148,
        "positive_month_rate": 1.0,
        "worst_month_pct": 3.1999102721526924,
        "month_gain_concentration": 0.2087928539404254,
        "top_asset_trade_share": 0.5517241379310345,
        "long_counts": {
          "XRP": 16,
          "SOL": 11,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 29,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 17.68554093536818,
          "2025-02-28 00:00:00+00:00": 26.34661690205536,
          "2025-03-31 00:00:00+00:00": 16.948306144323737,
          "2025-04-30 00:00:00+00:00": 3.1999102721526924,
          "2025-07-31 00:00:00+00:00": 16.05406975124214,
          "2025-10-31 00:00:00+00:00": 14.089416409040382,
          "2025-11-30 00:00:00+00:00": 6.0902305147906475,
          "2026-02-28 00:00:00+00:00": 26.498426771432435
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 9.508370400323443,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 17.68554093536818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.749724577887463,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.710373246416395,
            "drawdown_pct": -2.324556584178905,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.77952356587855,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.03215783742354,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 50.90699679662674,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 66.2591937137106,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 63.99764196384518,
            "drawdown_pct": -1.3602566566993546,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 63.99764196384518,
            "drawdown_pct": -1.3602566566993546,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 48.39024811123406,
            "drawdown_pct": -10.747643605950541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 57.516911977712596,
            "drawdown_pct": -5.258224547300372,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 57.516911977712596,
            "drawdown_pct": -5.258224547300372,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 60.98046398174728,
            "drawdown_pct": -3.1750001994193533,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 75.53771604524033,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 80.23444400514211,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 84.87187627513651,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 95.37605235237166,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 94.32386041418249,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 100.41409092897314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 106.88932165506625,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 126.91251770040557,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p90_cap1",
        "variant": "ridge_a10_H10_c8_p90_cap1",
        "gain_pct": 7.8528639762707115,
        "max_drawdown_pct": 0.0,
        "capital_score": 7.8528639762707115,
        "stability_score": -18.14713602372929,
        "n_trades": 2,
        "skipped_by_capacity": 8,
        "avg_trade_ret_pct": 3.9901632586229057,
        "median_trade_ret_pct": 3.9901632586229057,
        "positive_month_rate": 1.0,
        "worst_month_pct": 9.344381869024915,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 9.344381869024915
        }
      },
      "selection_score": 563.4398184648024
    },
    {
      "name": "ridge_a10_H10_c8_p90_cap2",
      "variant": {
        "name": "ridge_a10_H10_c8_p90_cap2",
        "threshold": 0.06565539266108743,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p90_cap2",
        "variant": "ridge_a10_H10_c8_p90_cap2",
        "gain_pct": 716.3366017267824,
        "max_drawdown_pct": -11.451495366599474,
        "capital_score": 699.1593586768832,
        "stability_score": 694.7110828148143,
        "n_trades": 116,
        "skipped_by_capacity": 541,
        "avg_trade_ret_pct": 1.8546816813194398,
        "median_trade_ret_pct": 1.7283063142351962,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.1444756946872382,
        "top_asset_trade_share": 0.6982758620689655,
        "long_counts": {
          "SOL": 26,
          "ETH": 7,
          "XRP": 81,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 116,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9318181818181819,
        "max_open_trades": 2,
        "avg_exposure": 0.9659090909090909,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 1.4938014052498119,
          "2024-10-31 00:00:00+00:00": 6.962081607370493,
          "2024-11-30 00:00:00+00:00": 85.3367659222774,
          "2024-12-31 00:00:00+00:00": 105.11861534566609,
          "2025-01-31 00:00:00+00:00": 101.72573746585414,
          "2025-02-28 00:00:00+00:00": 94.4646204184279,
          "2025-03-31 00:00:00+00:00": 82.9823960384607,
          "2025-04-30 00:00:00+00:00": 24.590063077130367,
          "2025-07-31 00:00:00+00:00": 42.41158001895428,
          "2025-10-31 00:00:00+00:00": 38.578237218040385,
          "2025-11-30 00:00:00+00:00": 39.39665935625146,
          "2026-02-28 00:00:00+00:00": 104.52629037250438
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p90_cap2",
        "variant": "ridge_a10_H10_c8_p90_cap2",
        "gain_pct": 89.25122117868563,
        "max_drawdown_pct": -11.138267371858069,
        "capital_score": 72.54382012089852,
        "stability_score": 71.64382012089852,
        "n_trades": 50,
        "skipped_by_capacity": 149,
        "avg_trade_ret_pct": 1.3095123882508533,
        "median_trade_ret_pct": 1.5670310639696772,
        "positive_month_rate": 1.0,
        "worst_month_pct": 1.3419596690797277,
        "month_gain_concentration": 0.2422704410080809,
        "top_asset_trade_share": 0.58,
        "long_counts": {
          "XRP": 29,
          "SOL": 16,
          "ETH": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 50,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.7924528301886793,
        "max_open_trades": 2,
        "avg_exposure": 0.8962264150943396,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 8.458903338007389,
          "2025-02-28 00:00:00+00:00": 17.772885982829237,
          "2025-03-31 00:00:00+00:00": 8.79030305047202,
          "2025-04-30 00:00:00+00:00": 1.3419596690797277,
          "2025-07-31 00:00:00+00:00": 13.52772728350405,
          "2025-10-31 00:00:00+00:00": 14.51964755257029,
          "2025-11-30 00:00:00+00:00": 5.193128909391618,
          "2026-02-28 00:00:00+00:00": 22.254808759005186
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.754185200161714,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 8.458903338007389,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 16.530237897728682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 15.175832238923192,
            "drawdown_pct": -1.162278292089447,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 18.363495271177896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 26.231789320836626,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 29.244391631816256,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 42.72719624127592,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 40.8971085820867,
            "drawdown_pct": -1.2822277094937884,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 40.8971085820867,
            "drawdown_pct": -1.2822277094937884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.829859511566042,
            "drawdown_pct": -11.138267371858069,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 30.730161285868178,
            "drawdown_pct": -8.405570396777872,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 30.730161285868178,
            "drawdown_pct": -8.405570396777872,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 35.022092371308645,
            "drawdown_pct": -5.398483311437041,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 45.960308266526994,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 49.89177932389242,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 56.29389287763078,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 65.30044898000114,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 64.41142687646271,
            "drawdown_pct": -0.5378219533124118,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.60455578585433,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 74.58038962668627,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 91.85936454485952,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p90_cap2",
        "variant": "ridge_a10_H10_c8_p90_cap2",
        "gain_pct": 8.868665927877103,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.868665927877103,
        "stability_score": -17.131334072122897,
        "n_trades": 4,
        "skipped_by_capacity": 6,
        "avg_trade_ret_pct": 2.1876712367817226,
        "median_trade_ret_pct": 1.9950816293114528,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.369026596915546,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.75,
        "max_open_trades": 2,
        "avg_exposure": 0.875,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.369026596915546
        }
      },
      "selection_score": 699.1593586768832
    },
    {
      "name": "ridge_a10_H10_c8_p90_cap3",
      "variant": {
        "name": "ridge_a10_H10_c8_p90_cap3",
        "threshold": 0.06565539266108743,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p90_cap3",
        "variant": "ridge_a10_H10_c8_p90_cap3",
        "gain_pct": 733.074837033812,
        "max_drawdown_pct": -11.341555128305458,
        "capital_score": 716.0625043413538,
        "stability_score": 711.5986489196671,
        "n_trades": 166,
        "skipped_by_capacity": 491,
        "avg_trade_ret_pct": 1.2979606253951603,
        "median_trade_ret_pct": 1.2178607810500737,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14937627198091663,
        "top_asset_trade_share": 0.6987951807228916,
        "long_counts": {
          "SOL": 38,
          "ETH": 9,
          "XRP": 116,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 166,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.787878787878788,
        "max_open_trades": 3,
        "avg_exposure": 0.9292929292929293,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 4.462028732940723,
          "2024-10-31 00:00:00+00:00": 7.415193021830788,
          "2024-11-30 00:00:00+00:00": 90.06508505286209,
          "2024-12-31 00:00:00+00:00": 111.21699263394203,
          "2025-01-31 00:00:00+00:00": 102.30240029958213,
          "2025-02-28 00:00:00+00:00": 99.482574708568,
          "2025-03-31 00:00:00+00:00": 84.01165777124561,
          "2025-04-30 00:00:00+00:00": 16.91113626545325,
          "2025-07-31 00:00:00+00:00": 43.59314539823481,
          "2025-10-31 00:00:00+00:00": 39.6337590746723,
          "2025-11-30 00:00:00+00:00": 40.478656160342325,
          "2026-02-28 00:00:00+00:00": 104.96993549962781
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p90_cap3",
        "variant": "ridge_a10_H10_c8_p90_cap3",
        "gain_pct": 61.21478049701952,
        "max_drawdown_pct": -11.264725152320809,
        "capital_score": 44.31769276853831,
        "stability_score": 42.72945747442066,
        "n_trades": 68,
        "skipped_by_capacity": 131,
        "avg_trade_ret_pct": 0.7203664945903153,
        "median_trade_ret_pct": 1.0155979957741985,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.802270727586972,
        "month_gain_concentration": 0.2712965517974652,
        "top_asset_trade_share": 0.6029411764705882,
        "long_counts": {
          "XRP": 41,
          "SOL": 19,
          "ETH": 4,
          "BNB": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 68,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.452830188679245,
        "max_open_trades": 3,
        "avg_exposure": 0.8176100628930818,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.1710473516892392,
          "2025-02-28 00:00:00+00:00": 13.37092966308147,
          "2025-03-31 00:00:00+00:00": 4.539462446070161,
          "2025-04-30 00:00:00+00:00": 0.802270727586972,
          "2025-07-31 00:00:00+00:00": 8.649430218098217,
          "2025-10-31 00:00:00+00:00": 11.202767502707133,
          "2025-11-30 00:00:00+00:00": 4.488658978776584,
          "2026-02-28 00:00:00+00:00": 17.209422620383748
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.1694568001078096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.1710473516892392,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 6.421582129373263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 5.596972164581359,
            "drawdown_pct": -0.7748521947263054,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.545341354793635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.54197701477071,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 18.396209513941884,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 30.854058738440926,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 29.209962931927606,
            "drawdown_pct": -1.2564347047114843,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 29.209962931927606,
            "drawdown_pct": -1.2564347047114843,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 16.11370867089913,
            "drawdown_pct": -11.264725152320809,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 18.494212787169474,
            "drawdown_pct": -9.445519741941721,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 18.494212787169474,
            "drawdown_pct": -9.445519741941721,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 21.08143946084087,
            "drawdown_pct": -7.46833485473627,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 28.235540080645507,
            "drawdown_pct": -2.00109853912096,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 30.53314040652606,
            "drawdown_pct": -0.24524904692206917,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 35.39031728886181,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 42.50197119978532,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 41.73590790923319,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 46.224566888009775,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 49.077699994029786,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 63.43398950839352,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p90_cap3",
        "variant": "ridge_a10_H10_c8_p90_cap3",
        "gain_pct": 10.762646758545287,
        "max_drawdown_pct": 0.0,
        "capital_score": 10.762646758545287,
        "stability_score": -10.237353241454713,
        "n_trades": 6,
        "skipped_by_capacity": 4,
        "avg_trade_ret_pct": 1.7340837283366206,
        "median_trade_ret_pct": 2.028570059340539,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.733309762224167,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8333333333333334,
        "long_counts": {
          "XRP": 5,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 6,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5,
        "max_open_trades": 3,
        "avg_exposure": 0.8333333333333333,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.733309762224167
        }
      },
      "selection_score": 716.0625043413538
    },
    {
      "name": "ridge_a10_H10_c8_p90_cap5",
      "variant": {
        "name": "ridge_a10_H10_c8_p90_cap5",
        "threshold": 0.06565539266108743,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a10_H10_c8_p90_cap5",
        "variant": "ridge_a10_H10_c8_p90_cap5",
        "gain_pct": 769.2526733896094,
        "max_drawdown_pct": -8.235321226960169,
        "capital_score": 756.8996915491691,
        "stability_score": 753.0090665491691,
        "n_trades": 256,
        "skipped_by_capacity": 401,
        "avg_trade_ret_pct": 0.8527291623944638,
        "median_trade_ret_pct": 0.7435086517906879,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.16251386988968125,
        "top_asset_trade_share": 0.6796875,
        "long_counts": {
          "SOL": 65,
          "BNB": 1,
          "ETH": 13,
          "XRP": 174,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 256,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.356060606060606,
        "max_open_trades": 5,
        "avg_exposure": 0.8712121212121212,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 6.752530083642981,
          "2024-10-31 00:00:00+00:00": 8.444340654917184,
          "2024-11-30 00:00:00+00:00": 90.21323227279254,
          "2024-12-31 00:00:00+00:00": 115.32104888077373,
          "2025-01-31 00:00:00+00:00": 101.3196604270284,
          "2025-02-28 00:00:00+00:00": 124.57968902428411,
          "2025-03-31 00:00:00+00:00": 76.83127393001416,
          "2025-04-30 00:00:00+00:00": 10.524881932814765,
          "2025-07-31 00:00:00+00:00": 46.69309098671556,
          "2025-10-31 00:00:00+00:00": 41.07272656959401,
          "2025-11-30 00:00:00+00:00": 41.95170639792116,
          "2026-02-28 00:00:00+00:00": 102.87462905952827
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c8_p90_cap5",
        "variant": "ridge_a10_H10_c8_p90_cap5",
        "gain_pct": 55.39808148895696,
        "max_drawdown_pct": -8.721654370524568,
        "capital_score": 42.315599933170105,
        "stability_score": 41.315599933170105,
        "n_trades": 96,
        "skipped_by_capacity": 103,
        "avg_trade_ret_pct": 0.46634096877732945,
        "median_trade_ret_pct": 0.6268124255878709,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4709859261489129,
        "month_gain_concentration": 0.2991858435003523,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 56,
          "SOL": 25,
          "ETH": 7,
          "BTC": 1,
          "BNB": 7
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 96,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.5849056603773586,
        "max_open_trades": 5,
        "avg_exposure": 0.7169811320754715,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4728320514690836,
          "2025-02-28 00:00:00+00:00": 15.344185464069284,
          "2025-03-31 00:00:00+00:00": 1.654324603247204,
          "2025-04-30 00:00:00+00:00": 0.4709859261489129,
          "2025-07-31 00:00:00+00:00": 5.790864127334501,
          "2025-10-31 00:00:00+00:00": 11.27206930391256,
          "2025-11-30 00:00:00+00:00": 4.316261010413484,
          "2026-02-28 00:00:00+00:00": 17.213734346669725
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.9016740800646943,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4728320514690836,
            "drawdown_pct": -0.4208390416222896,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.0415804674099007,
            "drawdown_pct": -5.142030676019305,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.0415804674099007,
            "drawdown_pct": -5.142030676019305,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 4.2696703737683634,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 6.529051482947324,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.708391671499797,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.817017515538367,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 17.932182621958887,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 25.278186979053984,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 26.55935330835706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 26.55935330835706,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.521283939231111,
            "drawdown_pct": -8.721654370524568,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 16.942299054923964,
            "drawdown_pct": -7.598849079136416,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.942299054923964,
            "drawdown_pct": -7.598849079136416,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 18.47134211878557,
            "drawdown_pct": -6.390686249688205,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 23.408875623295202,
            "drawdown_pct": -2.489328210603159,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 24.733192172268986,
            "drawdown_pct": -1.4429286246736006,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 30.026106965784408,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 36.74008650123079,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 36.005261476181545,
            "drawdown_pct": -0.5373881528461855,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 40.32152248659503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 41.96115726335145,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 57.535256833264754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c8_p90_cap5",
        "variant": "ridge_a10_H10_c8_p90_cap5",
        "gain_pct": 8.559571287803536,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.559571287803536,
        "stability_score": -6.1904287121964625,
        "n_trades": 8,
        "skipped_by_capacity": 2,
        "avg_trade_ret_pct": 1.036199482885801,
        "median_trade_ret_pct": 1.0234472205372862,
        "positive_month_rate": 1.0,
        "worst_month_pct": 8.540631996014753,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 2,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.0,
        "max_open_trades": 5,
        "avg_exposure": 0.6,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 8.540631996014753
        }
      },
      "selection_score": 756.8996915491691
    },
    {
      "name": "ridge_a100_H10_c8_p70_cap1",
      "variant": {
        "name": "ridge_a100_H10_c8_p70_cap1",
        "threshold": 0.03359261320213315,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p70_cap1",
        "variant": "ridge_a100_H10_c8_p70_cap1",
        "gain_pct": 2152.6365009502983,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 2134.937145954982,
        "stability_score": 2109.1678247854247,
        "n_trades": 98,
        "skipped_by_capacity": 1873,
        "avg_trade_ret_pct": 3.332274529705452,
        "median_trade_ret_pct": 2.763282723610374,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.208096679761184,
        "month_gain_concentration": 0.18434233613539608,
        "top_asset_trade_share": 0.6020408163265306,
        "long_counts": {
          "SOL": 29,
          "XRP": 59,
          "ETH": 6,
          "BTC": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 98,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.721526552720235,
          "2024-10-31 00:00:00+00:00": 5.437229735871142,
          "2024-11-30 00:00:00+00:00": 127.16860234952654,
          "2024-12-31 00:00:00+00:00": 267.0507922787984,
          "2025-01-31 00:00:00+00:00": 155.6596927329249,
          "2025-02-28 00:00:00+00:00": 329.5789759977673,
          "2025-03-31 00:00:00+00:00": 233.11599801368334,
          "2025-04-30 00:00:00+00:00": 395.9657780281841,
          "2025-05-31 00:00:00+00:00": 48.102741127609534,
          "2025-07-31 00:00:00+00:00": -7.999192162591271,
          "2025-08-31 00:00:00+00:00": 99.94200808775622,
          "2025-10-31 00:00:00+00:00": -14.324507851494673,
          "2025-11-30 00:00:00+00:00": 179.9099772654081,
          "2026-01-31 00:00:00+00:00": -11.087861688744397,
          "2026-02-28 00:00:00+00:00": 264.3382153643213,
          "2026-03-31 00:00:00+00:00": -30.208096679761184
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p70_cap1",
        "variant": "ridge_a100_H10_c8_p70_cap1",
        "gain_pct": 200.11075431753568,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 182.41139932221944,
        "stability_score": 182.41139932221944,
        "n_trades": 54,
        "skipped_by_capacity": 646,
        "avg_trade_ret_pct": 2.13436195359234,
        "median_trade_ret_pct": 2.334028709077204,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7137779695117388,
        "month_gain_concentration": 0.20139887545225418,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 27,
          "SOL": 17,
          "ETH": 6,
          "BTC": 1,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 54,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 29.389402873486546,
          "2025-02-28 00:00:00+00:00": 39.3098466811345,
          "2025-03-31 00:00:00+00:00": 25.865967818231383,
          "2025-04-30 00:00:00+00:00": 12.843093151578529,
          "2025-05-31 00:00:00+00:00": 4.306984870869627,
          "2025-07-31 00:00:00+00:00": 4.644124382298088,
          "2025-08-31 00:00:00+00:00": 3.796639130446124,
          "2025-10-31 00:00:00+00:00": 12.441756351418292,
          "2025-11-30 00:00:00+00:00": 19.28875778261755,
          "2025-12-31 00:00:00+00:00": 0.7137779695117388,
          "2026-01-31 00:00:00+00:00": 5.863880106996561,
          "2026-02-28 00:00:00+00:00": 31.029107433842057,
          "2026-03-31 00:00:00+00:00": 5.690704024081413
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.5135094824584314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.260873674421276,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 25.090494999873144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 25.762778803275765,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 29.389402873486546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 34.11675125077977,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 18.291551309405932,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 31.47287346161309,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 28.177441094249843,
            "drawdown_pct": -4.428462590347304,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 28.177441094249843,
            "drawdown_pct": -4.428462590347304,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 35.272445013085246,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 35.272445013085246,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 39.987443261035054,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 45.70074185740296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 50.45879233540458,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 51.56444204413597,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 51.56444204413597,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 56.632228536174495,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 68.69924955462105,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 70.48450474078334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 87.82837708368936,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 87.82837708368936,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 83.52377928102152,
            "drawdown_pct": -2.291771812919341,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 89.58615507179425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 95.81508958673783,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 88.28480105997247,
            "drawdown_pct": -3.8456119713030423,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 88.28480105997247,
            "drawdown_pct": -3.8456119713030423,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 92.33954457982665,
            "drawdown_pct": -1.774911736499074,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 79.3483517543306,
            "drawdown_pct": -8.409330387744795,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 90.37907744084433,
            "drawdown_pct": -2.7760946091366367,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 90.37907744084433,
            "drawdown_pct": -2.7760946091366367,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 94.56521737285243,
            "drawdown_pct": -0.6382920828641003,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 94.56521737285243,
            "drawdown_pct": -0.6382920828641003,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 98.96955006327013,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 105.73390849887926,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 105.73390849887926,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 104.20557928055356,
            "drawdown_pct": -0.7428669534725874,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 101.253105199884,
            "drawdown_pct": -2.177960517879174,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 107.40831052443096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 111.71529539530059,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 110.72131135794177,
            "drawdown_pct": -0.469490896018121,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 116.35941977759867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 116.35941977759867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 121.92634767937795,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 120.1560589080448,
            "drawdown_pct": -0.7976920225311601,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 118.73413486949568,
            "drawdown_pct": -1.438410915721522,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 118.73413486949568,
            "drawdown_pct": -1.438410915721522,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 116.21046623317315,
            "drawdown_pct": -2.5755758637828197,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 116.21046623317315,
            "drawdown_pct": -2.5755758637828197,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 128.49525964152454,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 127.26470519426996,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 127.26470519426996,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 132.5978152594631,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 137.70102381744846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 145.5744633278808,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 151.88657304208064,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 152.60035101159238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 158.46423111858894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 167.44654544580038,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 168.26307449839686,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 193.49679732362415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 193.49679732362415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 189.493338552431,
            "drawdown_pct": -1.3640553517791032,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 195.1840425765124,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p70_cap1",
        "variant": "ridge_a100_H10_c8_p70_cap1",
        "gain_pct": 16.643766426278845,
        "max_drawdown_pct": -1.364055351779092,
        "capital_score": 14.597683398610206,
        "stability_score": -5.402316601389794,
        "n_trades": 5,
        "skipped_by_capacity": 51,
        "avg_trade_ret_pct": 3.1862171048242445,
        "median_trade_ret_pct": 2.7445116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5866079932734323,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.31551397119432,
          "2026-03-31 00:00:00+00:00": -1.5866079932734323
        }
      },
      "selection_score": 2134.937145954982
    },
    {
      "name": "ridge_a100_H10_c8_p70_cap2",
      "variant": {
        "name": "ridge_a100_H10_c8_p70_cap2",
        "threshold": 0.03359261320213315,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p70_cap2",
        "variant": "ridge_a100_H10_c8_p70_cap2",
        "gain_pct": 2170.3701742068533,
        "max_drawdown_pct": -11.451495366599474,
        "capital_score": 2153.1929311569543,
        "stability_score": 2126.9489559620306,
        "n_trades": 188,
        "skipped_by_capacity": 1783,
        "avg_trade_ret_pct": 1.7002648342404638,
        "median_trade_ret_pct": 1.4564806098937189,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.552485833221454,
        "month_gain_concentration": 0.17568848194938724,
        "top_asset_trade_share": 0.6063829787234043,
        "long_counts": {
          "SOL": 54,
          "XRP": 114,
          "BTC": 4,
          "ETH": 13,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 188,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.942084942084942,
        "max_open_trades": 2,
        "avg_exposure": 0.971042471042471,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 46.034968679605015,
          "2024-10-31 00:00:00+00:00": 5.171122962568944,
          "2024-11-30 00:00:00+00:00": 127.32515614649057,
          "2024-12-31 00:00:00+00:00": 261.6105558108821,
          "2025-01-31 00:00:00+00:00": 162.32843481304417,
          "2025-02-28 00:00:00+00:00": 335.0135627669706,
          "2025-03-31 00:00:00+00:00": 243.37709999405683,
          "2025-04-30 00:00:00+00:00": 381.23214463764816,
          "2025-05-31 00:00:00+00:00": 48.63924765234492,
          "2025-07-31 00:00:00+00:00": -4.015866186526637,
          "2025-08-31 00:00:00+00:00": 102.06723718334797,
          "2025-10-31 00:00:00+00:00": -7.214261498123733,
          "2025-11-30 00:00:00+00:00": 184.29200320791392,
          "2026-01-31 00:00:00+00:00": -11.210679102481436,
          "2026-02-28 00:00:00+00:00": 272.84095350917846,
          "2026-03-31 00:00:00+00:00": -30.552485833221454
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p70_cap2",
        "variant": "ridge_a100_H10_c8_p70_cap2",
        "gain_pct": 200.78551868674975,
        "max_drawdown_pct": -7.8485607421914345,
        "capital_score": 189.0126775734626,
        "stability_score": 189.0126775734626,
        "n_trades": 102,
        "skipped_by_capacity": 598,
        "avg_trade_ret_pct": 1.1026953203987655,
        "median_trade_ret_pct": 1.215040185308412,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7091586366762215,
        "month_gain_concentration": 0.1940781668331856,
        "top_asset_trade_share": 0.47058823529411764,
        "long_counts": {
          "XRP": 48,
          "SOL": 33,
          "ETH": 13,
          "BNB": 6,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 102,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9098360655737705,
        "max_open_trades": 2,
        "avg_exposure": 0.9549180327868853,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.98752086600659,
          "2025-02-28 00:00:00+00:00": 38.0058356403223,
          "2025-03-31 00:00:00+00:00": 26.908060381037956,
          "2025-04-30 00:00:00+00:00": 13.579741154644381,
          "2025-05-31 00:00:00+00:00": 4.247370743156523,
          "2025-07-31 00:00:00+00:00": 4.594850830810202,
          "2025-08-31 00:00:00+00:00": 7.306160538964036,
          "2025-10-31 00:00:00+00:00": 13.705657409743026,
          "2025-11-30 00:00:00+00:00": 16.744085479201516,
          "2025-12-31 00:00:00+00:00": 0.7091586366762215,
          "2026-01-31 00:00:00+00:00": 5.855605344521393,
          "2026-02-28 00:00:00+00:00": 31.49007165647015,
          "2026-03-31 00:00:00+00:00": 7.6933474392955645
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2567547412292157,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 8.733743148200091,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 10.40769440424944,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.831424808443458,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.880797632769543,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 23.211001658254432,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.98752086600659,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 27.270781862757403,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.629480520015136,
            "drawdown_pct": -7.575423990982455,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 28.65712507738732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 25.452478971215328,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 25.452478971215328,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.41348109320225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 30.41348109320225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 34.6497418978542,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 39.522064124718696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.1155395253993,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 45.1765212904553,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 45.1765212904553,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.12627433518304,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 62.993356506328894,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 64.72279259024478,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 81.90671213350555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 81.90671213350555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 77.76171072190951,
            "drawdown_pct": -2.2786412678130974,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 83.68224003163687,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 89.76676917433889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 82.5392358260251,
            "drawdown_pct": -3.808640142718478,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 82.5392358260251,
            "drawdown_pct": -3.808640142718478,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 87.3107084754823,
            "drawdown_pct": -1.2942522600467576,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 74.8728090271967,
            "drawdown_pct": -7.8485607421914345,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 85.7936460402234,
            "drawdown_pct": -2.0936875046154046,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 85.7936460402234,
            "drawdown_pct": -2.0936875046154046,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 89.90141688736685,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 89.90141688736685,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 94.22450361957024,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 100.88366575565772,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 100.88366575565772,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 100.2757282732604,
            "drawdown_pct": -0.3026316152238917,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 97.39053991434176,
            "drawdown_pct": -1.7388799772126706,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 103.48115804201123,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 107.72852878516775,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 106.75440695098285,
            "drawdown_pct": -0.4689398417645041,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 112.32337961597796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 112.32337961597796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 121.39204497271987,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 119.62954015494199,
            "drawdown_pct": -0.7961012411241142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 118.21330720575406,
            "drawdown_pct": -1.4357958378122815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 118.21330720575406,
            "drawdown_pct": -1.4357958378122815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 115.70290961668036,
            "drawdown_pct": -2.569710829827032,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 115.70290961668036,
            "drawdown_pct": -2.569710829827032,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 128.13295612162094,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 126.90600700085827,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 126.90600700085827,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 133.33519756468502,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 135.8948909473658,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 143.77320854904585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 150.07928304388653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 150.78844168056276,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 156.64404702508415,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 165.64059535372104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 166.45222975976657,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 192.10500502789978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 192.10500502789978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 188.1341186815543,
            "drawdown_pct": -1.3594037342722687,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 195.82746612084986,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p70_cap2",
        "variant": "ridge_a100_H10_c8_p70_cap2",
        "gain_pct": 18.281179952075604,
        "max_drawdown_pct": -1.3594037342722909,
        "capital_score": 16.242074350667167,
        "stability_score": 2.2420743506671688,
        "n_trades": 10,
        "skipped_by_capacity": 46,
        "avg_trade_ret_pct": 1.7080730211529191,
        "median_trade_ret_pct": 1.467412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5917157985415287,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 17.089261888308798,
          "2026-03-31 00:00:00+00:00": -1.5917157985415287
        }
      },
      "selection_score": 2153.1929311569543
    },
    {
      "name": "ridge_a100_H10_c8_p70_cap3",
      "variant": {
        "name": "ridge_a100_H10_c8_p70_cap3",
        "threshold": 0.03359261320213315,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p70_cap3",
        "variant": "ridge_a100_H10_c8_p70_cap3",
        "gain_pct": 1991.981253218008,
        "max_drawdown_pct": -11.341555128305448,
        "capital_score": 1974.96892052555,
        "stability_score": 1950.9066634487428,
        "n_trades": 271,
        "skipped_by_capacity": 1700,
        "avg_trade_ret_pct": 1.1396150830920992,
        "median_trade_ret_pct": 0.9684278940793202,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -28.185873312969534,
        "month_gain_concentration": 0.17542632171976544,
        "top_asset_trade_share": 0.6125461254612546,
        "long_counts": {
          "SOL": 78,
          "XRP": 166,
          "BTC": 6,
          "BNB": 5,
          "ETH": 16
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 271,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.833976833976834,
        "max_open_trades": 3,
        "avg_exposure": 0.9446589446589446,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.84519409712419,
          "2024-10-31 00:00:00+00:00": 4.878729819616808,
          "2024-11-30 00:00:00+00:00": 126.3692232705032,
          "2024-12-31 00:00:00+00:00": 232.13369125139286,
          "2025-01-31 00:00:00+00:00": 142.75082538400295,
          "2025-02-28 00:00:00+00:00": 309.8985822907632,
          "2025-03-31 00:00:00+00:00": 249.3004189806037,
          "2025-04-30 00:00:00+00:00": 349.6471923570125,
          "2025-05-31 00:00:00+00:00": 30.299440122545093,
          "2025-07-31 00:00:00+00:00": -2.4837997968968466,
          "2025-08-31 00:00:00+00:00": 95.237314932353,
          "2025-10-31 00:00:00+00:00": -4.466747774443547,
          "2025-11-30 00:00:00+00:00": 172.13098725867894,
          "2026-01-31 00:00:00+00:00": -10.424918357662136,
          "2026-02-28 00:00:00+00:00": 238.6368482886894,
          "2026-03-31 00:00:00+00:00": -28.185873312969534
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p70_cap3",
        "variant": "ridge_a100_H10_c8_p70_cap3",
        "gain_pct": 183.310018307983,
        "max_drawdown_pct": -8.59213979749197,
        "capital_score": 170.42180861174504,
        "stability_score": 170.42180861174504,
        "n_trades": 144,
        "skipped_by_capacity": 556,
        "avg_trade_ret_pct": 0.7335254993315051,
        "median_trade_ret_pct": 0.8142649739455267,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.675598960638581,
        "month_gain_concentration": 0.2021067255932416,
        "top_asset_trade_share": 0.4375,
        "long_counts": {
          "XRP": 63,
          "SOL": 48,
          "ETH": 20,
          "BNB": 9,
          "BTC": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 144,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.737704918032787,
        "max_open_trades": 3,
        "avg_exposure": 0.912568306010929,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 23.957698157855432,
          "2025-02-28 00:00:00+00:00": 35.83254413095345,
          "2025-03-31 00:00:00+00:00": 24.48421716284122,
          "2025-04-30 00:00:00+00:00": 13.511554074811414,
          "2025-05-31 00:00:00+00:00": 4.135665916026625,
          "2025-07-31 00:00:00+00:00": 2.975014452463995,
          "2025-08-31 00:00:00+00:00": 5.93350768441158,
          "2025-10-31 00:00:00+00:00": 12.3311749108953,
          "2025-11-30 00:00:00+00:00": 15.027069820961941,
          "2025-12-31 00:00:00+00:00": 0.675598960638581,
          "2026-01-31 00:00:00+00:00": 5.588022692061628,
          "2026-02-28 00:00:00+00:00": 28.003224777319446,
          "2026-03-31 00:00:00+00:00": 4.8398666641408
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8378364941528105,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 7.356137004907211,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.457965717753865,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.345548074408285,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.557961135915036,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.777518804278273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 23.957698157855432,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 25.467330348812396,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.687692228103288,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 29.633199704247914,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 26.48828501806223,
            "drawdown_pct": -2.4260102299107467,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 26.48828501806223,
            "drawdown_pct": -2.4260102299107467,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 31.804562372756465,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 31.804562372756465,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 36.21575666273225,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 39.492197447573915,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.78582244364367,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 45.54653047393742,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 45.54653047393742,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.88900856341667,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 59.790242288808884,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 60.91954783002586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 77.85177456575556,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 77.85177456575556,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 73.806875649256,
            "drawdown_pct": -2.274309000500907,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 79.6117220243446,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 85.57780723585469,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 78.53229598273242,
            "drawdown_pct": -3.7965268358667426,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 78.53229598273242,
            "drawdown_pct": -3.7965268358667426,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 81.62615733251982,
            "drawdown_pct": -2.1293763312509872,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 69.63270260502989,
            "drawdown_pct": -8.59213979749197,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 80.28122967955792,
            "drawdown_pct": -2.854100732834519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 80.28122967955792,
            "drawdown_pct": -2.854100732834519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 84.2744594516501,
            "drawdown_pct": -0.7023187759450877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 84.2744594516501,
            "drawdown_pct": -0.7023187759450877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 88.47739712342656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 94.95794222937576,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 94.95794222937576,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 94.6542925896982,
            "drawdown_pct": -0.1557513565260682,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 91.85345623549901,
            "drawdown_pct": -1.5923875469634363,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 97.78601352646152,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 101.92167944248814,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 101.29017137355459,
            "drawdown_pct": -0.3127490176771386,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 104.89669389495214,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 104.89669389495214,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 112.52096066547585,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 110.83020157936372,
            "drawdown_pct": -0.7955728605864576,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 109.47144002968827,
            "drawdown_pct": -1.4349269955483468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 109.47144002968827,
            "drawdown_pct": -1.4349269955483468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 107.06392351122904,
            "drawdown_pct": -2.5677642041326054,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 107.06392351122904,
            "drawdown_pct": -2.5677642041326054,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 117.94038049085196,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 116.7687747676656,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 116.7687747676656,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 123.16137649025902,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 124.79343401846708,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 132.3218451501083,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 138.18844631122096,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 138.86404527185954,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 144.45206796392117,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 153.04621464089996,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 151.772872904212,
            "drawdown_pct": -0.5032052103585039,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 176.20578781981743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 176.20578781981743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 172.4552927412406,
            "drawdown_pct": -1.3578625951978451,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 177.2951594053814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p70_cap3",
        "variant": "ridge_a100_H10_c8_p70_cap3",
        "gain_pct": 18.145624931994078,
        "max_drawdown_pct": 0.0,
        "capital_score": 18.145624931994078,
        "stability_score": 5.0517341849326645,
        "n_trades": 14,
        "skipped_by_capacity": 42,
        "avg_trade_ret_pct": 1.204464036822427,
        "median_trade_ret_pct": 0.9285916847808965,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9980413441681709,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8333333333333335,
        "max_open_trades": 3,
        "avg_exposure": 0.9444444444444443,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.606687124253625,
          "2026-03-31 00:00:00+00:00": 0.03062811869475013
        }
      },
      "selection_score": 1974.96892052555
    },
    {
      "name": "ridge_a100_H10_c8_p70_cap5",
      "variant": {
        "name": "ridge_a100_H10_c8_p70_cap5",
        "threshold": 0.03359261320213315,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p70_cap5",
        "variant": "ridge_a100_H10_c8_p70_cap5",
        "gain_pct": 1612.9457257138906,
        "max_drawdown_pct": -11.255639059853117,
        "capital_score": 1596.062267124111,
        "stability_score": 1592.415172551172,
        "n_trades": 416,
        "skipped_by_capacity": 1555,
        "avg_trade_ret_pct": 0.6892667155754105,
        "median_trade_ret_pct": 0.610006010400939,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -8.40670995755454,
        "month_gain_concentration": 0.16398528630435577,
        "top_asset_trade_share": 0.5913461538461539,
        "long_counts": {
          "SOL": 124,
          "XRP": 246,
          "BTC": 11,
          "BNB": 9,
          "ETH": 26
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 416,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.455598455598456,
        "max_open_trades": 5,
        "avg_exposure": 0.8911196911196911,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 28.600627611316014,
          "2024-10-31 00:00:00+00:00": 3.726471240639114,
          "2024-11-30 00:00:00+00:00": 112.9275197647047,
          "2024-12-31 00:00:00+00:00": 180.2318348823251,
          "2025-01-31 00:00:00+00:00": 113.36418002757182,
          "2025-02-28 00:00:00+00:00": 252.94477727654305,
          "2025-03-31 00:00:00+00:00": 210.2254847716797,
          "2025-04-30 00:00:00+00:00": 261.10727438062224,
          "2025-05-31 00:00:00+00:00": 14.721629251730747,
          "2025-07-31 00:00:00+00:00": -1.1998776944126348,
          "2025-08-31 00:00:00+00:00": 77.03401385245729,
          "2025-10-31 00:00:00+00:00": -2.159645752538836,
          "2025-11-30 00:00:00+00:00": 138.90343066614423,
          "2026-01-31 00:00:00+00:00": -8.40670995755454,
          "2026-02-28 00:00:00+00:00": 193.3038557652235,
          "2026-03-31 00:00:00+00:00": 5.169281089825745
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p70_cap5",
        "variant": "ridge_a100_H10_c8_p70_cap5",
        "gain_pct": 119.92262160778003,
        "max_drawdown_pct": -9.70871604216159,
        "capital_score": 105.35954754453765,
        "stability_score": 105.35954754453765,
        "n_trades": 213,
        "skipped_by_capacity": 487,
        "avg_trade_ret_pct": 0.3740576583429338,
        "median_trade_ret_pct": 0.47441607224294735,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.3133975034055254,
        "month_gain_concentration": 0.21311417736486782,
        "top_asset_trade_share": 0.4413145539906103,
        "long_counts": {
          "XRP": 94,
          "SOL": 63,
          "ETH": 33,
          "BTC": 9,
          "BNB": 14
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.122950819672131,
        "max_open_trades": 5,
        "avg_exposure": 0.8245901639344262,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 14.990041928918501,
          "2025-02-28 00:00:00+00:00": 18.016317293154444,
          "2025-03-31 00:00:00+00:00": 10.135082475149318,
          "2025-04-30 00:00:00+00:00": 9.676709232738403,
          "2025-05-31 00:00:00+00:00": 1.9119468845856318,
          "2025-07-31 00:00:00+00:00": 1.3668707948412475,
          "2025-08-31 00:00:00+00:00": 5.846237363875019,
          "2025-10-31 00:00:00+00:00": 10.944285616821162,
          "2025-11-30 00:00:00+00:00": 11.333896000654107,
          "2025-12-31 00:00:00+00:00": 0.3133975034055254,
          "2026-01-31 00:00:00+00:00": 3.240043047437865,
          "2026-02-28 00:00:00+00:00": 24.383682628426925,
          "2026-03-31 00:00:00+00:00": 2.25754042812585
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.5027018964916863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.3701210435237385,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 5.012830436786146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.6917730267866915,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 6.199838689478,
            "drawdown_pct": -1.3853744769691922,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 14.207891508771354,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 14.330650821031156,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 14.990041928918501,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 15.830293102577713,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 4.584658854444953,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 15.250594812824076,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 13.567511654113346,
            "drawdown_pct": -1.953531660720631,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 11.750910238800031,
            "drawdown_pct": -3.521861815686711,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 15.024023496066661,
            "drawdown_pct": -0.6960783616398403,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 15.024023496066661,
            "drawdown_pct": -0.6960783616398403,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 18.77951636689869,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 20.489743251729323,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 24.928290768045983,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 25.348000352137277,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 25.348000352137277,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 29.000431587951994,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 33.006359222072945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 33.569969491455566,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 41.94334082442569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 41.94334082442569,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 37.49289598585864,
            "drawdown_pct": -3.135367120935917,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 41.41264097201204,
            "drawdown_pct": -0.37388147223481605,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 46.78471654008845,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 41.503057066393325,
            "drawdown_pct": -3.5982352919233573,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 41.503057066393325,
            "drawdown_pct": -3.5982352919233573,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 42.97192025152415,
            "drawdown_pct": -2.5975431083269385,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 34.696891719434234,
            "drawdown_pct": -8.23507045255144,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 39.72896292333172,
            "drawdown_pct": -4.806872120660966,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 39.72896292333172,
            "drawdown_pct": -4.806872120660966,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 43.14144169722226,
            "drawdown_pct": -2.4820532605458134,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 43.14144169722226,
            "drawdown_pct": -2.4820532605458134,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 45.671241503574066,
            "drawdown_pct": -0.7585769573021484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.297604378147696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 51.297604378147696,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 51.23981104858615,
            "drawdown_pct": -0.0381984432596183,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 47.93817183627468,
            "drawdown_pct": -2.2204135720989893,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 52.818150929960666,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 54.7300978145463,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 54.43965674897632,
            "drawdown_pct": -0.18770818972666525,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 56.096968609387545,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 56.096968609387545,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 62.72077050194608,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 61.943205973262565,
            "drawdown_pct": -0.4778520445084866,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 60.89996053493806,
            "drawdown_pct": -1.1189782111966085,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 60.89996053493806,
            "drawdown_pct": -1.1189782111966085,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 60.406755789905134,
            "drawdown_pct": -1.4220770371863978,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 60.406755789905134,
            "drawdown_pct": -1.4220770371863978,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 68.68945917042058,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 67.78294200173838,
            "drawdown_pct": -0.5373881528462188,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 67.78294200173838,
            "drawdown_pct": -0.5373881528462188,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 72.88749159008373,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 73.64612376009526,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 73.64612376009526,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 73.64612376009526,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 79.7839261040121,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 79.7839261040121,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 79.7839261040121,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 84.22138759073783,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 84.53478509414336,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 87.77482814158122,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 94.39184552842653,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 95.93899928004006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 95.93899928004006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 95.93899928004006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 95.93899928004006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 95.93899928004006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 95.93899928004006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 95.93899928004006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 95.93899928004006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 115.07630701278191,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 115.07630701278191,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 112.15851077000815,
            "drawdown_pct": -1.3566330402912996,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 114.416051198134,
            "drawdown_pct": -0.3069867731217202,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p70_cap5",
        "variant": "ridge_a100_H10_c8_p70_cap5",
        "gain_pct": 15.606764873735457,
        "max_drawdown_pct": 0.0,
        "capital_score": 15.606764873735457,
        "stability_score": 5.7424279913484035,
        "n_trades": 20,
        "skipped_by_capacity": 36,
        "avg_trade_ret_pct": 0.7297424073075437,
        "median_trade_ret_pct": 0.5654076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8945734752954821,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 10,
          "ETH": 5,
          "BTC": 1,
          "SOL": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 20,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.333333333333333,
        "max_open_trades": 5,
        "avg_exposure": 0.8666666666666667,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 11.664589323837987,
          "2026-03-31 00:00:00+00:00": 1.374685421017503
        }
      },
      "selection_score": 1596.062267124111
    },
    {
      "name": "ridge_a100_H10_c8_p80_cap1",
      "variant": {
        "name": "ridge_a100_H10_c8_p80_cap1",
        "threshold": 0.051936388813651105,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p80_cap1",
        "variant": "ridge_a100_H10_c8_p80_cap1",
        "gain_pct": 1392.8370454580627,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 1375.1376904627464,
        "stability_score": 1358.1005135478315,
        "n_trades": 83,
        "skipped_by_capacity": 1231,
        "avg_trade_ret_pct": 3.409028382528867,
        "median_trade_ret_pct": 3.125137365567101,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -20.019104625758246,
        "month_gain_concentration": 0.149445934224803,
        "top_asset_trade_share": 0.6506024096385542,
        "long_counts": {
          "SOL": 23,
          "ETH": 4,
          "XRP": 54,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 83,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 19.89753205190148,
          "2024-10-31 00:00:00+00:00": 9.012172622110754,
          "2024-11-30 00:00:00+00:00": 129.0117939483123,
          "2024-12-31 00:00:00+00:00": 181.06780099073808,
          "2025-01-31 00:00:00+00:00": 125.32094446775511,
          "2025-02-28 00:00:00+00:00": 205.16678358398394,
          "2025-03-31 00:00:00+00:00": 148.93698636936074,
          "2025-04-30 00:00:00+00:00": 72.48438522475408,
          "2025-05-31 00:00:00+00:00": 123.67371663530503,
          "2025-07-31 00:00:00+00:00": -5.2328146136799205,
          "2025-10-31 00:00:00+00:00": 65.37885199056313,
          "2025-11-30 00:00:00+00:00": 66.7459354646237,
          "2026-01-31 00:00:00+00:00": 50.973970576953434,
          "2026-02-28 00:00:00+00:00": 175.17867630203887,
          "2026-03-31 00:00:00+00:00": -20.019104625758246
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p80_cap1",
        "variant": "ridge_a100_H10_c8_p80_cap1",
        "gain_pct": 152.95156366730407,
        "max_drawdown_pct": -11.799569996877501,
        "capital_score": 135.25220867198783,
        "stability_score": 133.89506581484497,
        "n_trades": 42,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.3307425669433135,
        "median_trade_ret_pct": 2.5716722576802433,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.440689418059975,
        "month_gain_concentration": 0.19603578407962213,
        "top_asset_trade_share": 0.5952380952380952,
        "long_counts": {
          "XRP": 25,
          "SOL": 12,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 42,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 25.090494999873144,
          "2025-02-28 00:00:00+00:00": 22.412267895699713,
          "2025-03-31 00:00:00+00:00": 20.37702038641163,
          "2025-04-30 00:00:00+00:00": 13.113379932709421,
          "2025-05-31 00:00:00+00:00": -1.3445383975666516,
          "2025-07-31 00:00:00+00:00": 3.9407193382120624,
          "2025-10-31 00:00:00+00:00": 14.351678073217784,
          "2025-11-30 00:00:00+00:00": 18.53765682100729,
          "2025-12-31 00:00:00+00:00": 0.6134416380692471,
          "2026-01-31 00:00:00+00:00": 5.039589861169645,
          "2026-02-28 00:00:00+00:00": 30.10801077719796,
          "2026-03-31 00:00:00+00:00": -3.440689418059975
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.5135094824584314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.260873674421276,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.717376229223746,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 14.038751242824617,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 25.090494999873144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 29.66077923814774,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 14.361364833445691,
            "drawdown_pct": -11.799569996877501,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 27.104743163930735,
            "drawdown_pct": -1.9713255536759844,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 23.91880013523358,
            "drawdown_pct": -4.4284625903472925,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 23.91880013523358,
            "drawdown_pct": -4.4284625903472925,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.778075566784565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 35.33642000350994,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 39.75600984004589,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 40.78300991876944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 47.50276289557286,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 49.06370684243569,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 64.2283806429462,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 56.841362853900534,
            "drawdown_pct": -4.498015361368024,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 56.841362853900534,
            "drawdown_pct": -4.498015361368024,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 62.02233332476973,
            "drawdown_pct": -1.3432801989156196,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 67.34564664296096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 61.060521511230064,
            "drawdown_pct": -3.7557745049325852,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 65.95937083008283,
            "drawdown_pct": -0.8283907234442722,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 54.749974486956944,
            "drawdown_pct": -7.526740258070419,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 64.26778996651515,
            "drawdown_pct": -1.8392212395058838,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 64.26778996651515,
            "drawdown_pct": -1.8392212395058838,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 67.87978328198449,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 67.87978328198449,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 71.68004330560498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 80.99316321469391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 79.64862481712726,
            "drawdown_pct": -0.7428669534725763,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 78.80519087878909,
            "drawdown_pct": -1.2088701567746218,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 83.58934415533932,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 83.58934415533932,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 88.31309800667745,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 88.31309800667745,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 99.01279976211319,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 97.9410222285571,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 97.9410222285571,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 102.58600771831607,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 111.05386757016242,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 116.47867904956439,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 117.09212068763364,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 122.13171054880328,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 129.8513738753509,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 130.55312279581497,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 152.23972132600124,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 148.79903190794127,
            "drawdown_pct": -1.364055351779092,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p80_cap1",
        "variant": "ridge_a100_H10_c8_p80_cap1",
        "gain_pct": 16.643766426278845,
        "max_drawdown_pct": -1.364055351779092,
        "capital_score": 14.597683398610206,
        "stability_score": -5.402316601389794,
        "n_trades": 5,
        "skipped_by_capacity": 34,
        "avg_trade_ret_pct": 3.1862171048242445,
        "median_trade_ret_pct": 2.7445116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5866079932734323,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.31551397119432,
          "2026-03-31 00:00:00+00:00": -1.5866079932734323
        }
      },
      "selection_score": 1375.1376904627464
    },
    {
      "name": "ridge_a100_H10_c8_p80_cap2",
      "variant": {
        "name": "ridge_a100_H10_c8_p80_cap2",
        "threshold": 0.051936388813651105,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p80_cap2",
        "variant": "ridge_a100_H10_c8_p80_cap2",
        "gain_pct": 1270.5841465005217,
        "max_drawdown_pct": -11.451495366599463,
        "capital_score": 1253.4069034506224,
        "stability_score": 1238.095794922873,
        "n_trades": 158,
        "skipped_by_capacity": 1156,
        "avg_trade_ret_pct": 1.694842661637007,
        "median_trade_ret_pct": 1.530152873845307,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -18.44401992015446,
        "month_gain_concentration": 0.14509506138798028,
        "top_asset_trade_share": 0.6455696202531646,
        "long_counts": {
          "SOL": 43,
          "ETH": 10,
          "XRP": 102,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 158,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.946341463414634,
        "max_open_trades": 2,
        "avg_exposure": 0.973170731707317,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.512387434175821,
          "2024-10-31 00:00:00+00:00": 8.57997406329524,
          "2024-11-30 00:00:00+00:00": 107.422773537248,
          "2024-12-31 00:00:00+00:00": 171.6855467737051,
          "2025-01-31 00:00:00+00:00": 122.34709854412199,
          "2025-02-28 00:00:00+00:00": 182.70015167268264,
          "2025-03-31 00:00:00+00:00": 142.04814717893203,
          "2025-04-30 00:00:00+00:00": 61.25994356626916,
          "2025-05-31 00:00:00+00:00": 114.99938532859119,
          "2025-07-31 00:00:00+00:00": -2.4027497283630055,
          "2025-10-31 00:00:00+00:00": 61.068276438053545,
          "2025-11-30 00:00:00+00:00": 62.36381591791155,
          "2026-01-31 00:00:00+00:00": 47.478557777795686,
          "2026-02-28 00:00:00+00:00": 164.70947761917478,
          "2026-03-31 00:00:00+00:00": -18.44401992015446
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p80_cap2",
        "variant": "ridge_a100_H10_c8_p80_cap2",
        "gain_pct": 149.66194121859476,
        "max_drawdown_pct": -8.38607464964145,
        "capital_score": 137.0828292441326,
        "stability_score": 137.0828292441326,
        "n_trades": 79,
        "skipped_by_capacity": 363,
        "avg_trade_ret_pct": 1.18591064690226,
        "median_trade_ret_pct": 1.2851722505389696,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.3839713935452096,
        "month_gain_concentration": 0.20203671735866013,
        "top_asset_trade_share": 0.5443037974683544,
        "long_counts": {
          "XRP": 43,
          "SOL": 23,
          "ETH": 10,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 79,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.903225806451613,
        "max_open_trades": 2,
        "avg_exposure": 0.9516129032258065,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 20.841284532687197,
          "2025-02-28 00:00:00+00:00": 21.16044502227892,
          "2025-03-31 00:00:00+00:00": 18.82719495230623,
          "2025-04-30 00:00:00+00:00": 12.705358639985008,
          "2025-05-31 00:00:00+00:00": -0.6445644212232651,
          "2025-07-31 00:00:00+00:00": 3.824233832361216,
          "2025-10-31 00:00:00+00:00": 17.117845423831938,
          "2025-11-30 00:00:00+00:00": 19.28463651800365,
          "2025-12-31 00:00:00+00:00": 0.6043417843490602,
          "2026-01-31 00:00:00+00:00": 4.990120403719743,
          "2026-02-28 00:00:00+00:00": 30.219668104999556,
          "2026-03-31 00:00:00+00:00": -3.3839713935452096
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2567547412292157,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.07068838930077,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.7036420329299204,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 10.267332503240638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 20.841284532687197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 23.048802450148287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 13.727333948723157,
            "drawdown_pct": -7.5754239909824435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 24.38915622065514,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 21.290818488541433,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 21.290818488541433,
            "drawdown_pct": -2.490842309933783,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 26.087248282784472,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 30.182978750135817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 34.46898408002781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 35.45894769217091,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 42.00172955496612,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 43.50843461543457,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 58.479267463960326,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 51.43100504568969,
            "drawdown_pct": -4.447435005890266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 51.43100504568969,
            "drawdown_pct": -4.447435005890266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 56.47456420212157,
            "drawdown_pct": -1.2649624735895815,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 61.657830944814975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 56.272374733279406,
            "drawdown_pct": -3.3313921014899717,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 58.634834255473606,
            "drawdown_pct": -1.8699970621115947,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 48.10108456479162,
            "drawdown_pct": -8.38607464964145,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 57.35002277869677,
            "drawdown_pct": -2.6647692480723406,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 57.35002277869677,
            "drawdown_pct": -2.6647692480723406,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 60.82892450727235,
            "drawdown_pct": -0.5127536554821122,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 60.82892450727235,
            "drawdown_pct": -0.5127536554821122,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 64.49017886275885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 73.53428314725736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 72.88971872603409,
            "drawdown_pct": -0.3714334767362937,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 72.07896995261314,
            "drawdown_pct": -0.8386315189427229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 76.7139525583953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 76.7139525583953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 84.26168330061384,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 84.26168330061384,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 94.879904893338,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 93.83179798222724,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 93.83179798222724,
            "drawdown_pct": -0.5378219533124229,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 99.32385869506768,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 107.74242632300238,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 113.1164345002309,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 113.72077628457996,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 118.7108966882997,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 126.37771450411864,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.06938567587173,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 148.93056479329925,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 145.54659339975404,
            "drawdown_pct": -1.3594037342722909,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p80_cap2",
        "variant": "ridge_a100_H10_c8_p80_cap2",
        "gain_pct": 18.281179952075604,
        "max_drawdown_pct": -1.3594037342722909,
        "capital_score": 16.242074350667167,
        "stability_score": 2.2420743506671688,
        "n_trades": 10,
        "skipped_by_capacity": 29,
        "avg_trade_ret_pct": 1.7080730211529191,
        "median_trade_ret_pct": 1.467412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.5917157985415287,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 17.089261888308798,
          "2026-03-31 00:00:00+00:00": -1.5917157985415287
        }
      },
      "selection_score": 1253.4069034506224
    },
    {
      "name": "ridge_a100_H10_c8_p80_cap3",
      "variant": {
        "name": "ridge_a100_H10_c8_p80_cap3",
        "threshold": 0.051936388813651105,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p80_cap3",
        "variant": "ridge_a100_H10_c8_p80_cap3",
        "gain_pct": 1166.3401933977432,
        "max_drawdown_pct": -11.341555128305469,
        "capital_score": 1149.327860705285,
        "stability_score": 1135.0785900955702,
        "n_trades": 224,
        "skipped_by_capacity": 1090,
        "avg_trade_ret_pct": 1.1508497383024123,
        "median_trade_ret_pct": 1.0340214473882807,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -17.061770609714813,
        "month_gain_concentration": 0.14512927872507703,
        "top_asset_trade_share": 0.65625,
        "long_counts": {
          "SOL": 61,
          "ETH": 12,
          "XRP": 147,
          "BTC": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 224,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.819512195121951,
        "max_open_trades": 3,
        "avg_exposure": 0.9398373983739837,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 14.300952956685379,
          "2024-10-31 00:00:00+00:00": 6.14679275199417,
          "2024-11-30 00:00:00+00:00": 105.0607974801863,
          "2024-12-31 00:00:00+00:00": 157.75128750691616,
          "2025-01-31 00:00:00+00:00": 104.03314380405817,
          "2025-02-28 00:00:00+00:00": 168.06099256911818,
          "2025-03-31 00:00:00+00:00": 136.58519191742812,
          "2025-04-30 00:00:00+00:00": 52.86670613074239,
          "2025-05-31 00:00:00+00:00": 108.66221672236577,
          "2025-07-31 00:00:00+00:00": -1.4921486135583564,
          "2025-10-31 00:00:00+00:00": 57.214042618441,
          "2025-11-30 00:00:00+00:00": 58.43370936205372,
          "2026-01-31 00:00:00+00:00": 44.43886154768211,
          "2026-02-28 00:00:00+00:00": 144.45417813800782,
          "2026-03-31 00:00:00+00:00": -17.061770609714813
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p80_cap3",
        "variant": "ridge_a100_H10_c8_p80_cap3",
        "gain_pct": 137.97699177231064,
        "max_drawdown_pct": -8.319235081150001,
        "capital_score": 125.49813915058564,
        "stability_score": 125.49813915058564,
        "n_trades": 111,
        "skipped_by_capacity": 331,
        "avg_trade_ret_pct": 0.7932711904517822,
        "median_trade_ret_pct": 0.8576666714275158,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.206333389067339,
        "month_gain_concentration": 0.19880608442752676,
        "top_asset_trade_share": 0.5225225225225225,
        "long_counts": {
          "XRP": 58,
          "SOL": 33,
          "ETH": 14,
          "BNB": 5,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 111,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7204301075268815,
        "max_open_trades": 3,
        "avg_exposure": 0.906810035842294,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 16.30377689766749,
          "2025-02-28 00:00:00+00:00": 21.62810707221763,
          "2025-03-31 00:00:00+00:00": 18.08907262997704,
          "2025-04-30 00:00:00+00:00": 12.372709202465956,
          "2025-05-31 00:00:00+00:00": -0.41698029832883776,
          "2025-07-31 00:00:00+00:00": 2.4748856508680603,
          "2025-10-31 00:00:00+00:00": 14.62869364953744,
          "2025-11-30 00:00:00+00:00": 18.549270042912212,
          "2025-12-31 00:00:00+00:00": 0.5775758825783157,
          "2026-01-31 00:00:00+00:00": 4.777252965553089,
          "2026-02-28 00:00:00+00:00": 27.14655267317039,
          "2026-03-31 00:00:00+00:00": -3.206333389067339
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8378364941528105,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.033848159998328,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.10157921113867,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.481102751667635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 16.30377689766749,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 17.720194983384175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 10.420920232546905,
            "drawdown_pct": -6.200528933771765,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 21.628837587269928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 18.678109544881224,
            "drawdown_pct": -2.4260102299107578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 18.678109544881224,
            "drawdown_pct": -2.4260102299107578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 23.66612678443252,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 27.804946431601763,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 32.65504895655448,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 33.30572390701931,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 37.93188396988512,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 38.9067072046866,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 53.52270565372348,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 46.72024975668822,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 46.72024975668822,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 51.620450089791916,
            "drawdown_pct": -1.2390711561729328,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 56.65676127732456,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 52.24427777576199,
            "drawdown_pct": -2.8166569164233435,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 53.778699961467,
            "drawdown_pct": -1.837176571499921,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 43.624117036147965,
            "drawdown_pct": -8.319235081150001,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 52.63998057736384,
            "drawdown_pct": -2.564064689713541,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 52.63998057736384,
            "drawdown_pct": -2.564064689713541,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 56.02095659986216,
            "drawdown_pct": -0.4058584336087856,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 56.02095659986216,
            "drawdown_pct": -0.4058584336087856,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 59.57948748922948,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 68.39366580232812,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 67.97668550399928,
            "drawdown_pct": -0.24762231782418098,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 67.45134007015889,
            "drawdown_pct": -0.5595968991347844,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 70.45157115486734,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 70.45157115486734,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 76.79412468872712,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 76.79412468872712,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 86.0805984443679,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 85.08026480440478,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 85.08026480440478,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 90.53835913037389,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.61412253797599,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 103.62953484731699,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 104.2071107298953,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 108.9843636954484,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 116.33158022649792,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 115.24298844314734,
            "drawdown_pct": -0.5032052103584816,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 136.13091636861878,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 132.92458297955145,
            "drawdown_pct": -1.357862595197823,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p80_cap3",
        "variant": "ridge_a100_H10_c8_p80_cap3",
        "gain_pct": 18.145624931994078,
        "max_drawdown_pct": 0.0,
        "capital_score": 18.145624931994078,
        "stability_score": 5.0517341849326645,
        "n_trades": 14,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 1.204464036822427,
        "median_trade_ret_pct": 0.9285916847808965,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9980413441681709,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8181818181818183,
        "max_open_trades": 3,
        "avg_exposure": 0.9393939393939393,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.606687124253625,
          "2026-03-31 00:00:00+00:00": 0.03062811869475013
        }
      },
      "selection_score": 1149.327860705285
    },
    {
      "name": "ridge_a100_H10_c8_p80_cap5",
      "variant": {
        "name": "ridge_a100_H10_c8_p80_cap5",
        "threshold": 0.051936388813651105,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p80_cap5",
        "variant": "ridge_a100_H10_c8_p80_cap5",
        "gain_pct": 1051.9526685970047,
        "max_drawdown_pct": -11.255639059853117,
        "capital_score": 1035.0692100072251,
        "stability_score": 1032.6542539954949,
        "n_trades": 341,
        "skipped_by_capacity": 973,
        "avg_trade_ret_pct": 0.7233731548233404,
        "median_trade_ret_pct": 0.657108586076312,
        "positive_month_rate": 0.875,
        "worst_month_pct": -0.8090945685190718,
        "month_gain_concentration": 0.14343690242641277,
        "top_asset_trade_share": 0.6304985337243402,
        "long_counts": {
          "SOL": 103,
          "BNB": 1,
          "ETH": 17,
          "XRP": 215,
          "BTC": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 341,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.4487804878048784,
        "max_open_trades": 5,
        "avg_exposure": 0.8897560975609755,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 15.166806845111353,
          "2024-10-31 00:00:00+00:00": 3.9159586908690187,
          "2024-11-30 00:00:00+00:00": 98.75019803363153,
          "2024-12-31 00:00:00+00:00": 139.54228585625245,
          "2025-01-31 00:00:00+00:00": 88.31279328088124,
          "2025-02-28 00:00:00+00:00": 147.87457335502097,
          "2025-03-31 00:00:00+00:00": 124.03376209329838,
          "2025-04-30 00:00:00+00:00": 44.73430809169179,
          "2025-05-31 00:00:00+00:00": 99.34157979847271,
          "2025-07-31 00:00:00+00:00": -0.8090945685190718,
          "2025-10-31 00:00:00+00:00": 51.94512948234774,
          "2025-11-30 00:00:00+00:00": 53.05678494835297,
          "2026-01-31 00:00:00+00:00": 30.791160772479998,
          "2026-02-28 00:00:00+00:00": 129.99646699607854,
          "2026-03-31 00:00:00+00:00": 3.476331477852682
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p80_cap5",
        "variant": "ridge_a100_H10_c8_p80_cap5",
        "gain_pct": 96.64203366523077,
        "max_drawdown_pct": -9.70871604216159,
        "capital_score": 82.07895960198839,
        "stability_score": 82.07895960198839,
        "n_trades": 165,
        "skipped_by_capacity": 277,
        "avg_trade_ret_pct": 0.41469591347764306,
        "median_trade_ret_pct": 0.5212891053213391,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.6366850037607605,
        "month_gain_concentration": 0.26020405981716094,
        "top_asset_trade_share": 0.49696969696969695,
        "long_counts": {
          "XRP": 82,
          "SOL": 49,
          "ETH": 22,
          "BTC": 3,
          "BNB": 9
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 165,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.086021505376344,
        "max_open_trades": 5,
        "avg_exposure": 0.8172043010752689,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 11.01763104415312,
          "2025-02-28 00:00:00+00:00": 10.195413863452728,
          "2025-03-31 00:00:00+00:00": 7.724739660437308,
          "2025-04-30 00:00:00+00:00": 10.404033548797514,
          "2025-05-31 00:00:00+00:00": -0.20702486383157748,
          "2025-07-31 00:00:00+00:00": 1.229103375037937,
          "2025-10-31 00:00:00+00:00": 12.684607384804167,
          "2025-11-30 00:00:00+00:00": 13.841991229479277,
          "2025-12-31 00:00:00+00:00": -0.09390274814131772,
          "2026-01-31 00:00:00+00:00": 2.9285976601724144,
          "2026-02-28 00:00:00+00:00": 24.62987311275532,
          "2026-03-31 00:00:00+00:00": -2.6366850037607605
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.5027018964916863,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.413935728221958,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.044598966276965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.444270102129096,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 11.01763104415312,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 11.828855157275697,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.9717091568556242,
            "drawdown_pct": -9.70871604216159,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 11.269182947671865,
            "drawdown_pct": -0.5004720908719951,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 9.644243065956914,
            "drawdown_pct": -1.95353166072062,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 7.890397408572028,
            "drawdown_pct": -3.5218618156866888,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.05043869445636,
            "drawdown_pct": -0.6960783616398292,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.941090298184534,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 18.220983207605116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 18.568738355386316,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 21.21304490760585,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 21.72668137801699,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 28.554794348104565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 22.133153253107295,
            "drawdown_pct": -4.99525601325187,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 22.133153253107295,
            "drawdown_pct": -4.99525601325187,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.871972713040066,
            "drawdown_pct": -2.086909048136998,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.6536792469781,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.6536792469781,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.6536792469781,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 27.214620888071067,
            "drawdown_pct": -2.6321940405567124,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 27.983932977923104,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 27.983932977923104,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 27.983932977923104,
            "drawdown_pct": -2.043376263448582,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 20.576389628304355,
            "drawdown_pct": -7.712978062886677,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 25.080940330055796,
            "drawdown_pct": -4.265275152633096,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 25.080940330055796,
            "drawdown_pct": -4.265275152633096,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.937784568043156,
            "drawdown_pct": -1.3133152382883484,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.937784568043156,
            "drawdown_pct": -1.3133152382883484,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 31.216557078394374,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 31.216557078394374,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 31.216557078394374,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 31.216557078394374,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 39.34181811684067,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 39.13479325300909,
            "drawdown_pct": -0.14857339069451747,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 38.87362585131393,
            "drawdown_pct": -0.3360026959990936,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 40.36389662804703,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 40.36389662804703,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 46.3200830448269,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 46.3200830448269,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 53.87541224841746,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 53.0485040128512,
            "drawdown_pct": -0.5373881528462077,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 53.0485040128512,
            "drawdown_pct": -0.5373881528462077,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 57.70477996578788,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 64.40779494898743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 64.40779494898743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 64.40779494898743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 66.89049524233047,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 66.79659249418916,
            "drawdown_pct": -0.05626608513862319,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 69.72519015436157,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 75.7061544047468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 77.10458979296956,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 94.35506326711689,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 91.71837826335613,
            "drawdown_pct": -1.3566330402912996,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p80_cap5",
        "variant": "ridge_a100_H10_c8_p80_cap5",
        "gain_pct": 16.875738773619887,
        "max_drawdown_pct": 0.0,
        "capital_score": 16.875738773619887,
        "stability_score": 5.838965151935264,
        "n_trades": 19,
        "skipped_by_capacity": 20,
        "avg_trade_ret_pct": 0.8266831845841457,
        "median_trade_ret_pct": 0.5654076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9067341027621217,
        "top_asset_trade_share": 0.5789473684210527,
        "long_counts": {
          "XRP": 11,
          "ETH": 4,
          "BTC": 1,
          "SOL": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 19,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.090909090909091,
        "max_open_trades": 5,
        "avg_exposure": 0.8181818181818182,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 13.595886715439917,
          "2026-03-31 00:00:00+00:00": 1.3984613233331942
        }
      },
      "selection_score": 1035.0692100072251
    },
    {
      "name": "ridge_a100_H10_c8_p90_cap1",
      "variant": {
        "name": "ridge_a100_H10_c8_p90_cap1",
        "threshold": 0.06533222207483523,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p90_cap1",
        "variant": "ridge_a100_H10_c8_p90_cap1",
        "gain_pct": 681.1391734601186,
        "max_drawdown_pct": -11.79956999687749,
        "capital_score": 663.4398184648024,
        "stability_score": 658.9398184648024,
        "n_trades": 60,
        "skipped_by_capacity": 597,
        "avg_trade_ret_pct": 3.600870302371014,
        "median_trade_ret_pct": 3.3855499917021104,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14215155905727123,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "SOL": 14,
          "ETH": 3,
          "XRP": 42,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 60,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 5.152240821192876,
          "2024-10-31 00:00:00+00:00": 7.122175198274405,
          "2024-11-30 00:00:00+00:00": 82.39365558896344,
          "2024-12-31 00:00:00+00:00": 94.4646902739789,
          "2025-01-31 00:00:00+00:00": 93.80694056549078,
          "2025-02-28 00:00:00+00:00": 86.08680497139903,
          "2025-03-31 00:00:00+00:00": 75.24899540988423,
          "2025-04-30 00:00:00+00:00": 35.391113380748834,
          "2025-07-31 00:00:00+00:00": 40.099018626579436,
          "2025-10-31 00:00:00+00:00": 36.525854318909296,
          "2025-11-30 00:00:00+00:00": 37.28961645750633,
          "2026-02-28 00:00:00+00:00": 98.36059094201892
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p90_cap1",
        "variant": "ridge_a100_H10_c8_p90_cap1",
        "gain_pct": 123.81730535885652,
        "max_drawdown_pct": -10.747643605950541,
        "capital_score": 107.6958399499307,
        "stability_score": 107.64411581199967,
        "n_trades": 29,
        "skipped_by_capacity": 170,
        "avg_trade_ret_pct": 2.9178695229843847,
        "median_trade_ret_pct": 3.230925877556148,
        "positive_month_rate": 1.0,
        "worst_month_pct": 3.1999102721526924,
        "month_gain_concentration": 0.2087928539404254,
        "top_asset_trade_share": 0.5517241379310345,
        "long_counts": {
          "XRP": 16,
          "SOL": 11,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 29,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 17.68554093536818,
          "2025-02-28 00:00:00+00:00": 26.34661690205536,
          "2025-03-31 00:00:00+00:00": 16.948306144323737,
          "2025-04-30 00:00:00+00:00": 3.1999102721526924,
          "2025-07-31 00:00:00+00:00": 16.05406975124214,
          "2025-10-31 00:00:00+00:00": 14.089416409040382,
          "2025-11-30 00:00:00+00:00": 6.0902305147906475,
          "2026-02-28 00:00:00+00:00": 26.498426771432435
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 9.508370400323443,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.91981479386294,
            "drawdown_pct": -1.4506248249821607,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 17.68554093536818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 21.985279079423634,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.640904517932654,
            "drawdown_pct": -3.5613924846311984,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.749724577887463,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.710373246416395,
            "drawdown_pct": -2.324556584178905,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.77952356587855,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 39.47734075555937,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.03215783742354,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 50.90699679662674,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 66.2591937137106,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 58.78082964078129,
            "drawdown_pct": -4.498015361368013,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 63.99764196384518,
            "drawdown_pct": -1.3602566566993546,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 63.99764196384518,
            "drawdown_pct": -1.3602566566993546,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 59.138974306816124,
            "drawdown_pct": -4.282601910818307,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 48.39024811123406,
            "drawdown_pct": -10.747643605950541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 57.516911977712596,
            "drawdown_pct": -5.258224547300372,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 57.516911977712596,
            "drawdown_pct": -5.258224547300372,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 60.98046398174728,
            "drawdown_pct": -3.1750001994193533,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 64.18037425389997,
            "drawdown_pct": -1.250348575243454,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 75.53771604524033,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 80.23444400514211,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 84.87187627513651,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 95.37605235237166,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 94.32386041418249,
            "drawdown_pct": -0.5385470355862676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 100.41409092897314,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 106.88932165506625,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 107.52096616377267,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 126.91251770040557,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p90_cap1",
        "variant": "ridge_a100_H10_c8_p90_cap1",
        "gain_pct": 7.8528639762707115,
        "max_drawdown_pct": 0.0,
        "capital_score": 7.8528639762707115,
        "stability_score": -18.14713602372929,
        "n_trades": 2,
        "skipped_by_capacity": 8,
        "avg_trade_ret_pct": 3.9901632586229057,
        "median_trade_ret_pct": 3.9901632586229057,
        "positive_month_rate": 1.0,
        "worst_month_pct": 9.344381869024915,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 9.344381869024915
        }
      },
      "selection_score": 563.4398184648024
    },
    {
      "name": "ridge_a100_H10_c8_p90_cap2",
      "variant": {
        "name": "ridge_a100_H10_c8_p90_cap2",
        "threshold": 0.06533222207483523,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p90_cap2",
        "variant": "ridge_a100_H10_c8_p90_cap2",
        "gain_pct": 716.3366017267824,
        "max_drawdown_pct": -11.451495366599474,
        "capital_score": 699.1593586768832,
        "stability_score": 694.7110828148143,
        "n_trades": 116,
        "skipped_by_capacity": 541,
        "avg_trade_ret_pct": 1.8546816813194398,
        "median_trade_ret_pct": 1.7283063142351962,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.1444756946872382,
        "top_asset_trade_share": 0.6982758620689655,
        "long_counts": {
          "SOL": 26,
          "ETH": 7,
          "XRP": 81,
          "BTC": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 116,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9318181818181819,
        "max_open_trades": 2,
        "avg_exposure": 0.9659090909090909,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 1.4938014052498119,
          "2024-10-31 00:00:00+00:00": 6.962081607370493,
          "2024-11-30 00:00:00+00:00": 85.3367659222774,
          "2024-12-31 00:00:00+00:00": 105.11861534566609,
          "2025-01-31 00:00:00+00:00": 101.72573746585414,
          "2025-02-28 00:00:00+00:00": 94.4646204184279,
          "2025-03-31 00:00:00+00:00": 82.9823960384607,
          "2025-04-30 00:00:00+00:00": 24.590063077130367,
          "2025-07-31 00:00:00+00:00": 42.41158001895428,
          "2025-10-31 00:00:00+00:00": 38.578237218040385,
          "2025-11-30 00:00:00+00:00": 39.39665935625146,
          "2026-02-28 00:00:00+00:00": 104.52629037250438
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p90_cap2",
        "variant": "ridge_a100_H10_c8_p90_cap2",
        "gain_pct": 89.25122117868563,
        "max_drawdown_pct": -11.138267371858069,
        "capital_score": 72.54382012089852,
        "stability_score": 71.64382012089852,
        "n_trades": 50,
        "skipped_by_capacity": 149,
        "avg_trade_ret_pct": 1.3095123882508533,
        "median_trade_ret_pct": 1.5670310639696772,
        "positive_month_rate": 1.0,
        "worst_month_pct": 1.3419596690797277,
        "month_gain_concentration": 0.2422704410080809,
        "top_asset_trade_share": 0.58,
        "long_counts": {
          "XRP": 29,
          "SOL": 16,
          "ETH": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 50,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.7924528301886793,
        "max_open_trades": 2,
        "avg_exposure": 0.8962264150943396,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 8.458903338007389,
          "2025-02-28 00:00:00+00:00": 17.772885982829237,
          "2025-03-31 00:00:00+00:00": 8.79030305047202,
          "2025-04-30 00:00:00+00:00": 1.3419596690797277,
          "2025-07-31 00:00:00+00:00": 13.52772728350405,
          "2025-10-31 00:00:00+00:00": 14.51964755257029,
          "2025-11-30 00:00:00+00:00": 5.193128909391618,
          "2026-02-28 00:00:00+00:00": 22.254808759005186
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.754185200161714,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.994390092301046,
            "drawdown_pct": -0.7253124124910859,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 8.458903338007389,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.440221008973296,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 6.542030536891005,
            "drawdown_pct": -3.5296836935572284,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 16.530237897728682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 15.175832238923192,
            "drawdown_pct": -1.162278292089447,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 18.363495271177896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 22.208332718316896,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 26.231789320836626,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 29.244391631816256,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 42.72719624127592,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 36.3794969527157,
            "drawdown_pct": -4.447435005890277,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 40.8971085820867,
            "drawdown_pct": -1.2822277094937884,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 40.8971085820867,
            "drawdown_pct": -1.2822277094937884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 35.85068469542705,
            "drawdown_pct": -4.817940607636084,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.829859511566042,
            "drawdown_pct": -11.138267371858069,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 30.730161285868178,
            "drawdown_pct": -8.405570396777872,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 30.730161285868178,
            "drawdown_pct": -8.405570396777872,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 35.022092371308645,
            "drawdown_pct": -5.398483311437041,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 36.36405204038837,
            "drawdown_pct": -4.458256287842188,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 45.960308266526994,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 49.89177932389242,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 56.29389287763078,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 65.30044898000114,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 64.41142687646271,
            "drawdown_pct": -0.5378219533124118,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.60455578585433,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 74.58038962668627,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 75.11380000642575,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 91.85936454485952,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p90_cap2",
        "variant": "ridge_a100_H10_c8_p90_cap2",
        "gain_pct": 8.868665927877103,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.868665927877103,
        "stability_score": -17.131334072122897,
        "n_trades": 4,
        "skipped_by_capacity": 6,
        "avg_trade_ret_pct": 2.1876712367817226,
        "median_trade_ret_pct": 1.9950816293114528,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.369026596915546,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.75,
        "max_open_trades": 2,
        "avg_exposure": 0.875,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.369026596915546
        }
      },
      "selection_score": 699.1593586768832
    },
    {
      "name": "ridge_a100_H10_c8_p90_cap3",
      "variant": {
        "name": "ridge_a100_H10_c8_p90_cap3",
        "threshold": 0.06533222207483523,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p90_cap3",
        "variant": "ridge_a100_H10_c8_p90_cap3",
        "gain_pct": 733.074837033812,
        "max_drawdown_pct": -11.341555128305458,
        "capital_score": 716.0625043413538,
        "stability_score": 711.5986489196671,
        "n_trades": 166,
        "skipped_by_capacity": 491,
        "avg_trade_ret_pct": 1.2979606253951603,
        "median_trade_ret_pct": 1.2178607810500737,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14937627198091663,
        "top_asset_trade_share": 0.6987951807228916,
        "long_counts": {
          "SOL": 38,
          "ETH": 9,
          "XRP": 116,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 166,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.787878787878788,
        "max_open_trades": 3,
        "avg_exposure": 0.9292929292929293,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 4.462028732940723,
          "2024-10-31 00:00:00+00:00": 7.415193021830788,
          "2024-11-30 00:00:00+00:00": 90.06508505286209,
          "2024-12-31 00:00:00+00:00": 111.21699263394203,
          "2025-01-31 00:00:00+00:00": 102.30240029958213,
          "2025-02-28 00:00:00+00:00": 99.482574708568,
          "2025-03-31 00:00:00+00:00": 84.01165777124561,
          "2025-04-30 00:00:00+00:00": 16.91113626545325,
          "2025-07-31 00:00:00+00:00": 43.59314539823481,
          "2025-10-31 00:00:00+00:00": 39.6337590746723,
          "2025-11-30 00:00:00+00:00": 40.478656160342325,
          "2026-02-28 00:00:00+00:00": 104.96993549962781
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p90_cap3",
        "variant": "ridge_a100_H10_c8_p90_cap3",
        "gain_pct": 61.21478049701952,
        "max_drawdown_pct": -11.264725152320809,
        "capital_score": 44.31769276853831,
        "stability_score": 42.72945747442066,
        "n_trades": 68,
        "skipped_by_capacity": 131,
        "avg_trade_ret_pct": 0.7203664945903153,
        "median_trade_ret_pct": 1.0155979957741985,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.802270727586972,
        "month_gain_concentration": 0.2712965517974652,
        "top_asset_trade_share": 0.6029411764705882,
        "long_counts": {
          "XRP": 41,
          "SOL": 19,
          "ETH": 4,
          "BNB": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 68,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.452830188679245,
        "max_open_trades": 3,
        "avg_exposure": 0.8176100628930818,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.1710473516892392,
          "2025-02-28 00:00:00+00:00": 13.37092966308147,
          "2025-03-31 00:00:00+00:00": 4.539462446070161,
          "2025-04-30 00:00:00+00:00": 0.802270727586972,
          "2025-07-31 00:00:00+00:00": 8.649430218098217,
          "2025-10-31 00:00:00+00:00": 11.202767502707133,
          "2025-11-30 00:00:00+00:00": 4.488658978776584,
          "2026-02-28 00:00:00+00:00": 17.209422620383748
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.1694568001078096,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.670589549393938,
            "drawdown_pct": -0.4835416083273869,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.1710473516892392,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.427527074784081,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.385009143926254,
            "drawdown_pct": -7.481299651111639,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 6.421582129373263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 5.596972164581359,
            "drawdown_pct": -0.7748521947263054,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.545341354793635,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 11.144635545810331,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.54197701477071,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 18.396209513941884,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 30.854058738440926,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.05603062444959,
            "drawdown_pct": -4.430911941050897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 29.209962931927606,
            "drawdown_pct": -1.2564347047114843,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 29.209962931927606,
            "drawdown_pct": -1.2564347047114843,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 24.323237180433665,
            "drawdown_pct": -4.99092012962431,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 16.11370867089913,
            "drawdown_pct": -11.264725152320809,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 18.494212787169474,
            "drawdown_pct": -9.445519741941721,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 18.494212787169474,
            "drawdown_pct": -9.445519741941721,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 21.08143946084087,
            "drawdown_pct": -7.46833485473627,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 21.88371018842784,
            "drawdown_pct": -6.855231420787311,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 28.235540080645507,
            "drawdown_pct": -2.00109853912096,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 30.53314040652606,
            "drawdown_pct": -0.24524904692206917,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 35.39031728886181,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 42.50197119978532,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 41.73590790923319,
            "drawdown_pct": -0.5375808377261815,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 46.224566888009775,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 49.077699994029786,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 48.32753324017719,
            "drawdown_pct": -0.503205210358515,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 63.43398950839352,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p90_cap3",
        "variant": "ridge_a100_H10_c8_p90_cap3",
        "gain_pct": 10.762646758545287,
        "max_drawdown_pct": 0.0,
        "capital_score": 10.762646758545287,
        "stability_score": -10.237353241454713,
        "n_trades": 6,
        "skipped_by_capacity": 4,
        "avg_trade_ret_pct": 1.7340837283366206,
        "median_trade_ret_pct": 2.028570059340539,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.733309762224167,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8333333333333334,
        "long_counts": {
          "XRP": 5,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 6,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5,
        "max_open_trades": 3,
        "avg_exposure": 0.8333333333333333,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.733309762224167
        }
      },
      "selection_score": 716.0625043413538
    },
    {
      "name": "ridge_a100_H10_c8_p90_cap5",
      "variant": {
        "name": "ridge_a100_H10_c8_p90_cap5",
        "threshold": 0.06533222207483523,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c8",
        "n_train": 12794,
        "target_mean": 0.008213253534827653
      },
      "val": {
        "label": "Validation ridge_a100_H10_c8_p90_cap5",
        "variant": "ridge_a100_H10_c8_p90_cap5",
        "gain_pct": 777.5507815817477,
        "max_drawdown_pct": -8.235321226960169,
        "capital_score": 765.1977997413074,
        "stability_score": 761.3865156946148,
        "n_trades": 257,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 0.8531256464278008,
        "median_trade_ret_pct": 0.7435086517906879,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.16077881532479868,
        "top_asset_trade_share": 0.6770428015564203,
        "long_counts": {
          "SOL": 66,
          "BNB": 1,
          "ETH": 13,
          "XRP": 174,
          "BTC": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 257,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.363636363636363,
        "max_open_trades": 5,
        "avg_exposure": 0.8727272727272728,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 6.752530083642981,
          "2024-10-31 00:00:00+00:00": 8.444340654917184,
          "2024-11-30 00:00:00+00:00": 90.21323227279254,
          "2024-12-31 00:00:00+00:00": 115.32104888077373,
          "2025-01-31 00:00:00+00:00": 101.3196604270284,
          "2025-02-28 00:00:00+00:00": 124.579689024284,
          "2025-03-31 00:00:00+00:00": 82.78299938713326,
          "2025-04-30 00:00:00+00:00": 10.625355145795993,
          "2025-07-31 00:00:00+00:00": 47.138835167544244,
          "2025-10-31 00:00:00+00:00": 41.46481731518986,
          "2025-11-30 00:00:00+00:00": 42.35218810961646,
          "2026-02-28 00:00:00+00:00": 103.85669656221819
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c8_p90_cap5",
        "variant": "ridge_a100_H10_c8_p90_cap5",
        "gain_pct": 55.39808148895696,
        "max_drawdown_pct": -8.721654370524568,
        "capital_score": 42.315599933170105,
        "stability_score": 41.315599933170105,
        "n_trades": 96,
        "skipped_by_capacity": 103,
        "avg_trade_ret_pct": 0.46634096877732945,
        "median_trade_ret_pct": 0.6268124255878709,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4709859261489129,
        "month_gain_concentration": 0.2991858435003523,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 56,
          "SOL": 25,
          "ETH": 7,
          "BTC": 1,
          "BNB": 7
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 96,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.5849056603773586,
        "max_open_trades": 5,
        "avg_exposure": 0.7169811320754715,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4728320514690836,
          "2025-02-28 00:00:00+00:00": 15.344185464069284,
          "2025-03-31 00:00:00+00:00": 1.654324603247204,
          "2025-04-30 00:00:00+00:00": 0.4709859261489129,
          "2025-07-31 00:00:00+00:00": 5.790864127334501,
          "2025-10-31 00:00:00+00:00": 11.27206930391256,
          "2025-11-30 00:00:00+00:00": 4.316261010413484,
          "2026-02-28 00:00:00+00:00": 17.213734346669725
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.9016740800646943,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 1.6060318838091234,
            "drawdown_pct": -0.290124964996441,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4728320514690836,
            "drawdown_pct": -0.4208390416222896,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.214310746454487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -5.478766619441231,
            "drawdown_pct": -7.526419059830691,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.0415804674099007,
            "drawdown_pct": -5.142030676019305,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.0415804674099007,
            "drawdown_pct": -5.142030676019305,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 4.2696703737683634,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 6.529051482947324,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.708391671499797,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.512049529861287,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.817017515538367,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 17.932182621958887,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 25.278186979053984,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.92749226828964,
            "drawdown_pct": -2.674603449780577,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 26.55935330835706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 26.55935330835706,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.618269685954743,
            "drawdown_pct": -3.1140200383293792,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.521283939231111,
            "drawdown_pct": -8.721654370524568,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 16.942299054923964,
            "drawdown_pct": -7.598849079136416,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.942299054923964,
            "drawdown_pct": -7.598849079136416,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 18.47134211878557,
            "drawdown_pct": -6.390686249688205,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 18.942328044934484,
            "drawdown_pct": -6.018539969040438,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 23.408875623295202,
            "drawdown_pct": -2.489328210603159,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 24.733192172268986,
            "drawdown_pct": -1.4429286246736006,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 30.026106965784408,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 36.74008650123079,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 36.005261476181545,
            "drawdown_pct": -0.5373881528461855,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 40.32152248659503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 41.96115726335145,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 42.309875903047754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 57.535256833264754,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c8_p90_cap5",
        "variant": "ridge_a100_H10_c8_p90_cap5",
        "gain_pct": 8.559571287803536,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.559571287803536,
        "stability_score": -6.1904287121964625,
        "n_trades": 8,
        "skipped_by_capacity": 2,
        "avg_trade_ret_pct": 1.036199482885801,
        "median_trade_ret_pct": 1.0234472205372862,
        "positive_month_rate": 1.0,
        "worst_month_pct": 8.540631996014753,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 2,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.0,
        "max_open_trades": 5,
        "avg_exposure": 0.6,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 8.540631996014753
        }
      },
      "selection_score": 765.1977997413074
    },
    {
      "name": "ridge_a1_H10_c12_p70_cap1",
      "variant": {
        "name": "ridge_a1_H10_c12_p70_cap1",
        "threshold": 0.03315845290699538,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p70_cap1",
        "variant": "ridge_a1_H10_c12_p70_cap1",
        "gain_pct": 2068.6008374419375,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 2050.8414824466213,
        "stability_score": 2025.3225388712365,
        "n_trades": 98,
        "skipped_by_capacity": 1873,
        "avg_trade_ret_pct": 3.292274529705453,
        "median_trade_ret_pct": 2.723282723610374,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -29.957719085588906,
        "month_gain_concentration": 0.1836012750066816,
        "top_asset_trade_share": 0.6020408163265306,
        "long_counts": {
          "SOL": 29,
          "XRP": 59,
          "ETH": 6,
          "BTC": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 98,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.34364075778066,
          "2024-10-31 00:00:00+00:00": 5.248857737008365,
          "2024-11-30 00:00:00+00:00": 124.89208986451462,
          "2024-12-31 00:00:00+00:00": 261.0022544995269,
          "2025-01-31 00:00:00+00:00": 150.70549656088576,
          "2025-02-28 00:00:00+00:00": 317.5583458010133,
          "2025-03-31 00:00:00+00:00": 220.9663902847892,
          "2025-04-30 00:00:00+00:00": 379.6944721884304,
          "2025-05-31 00:00:00+00:00": 45.88498376154894,
          "2025-07-31 00:00:00+00:00": -8.392825858187962,
          "2025-08-31 00:00:00+00:00": 95.93314016327759,
          "2025-10-31 00:00:00+00:00": -14.532589860867574,
          "2025-11-30 00:00:00+00:00": 172.29395391722005,
          "2026-01-31 00:00:00+00:00": -11.456345991865874,
          "2026-02-28 00:00:00+00:00": 252.5146937763975,
          "2026-03-31 00:00:00+00:00": -29.957719085588906
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p70_cap1",
        "variant": "ridge_a1_H10_c12_p70_cap1",
        "gain_pct": 194.72115488937987,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 176.96179989406363,
        "stability_score": 176.96179989406363,
        "n_trades": 54,
        "skipped_by_capacity": 648,
        "avg_trade_ret_pct": 2.100153435411616,
        "median_trade_ret_pct": 2.294028709077204,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.6020557808938918,
        "month_gain_concentration": 0.20253673731132094,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 27,
          "SOL": 17,
          "ETH": 6,
          "BTC": 1,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 54,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 29.040363543740682,
          "2025-02-28 00:00:00+00:00": 38.48137552243918,
          "2025-03-31 00:00:00+00:00": 24.924092747790837,
          "2025-04-30 00:00:00+00:00": 12.298347842318634,
          "2025-05-31 00:00:00+00:00": 4.169764578066378,
          "2025-07-31 00:00:00+00:00": 4.4137334716512555,
          "2025-08-31 00:00:00+00:00": 3.5712957255129254,
          "2025-10-31 00:00:00+00:00": 11.804600646867868,
          "2025-11-30 00:00:00+00:00": 18.676513206038436,
          "2025-12-31 00:00:00+00:00": 0.6020557808938918,
          "2026-01-31 00:00:00+00:00": 5.657479886052698,
          "2026-02-28 00:00:00+00:00": 30.007979850595717,
          "2026-03-31 00:00:00+00:00": 6.349412224935634
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.473509482458411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.176080922468117,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 24.851247304220763,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 25.472304800768896,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 29.040363543740682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.626037937580904,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 27.626037937580904,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.63946963081952,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 34.63946963081952,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 39.27854937283652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 49.581378092662334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 50.62074755250558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 50.62074755250558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 55.59673189204142,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 67.52173906617986,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 86.37582975984691,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 86.37582975984691,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 86.53000253766515,
            "drawdown_pct": -3.885611971303038,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 86.53000253766515,
            "drawdown_pct": -3.885611971303038,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 77.53107876937207,
            "drawdown_pct": -8.522539216997648,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 88.37902160887936,
            "drawdown_pct": -2.932857271976541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 88.37902160887936,
            "drawdown_pct": -2.932857271976541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 92.4458318139707,
            "drawdown_pct": -0.8373285700333466,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 92.4458318139707,
            "drawdown_pct": -0.8373285700333466,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 103.33457770860946,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 103.33457770860946,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 101.74273849474574,
            "drawdown_pct": -0.782866953472583,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 98.74517591277515,
            "drawdown_pct": -2.2570690374222435,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 104.74417965628933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 108.91394423435571,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 107.8495467079693,
            "drawdown_pct": -0.5094908960181166,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 113.32767770600697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 113.32767770600697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 118.73126781276872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 116.89897343151989,
            "drawdown_pct": -0.8376920225311557,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.41132637264676,
            "drawdown_pct": -1.5178174905307928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.41132637264676,
            "drawdown_pct": -1.5178174905307928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 112.83983046663758,
            "drawdown_pct": -2.6934591496877935,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 112.83983046663758,
            "drawdown_pct": -2.6934591496877935,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 124.84797286599732,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 123.54712158440529,
            "drawdown_pct": -0.5785470355862632,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 123.54712158440529,
            "drawdown_pct": -0.5785470355862632,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 128.70357407838776,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 147.3800872844262,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 147.9821430653201,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 153.6396229513728,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 162.35281355955556,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 187.6868859200962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 187.6868859200962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 183.6476028019685,
            "drawdown_pct": -1.4040553517790766,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 183.6476028019685,
            "drawdown_pct": -1.4040553517790766,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 189.99701502690414,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p70_cap1",
        "variant": "ridge_a1_H10_c12_p70_cap1",
        "gain_pct": 19.023591747389176,
        "max_drawdown_pct": -1.4040553517790877,
        "capital_score": 16.917508719720544,
        "stability_score": -0.337079448315734,
        "n_trades": 6,
        "skipped_by_capacity": 51,
        "avg_trade_ret_pct": 2.9949286077355173,
        "median_trade_ret_pct": 2.471498871979464,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8501835267214511,
        "top_asset_trade_share": 0.8333333333333334,
        "long_counts": {
          "XRP": 5,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 6,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 14.55152070335366,
          "2026-03-31 00:00:00+00:00": 2.5642198938188727
        }
      },
      "selection_score": 2050.8414824466213
    },
    {
      "name": "ridge_a1_H10_c12_p70_cap2",
      "variant": {
        "name": "ridge_a1_H10_c12_p70_cap2",
        "threshold": 0.03315845290699538,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p70_cap2",
        "variant": "ridge_a1_H10_c12_p70_cap2",
        "gain_pct": 2109.546892409563,
        "max_drawdown_pct": -11.489131452600088,
        "capital_score": 2092.313195230663,
        "stability_score": 2066.1540048836428,
        "n_trades": 188,
        "skipped_by_capacity": 1783,
        "avg_trade_ret_pct": 1.68549486935013,
        "median_trade_ret_pct": 1.4364806098937188,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.6272754534034,
        "month_gain_concentration": 0.17489020973664768,
        "top_asset_trade_share": 0.601063829787234,
        "long_counts": {
          "SOL": 54,
          "XRP": 113,
          "BTC": 4,
          "ETH": 14,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 188,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.942084942084942,
        "max_open_trades": 2,
        "avg_exposure": 0.971042471042471,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 45.63726888546975,
          "2024-10-31 00:00:00+00:00": 5.007348426532019,
          "2024-11-30 00:00:00+00:00": 125.1148463723662,
          "2024-12-31 00:00:00+00:00": 260.9181611964612,
          "2025-01-31 00:00:00+00:00": 158.95392441429613,
          "2025-02-28 00:00:00+00:00": 326.2961162551612,
          "2025-03-31 00:00:00+00:00": 233.23500657259478,
          "2025-04-30 00:00:00+00:00": 369.43675719365,
          "2025-05-31 00:00:00+00:00": 46.88282531410118,
          "2025-07-31 00:00:00+00:00": -4.258024957950738,
          "2025-08-31 00:00:00+00:00": 99.018999749248,
          "2025-10-31 00:00:00+00:00": -7.397839315682177,
          "2025-11-30 00:00:00+00:00": 178.40826783481748,
          "2026-01-31 00:00:00+00:00": -11.708909956312255,
          "2026-02-28 00:00:00+00:00": 263.48291959181256,
          "2026-03-31 00:00:00+00:00": -30.6272754534034
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p70_cap2",
        "variant": "ridge_a1_H10_c12_p70_cap2",
        "gain_pct": 193.2332757417858,
        "max_drawdown_pct": -7.960624221703194,
        "capital_score": 181.292339409231,
        "stability_score": 181.292339409231,
        "n_trades": 102,
        "skipped_by_capacity": 600,
        "avg_trade_ret_pct": 1.0774843382368635,
        "median_trade_ret_pct": 1.147014354538602,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.598716346179998,
        "month_gain_concentration": 0.19764057213983846,
        "top_asset_trade_share": 0.4803921568627451,
        "long_counts": {
          "XRP": 49,
          "SOL": 32,
          "ETH": 13,
          "BNB": 6,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 102,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9024390243902438,
        "max_open_trades": 2,
        "avg_exposure": 0.9512195121951219,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.74323836906933,
          "2025-02-28 00:00:00+00:00": 37.258044688335616,
          "2025-03-31 00:00:00+00:00": 25.996257342690598,
          "2025-04-30 00:00:00+00:00": 13.043825733001057,
          "2025-05-31 00:00:00+00:00": 4.115200206398953,
          "2025-07-31 00:00:00+00:00": 4.371164415927865,
          "2025-08-31 00:00:00+00:00": 7.038065962263147,
          "2025-10-31 00:00:00+00:00": 13.057455706401385,
          "2025-11-30 00:00:00+00:00": 16.235098762443812,
          "2025-12-31 00:00:00+00:00": 0.598716346179998,
          "2026-01-31 00:00:00+00:00": 5.65475579919854,
          "2026-02-28 00:00:00+00:00": 30.487819656386222,
          "2026-03-31 00:00:00+00:00": 5.914508154587679
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2367547412292197,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 8.67030472335233,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.68928899074018,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.994440538358248,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.74323836906933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 25.03208460406381,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 25.03208460406381,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 29.92547356962956,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 29.92547356962956,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 34.093079904485336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 43.40689544836269,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 44.4050923725284,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.4050923725284,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 50.26430166768614,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 62.00128305740495,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 80.65880357643954,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 80.65880357643954,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 80.99721971880632,
            "drawdown_pct": -3.8478670203242027,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 80.99721971880632,
            "drawdown_pct": -3.8478670203242027,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 73.25534654595177,
            "drawdown_pct": -7.960624221703194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 84.00374634458981,
            "drawdown_pct": -2.250693603083953,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 84.00374634458981,
            "drawdown_pct": -2.250693603083953,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 87.99754040009555,
            "drawdown_pct": -0.12904876392554332,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 87.99754040009555,
            "drawdown_pct": -0.12904876392554332,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 98.71285610636446,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 98.71285610636446,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 98.0321311579871,
            "drawdown_pct": -0.3425671402020325,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 95.10063195286077,
            "drawdown_pct": -1.8178109983836066,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 101.0413661330966,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 105.15656633949555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 104.11264367994079,
            "drawdown_pct": -0.5088419435853031,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 109.52773075542342,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 109.52773075542342,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 118.39141287743112,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 116.56579671768657,
            "drawdown_pct": -0.8359377027196357,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.08298173757356,
            "drawdown_pct": -1.5149089866982823,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.08298173757356,
            "drawdown_pct": -1.5149089866982823,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 112.52306816052032,
            "drawdown_pct": -2.687076675585376,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 112.52306816052032,
            "drawdown_pct": -2.687076675585376,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 124.68245806702546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 123.38444449051403,
            "drawdown_pct": -0.577710243905305,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 123.38444449051403,
            "drawdown_pct": -0.577710243905305,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 129.62325242408795,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 145.85835118653176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 146.45706753271176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 152.1118233319103,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 160.84690952414428,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 186.60967613155503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 186.60967613155503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 182.59964298829652,
            "drawdown_pct": -1.3991269232019543,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 182.59964298829652,
            "drawdown_pct": -1.3991269232019543,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 188.5141511428842,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p70_cap2",
        "variant": "ridge_a1_H10_c12_p70_cap2",
        "gain_pct": 19.369980172485313,
        "max_drawdown_pct": -1.3991269232019543,
        "capital_score": 17.27128978768238,
        "stability_score": 4.123360713379447,
        "n_trades": 11,
        "skipped_by_capacity": 46,
        "avg_trade_ret_pct": 1.6363612066068303,
        "median_trade_ret_pct": 1.3522558108335236,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9222807993357538,
        "top_asset_trade_share": 0.6363636363636364,
        "long_counts": {
          "XRP": 7,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 11,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9230769230769231,
        "max_open_trades": 2,
        "avg_exposure": 0.9615384615384616,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.316140892055003,
          "2026-03-31 00:00:00+00:00": 1.2906679053156154
        }
      },
      "selection_score": 2092.313195230663
    },
    {
      "name": "ridge_a1_H10_c12_p70_cap3",
      "variant": {
        "name": "ridge_a1_H10_c12_p70_cap3",
        "threshold": 0.03315845290699538,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p70_cap3",
        "variant": "ridge_a1_H10_c12_p70_cap3",
        "gain_pct": 1923.4102718897514,
        "max_drawdown_pct": -11.378465332914377,
        "capital_score": 1906.3425738903798,
        "stability_score": 1882.4967742738831,
        "n_trades": 271,
        "skipped_by_capacity": 1700,
        "avg_trade_ret_pct": 1.1271685947253667,
        "median_trade_ret_pct": 0.9550945607459868,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -28.080116959670022,
        "month_gain_concentration": 0.17474939120766053,
        "top_asset_trade_share": 0.6088560885608856,
        "long_counts": {
          "SOL": 79,
          "XRP": 165,
          "BTC": 6,
          "BNB": 5,
          "ETH": 16
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 271,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.833976833976834,
        "max_open_trades": 3,
        "avg_exposure": 0.9446589446589446,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.4927288632901,
          "2024-10-31 00:00:00+00:00": 4.730716316084397,
          "2024-11-30 00:00:00+00:00": 124.25993060874629,
          "2024-12-31 00:00:00+00:00": 228.02894214409702,
          "2025-01-31 00:00:00+00:00": 138.83167734837002,
          "2025-02-28 00:00:00+00:00": 299.84910605326843,
          "2025-03-31 00:00:00+00:00": 237.98344671734708,
          "2025-04-30 00:00:00+00:00": 336.7960474354902,
          "2025-05-31 00:00:00+00:00": 29.019459028810388,
          "2025-07-31 00:00:00+00:00": -2.6170714087063516,
          "2025-08-31 00:00:00+00:00": 91.81712265751253,
          "2025-10-31 00:00:00+00:00": -4.551996407306888,
          "2025-11-30 00:00:00+00:00": 165.6071594869734,
          "2026-01-31 00:00:00+00:00": -10.820981311156402,
          "2026-02-28 00:00:00+00:00": 228.8925089271413,
          "2026-03-31 00:00:00+00:00": -28.080116959670022
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p70_cap3",
        "variant": "ridge_a1_H10_c12_p70_cap3",
        "gain_pct": 180.0340802444975,
        "max_drawdown_pct": -8.702878026253458,
        "capital_score": 166.9797632051173,
        "stability_score": 166.9797632051173,
        "n_trades": 145,
        "skipped_by_capacity": 557,
        "avg_trade_ret_pct": 0.7203712685827635,
        "median_trade_ret_pct": 0.7773601204049123,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.5709359502135385,
        "month_gain_concentration": 0.201846159558141,
        "top_asset_trade_share": 0.4413793103448276,
        "long_counts": {
          "XRP": 64,
          "SOL": 48,
          "ETH": 20,
          "BNB": 9,
          "BTC": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 145,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.731707317073171,
        "max_open_trades": 3,
        "avg_exposure": 0.9105691056910568,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 23.746512187250886,
          "2025-02-28 00:00:00+00:00": 35.161127636216946,
          "2025-03-31 00:00:00+00:00": 23.64508255870595,
          "2025-04-30 00:00:00+00:00": 12.995633624331617,
          "2025-05-31 00:00:00+00:00": 4.009581501992415,
          "2025-07-31 00:00:00+00:00": 2.832603395257877,
          "2025-08-31 00:00:00+00:00": 5.69517212142523,
          "2025-10-31 00:00:00+00:00": 11.732199668758227,
          "2025-11-30 00:00:00+00:00": 14.585066545737845,
          "2025-12-31 00:00:00+00:00": 0.5709359502135385,
          "2026-01-31 00:00:00+00:00": 5.401579230897738,
          "2026-02-28 00:00:00+00:00": 27.11169698122771,
          "2026-03-31 00:00:00+00:00": 6.710463451500914
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8245031608194751,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 7.299896568260834,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.381608296688327,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.58453248824533,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 23.746512187250886,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 26.104818955881967,
            "drawdown_pct": -2.4653553614716883,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 26.104818955881967,
            "drawdown_pct": -2.4653553614716883,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 31.35314002735231,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 31.35314002735231,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 35.69552621644044,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.137897345205374,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 44.83735190410334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.83735190410334,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.089327788336334,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 58.90763982346783,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 76.75401251863977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 76.75401251863977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 77.14672686190042,
            "drawdown_pct": -3.8355026473807063,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 77.14672686190042,
            "drawdown_pct": -3.8355026473807063,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 68.18042806647469,
            "drawdown_pct": -8.702878026253458,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 78.66774037363984,
            "drawdown_pct": -3.0098170566049243,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 78.66774037363984,
            "drawdown_pct": -3.0098170566049243,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 82.55272238217378,
            "drawdown_pct": -0.9008458738300695,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 82.55272238217378,
            "drawdown_pct": -0.9008458738300695,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 92.98337151212237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 92.98337151212237,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 92.60569433105394,
            "drawdown_pct": -0.19570452008851325,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 89.75804354890914,
            "drawdown_pct": -1.6712983807574466,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 95.5483560065054,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 99.55793750849782,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 98.880693397502,
            "drawdown_pct": -0.33937217404192976,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 102.39054090375569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 102.39054090375569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 109.83861057424025,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 108.08571302518092,
            "drawdown_pct": -0.8353551066042519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 106.66177398849143,
            "drawdown_pct": -1.5139428235133368,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 106.66177398849143,
            "drawdown_pct": -1.5139428235133368,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 104.20453066565065,
            "drawdown_pct": -2.6849586418683846,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 104.20453066565065,
            "drawdown_pct": -2.6849586418683846,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 114.84628533449722,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 113.60569406649734,
            "drawdown_pct": -0.5774320305647285,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 113.60569406649734,
            "drawdown_pct": -0.5774320305647285,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 119.81791269393915,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 134.402979239677,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 134.97391518989053,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 140.37549442078827,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 148.7279441321406,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 171.27829022191014,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 171.27829022191014,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 167.48719140201598,
            "drawdown_pct": -1.3974943652118155,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 167.48719140201598,
            "drawdown_pct": -1.3974943652118155,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 174.1976548535169,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p70_cap3",
        "variant": "ridge_a1_H10_c12_p70_cap3",
        "gain_pct": 18.807803667263144,
        "max_drawdown_pct": -0.013509213160267652,
        "capital_score": 18.787539847522744,
        "stability_score": 6.106443041212698,
        "n_trades": 15,
        "skipped_by_capacity": 42,
        "avg_trade_ret_pct": 1.1614661259740844,
        "median_trade_ret_pct": 0.9015038738890159,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9472438722524019,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 9,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 15,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6923076923076925,
        "max_open_trades": 3,
        "avg_exposure": 0.8974358974358974,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.470036892860705,
          "2026-03-31 00:00:00+00:00": 0.8615935837506754
        }
      },
      "selection_score": 1906.3425738903798
    },
    {
      "name": "ridge_a1_H10_c12_p70_cap5",
      "variant": {
        "name": "ridge_a1_H10_c12_p70_cap5",
        "threshold": 0.03315845290699538,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p70_cap5",
        "variant": "ridge_a1_H10_c12_p70_cap5",
        "gain_pct": 1557.2479789749343,
        "max_drawdown_pct": -11.291988810650333,
        "capital_score": 1540.3099957589588,
        "stability_score": 1536.342032654739,
        "n_trades": 416,
        "skipped_by_capacity": 1555,
        "avg_trade_ret_pct": 0.6812667155754106,
        "median_trade_ret_pct": 0.602006010400939,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -8.727578488835434,
        "month_gain_concentration": 0.16351272522480337,
        "top_asset_trade_share": 0.5913461538461539,
        "long_counts": {
          "SOL": 124,
          "XRP": 246,
          "BTC": 11,
          "BNB": 9,
          "ETH": 26
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 416,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.455598455598456,
        "max_open_trades": 5,
        "avg_exposure": 0.8911196911196911,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 28.315415639689974,
          "2024-10-31 00:00:00+00:00": 3.612918622011705,
          "2024-11-30 00:00:00+00:00": 111.23359739719368,
          "2024-12-31 00:00:00+00:00": 176.15510362775643,
          "2025-01-31 00:00:00+00:00": 110.16074689870032,
          "2025-02-28 00:00:00+00:00": 244.65705120400355,
          "2025-03-31 00:00:00+00:00": 201.01938732027133,
          "2025-04-30 00:00:00+00:00": 251.57456882248357,
          "2025-05-31 00:00:00+00:00": 14.099988972966912,
          "2025-07-31 00:00:00+00:00": -1.2643819323311618,
          "2025-08-31 00:00:00+00:00": 74.27670811730854,
          "2025-10-31 00:00:00+00:00": -2.2011884245446254,
          "2025-11-30 00:00:00+00:00": 133.65881579060988,
          "2026-01-31 00:00:00+00:00": -8.727578488835434,
          "2026-02-28 00:00:00+00:00": 185.44384631001026,
          "2026-03-31 00:00:00+00:00": 4.354482880188698
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p70_cap5",
        "variant": "ridge_a1_H10_c12_p70_cap5",
        "gain_pct": 118.0144271429269,
        "max_drawdown_pct": -9.745574157577519,
        "capital_score": 103.39606590656062,
        "stability_score": 103.39606590656062,
        "n_trades": 214,
        "skipped_by_capacity": 488,
        "avg_trade_ret_pct": 0.3682047367642253,
        "median_trade_ret_pct": 0.4638731619989962,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.266354458039018,
        "month_gain_concentration": 0.21113827780900873,
        "top_asset_trade_share": 0.4392523364485981,
        "long_counts": {
          "XRP": 94,
          "SOL": 63,
          "ETH": 33,
          "BTC": 9,
          "BNB": 15
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 214,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.105691056910569,
        "max_open_trades": 5,
        "avg_exposure": 0.8211382113821137,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 14.835028387800833,
          "2025-02-28 00:00:00+00:00": 17.537377979643992,
          "2025-03-31 00:00:00+00:00": 9.598352018947224,
          "2025-04-30 00:00:00+00:00": 9.883079416137491,
          "2025-05-31 00:00:00+00:00": 1.863136772740006,
          "2025-07-31 00:00:00+00:00": 1.308411671945322,
          "2025-08-31 00:00:00+00:00": 5.703670754152796,
          "2025-10-31 00:00:00+00:00": 10.520269572899991,
          "2025-11-30 00:00:00+00:00": 11.066912565075512,
          "2025-12-31 00:00:00+00:00": 0.266354458039018,
          "2026-01-31 00:00:00+00:00": 3.131721304867284,
          "2026-02-28 00:00:00+00:00": 23.7826679394598,
          "2026-03-31 00:00:00+00:00": 3.143264991386644
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.4947018964916765,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.337081343271208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.614893861153988,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 14.07212103932963,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 14.185608645498263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 14.835028387800833,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 13.287322927505684,
            "drawdown_pct": -2.055624383726773,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 11.466140364780955,
            "drawdown_pct": -3.630157035570458,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 14.685291359031552,
            "drawdown_pct": -0.846988310256469,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 14.685291359031552,
            "drawdown_pct": -0.846988310256469,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 18.382663751493695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 24.441685783979764,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 24.819843711105733,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 24.819843711105733,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 28.40580470314086,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 32.372406367444825,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 41.18842839970861,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 41.18842839970861,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 40.52541628869457,
            "drawdown_pct": -3.637073401763613,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 40.52541628869457,
            "drawdown_pct": -3.637073401763613,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 33.680156661335104,
            "drawdown_pct": -8.331094372759873,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 38.641369389331174,
            "drawdown_pct": -4.92902668584434,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 38.641369389331174,
            "drawdown_pct": -4.92902668584434,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 41.97075838639205,
            "drawdown_pct": -2.64595451275329,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 41.97075838639205,
            "drawdown_pct": -2.64595451275329,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.95286961701581,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 49.95286961701581,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 49.83563671664828,
            "drawdown_pct": -0.07817983121426453,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 47.06308772741957,
            "drawdown_pct": -1.9271267678816817,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 51.85383780252954,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 53.716974575269546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 53.40386458683875,
            "drawdown_pct": -0.2036925260179845,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 55.02538624721487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 55.02538624721487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 61.5396201855969,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 60.729057001367664,
            "drawdown_pct": -0.5017736102746584,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 59.629683338345814,
            "drawdown_pct": -1.1823333774443112,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 59.629683338345814,
            "drawdown_pct": -1.1823333774443112,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 59.07668694408625,
            "drawdown_pct": -1.5246620232738706,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 59.07668694408625,
            "drawdown_pct": -1.5246620232738706,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 67.22447594029458,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 66.2592400156382,
            "drawdown_pct": -0.5772097171953483,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 66.2592400156382,
            "drawdown_pct": -0.5772097171953483,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 71.24932657426766,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 71.98707051246896,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 71.98707051246896,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 71.98707051246896,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 77.99550878571148,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 77.99550878571148,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 77.99550878571148,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 82.31623913934317,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 82.58259359738219,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 85.71431490224947,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 92.18236111715126,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 112.4633795031564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 112.4633795031564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 109.49698284170927,
            "drawdown_pct": -1.3961919782995214,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 109.49698284170927,
            "drawdown_pct": -1.3961919782995214,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 112.64024783309591,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p70_cap5",
        "variant": "ridge_a1_H10_c12_p70_cap5",
        "gain_pct": 15.940012101278057,
        "max_drawdown_pct": 0.0,
        "capital_score": 15.940012101278057,
        "stability_score": 4.382333724490657,
        "n_trades": 21,
        "skipped_by_capacity": 36,
        "avg_trade_ret_pct": 0.7086926366956786,
        "median_trade_ret_pct": 0.5574076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.962307135071496,
        "top_asset_trade_share": 0.5238095238095238,
        "long_counts": {
          "XRP": 11,
          "ETH": 5,
          "BTC": 1,
          "SOL": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 21,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.076923076923077,
        "max_open_trades": 5,
        "avg_exposure": 0.8153846153846154,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 12.904802926514265,
          "2026-03-31 00:00:00+00:00": 0.5054716689821959
        }
      },
      "selection_score": 1540.3099957589588
    },
    {
      "name": "ridge_a1_H10_c12_p80_cap1",
      "variant": {
        "name": "ridge_a1_H10_c12_p80_cap1",
        "threshold": 0.05177790571961474,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p80_cap1",
        "variant": "ridge_a1_H10_c12_p80_cap1",
        "gain_pct": 1345.5717274188291,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 1327.812372423513,
        "stability_score": 1310.824727596901,
        "n_trades": 83,
        "skipped_by_capacity": 1231,
        "avg_trade_ret_pct": 3.3690283825288687,
        "median_trade_ret_pct": 3.085137365567101,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -19.96957253745518,
        "month_gain_concentration": 0.14919856959090513,
        "top_asset_trade_share": 0.6506024096385542,
        "long_counts": {
          "SOL": 23,
          "ETH": 4,
          "XRP": 54,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 83,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 19.666322065451553,
          "2024-10-31 00:00:00+00:00": 8.895511282929405,
          "2024-11-30 00:00:00+00:00": 127.09057704216096,
          "2024-12-31 00:00:00+00:00": 177.13185071887855,
          "2025-01-31 00:00:00+00:00": 121.825363258153,
          "2025-02-28 00:00:00+00:00": 198.10529578584033,
          "2025-03-31 00:00:00+00:00": 141.44834748386643,
          "2025-04-30 00:00:00+00:00": 69.05650978816197,
          "2025-05-31 00:00:00+00:00": 119.8338686644446,
          "2025-07-31 00:00:00+00:00": -5.518059725820194,
          "2025-10-31 00:00:00+00:00": 63.07348752982966,
          "2025-11-30 00:00:00+00:00": 64.3516589507276,
          "2026-01-31 00:00:00+00:00": 48.99317451307161,
          "2026-02-28 00:00:00+00:00": 168.3242465734579,
          "2026-03-31 00:00:00+00:00": -19.96957253745518
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p80_cap1",
        "variant": "ridge_a1_H10_c12_p80_cap1",
        "gain_pct": 148.82406167934104,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 131.0647066840248,
        "stability_score": 129.70756382688194,
        "n_trades": 42,
        "skipped_by_capacity": 401,
        "avg_trade_ret_pct": 2.290742566943314,
        "median_trade_ret_pct": 2.5316722576802433,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.486581081016709,
        "month_gain_concentration": 0.19628359339917129,
        "top_asset_trade_share": 0.5952380952380952,
        "long_counts": {
          "XRP": 25,
          "SOL": 12,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 42,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.851247304220763,
          "2025-02-28 00:00:00+00:00": 21.848861681375453,
          "2025-03-31 00:00:00+00:00": 19.607259065523266,
          "2025-04-30 00:00:00+00:00": 12.852422043281251,
          "2025-05-31 00:00:00+00:00": -1.4025827905599044,
          "2025-07-31 00:00:00+00:00": 3.7554838121484977,
          "2025-10-31 00:00:00+00:00": 13.960335837787909,
          "2025-11-30 00:00:00+00:00": 18.057618688594175,
          "2025-12-31 00:00:00+00:00": 0.5196754557661052,
          "2026-01-31 00:00:00+00:00": 4.883357209703803,
          "2026-02-28 00:00:00+00:00": 29.38851757986589,
          "2026-03-31 00:00:00+00:00": -3.486581081016709
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.473509482458411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.176080922468117,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.851247304220763,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 23.48283581517927,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 23.48283581517927,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.26858618612411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 39.10383204033991,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 40.07039804349793,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 46.700108985596216,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 63.210785002949365,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 55.8042545081062,
            "drawdown_pct": -4.53801536136802,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 55.8042545081062,
            "drawdown_pct": -4.53801536136802,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 59.80517982221707,
            "drawdown_pct": -3.795774504932581,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 53.418373259185785,
            "drawdown_pct": -7.640692294623741,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 62.792921958953855,
            "drawdown_pct": -1.9971255589878445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 62.792921958953855,
            "drawdown_pct": -1.9971255589878445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 66.30736805111948,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 66.30736805111948,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 79.15979009440073,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 77.75720730384083,
            "drawdown_pct": -0.782866953472583,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 76.8515505156117,
            "drawdown_pct": -1.2883692136348213,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 81.51269111598933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 81.51269111598933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 86.11040760788197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 86.11040760788197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 96.6105112381968,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 95.47302695377724,
            "drawdown_pct": -0.5785470355862521,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 95.47302695377724,
            "drawdown_pct": -0.5785470355862521,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 99.98190799057258,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 113.53064564237141,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 114.05032109813752,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 118.93367830784132,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 126.45462810050253,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 148.3221958877072,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 144.8356148066905,
            "drawdown_pct": -1.4040553517790877,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p80_cap1",
        "variant": "ridge_a1_H10_c12_p80_cap1",
        "gain_pct": 16.417599929071642,
        "max_drawdown_pct": -1.4040553517790877,
        "capital_score": 14.31151690140301,
        "stability_score": -5.68848309859699,
        "n_trades": 5,
        "skipped_by_capacity": 34,
        "avg_trade_ret_pct": 3.146217104824245,
        "median_trade_ret_pct": 2.7045116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.6312707005528893,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.18279140390655,
          "2026-03-31 00:00:00+00:00": -1.6312707005528893
        }
      },
      "selection_score": 1327.812372423513
    },
    {
      "name": "ridge_a1_H10_c12_p80_cap2",
      "variant": {
        "name": "ridge_a1_H10_c12_p80_cap2",
        "threshold": 0.05177790571961474,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p80_cap2",
        "variant": "ridge_a1_H10_c12_p80_cap2",
        "gain_pct": 1229.2352391706365,
        "max_drawdown_pct": -11.489131452600088,
        "capital_score": 1212.0015419917363,
        "stability_score": 1196.7094749633152,
        "n_trades": 158,
        "skipped_by_capacity": 1156,
        "avg_trade_ret_pct": 1.6751269574166603,
        "median_trade_ret_pct": 1.510152873845307,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -18.424978420826164,
        "month_gain_concentration": 0.1447396981504632,
        "top_asset_trade_share": 0.6455696202531646,
        "long_counts": {
          "SOL": 43,
          "ETH": 10,
          "XRP": 102,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 158,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9414634146341463,
        "max_open_trades": 2,
        "avg_exposure": 0.9707317073170731,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.33509554611615,
          "2024-10-31 00:00:00+00:00": 8.471512815986515,
          "2024-11-30 00:00:00+00:00": 105.8335596001185,
          "2024-12-31 00:00:00+00:00": 168.1034280124804,
          "2025-01-31 00:00:00+00:00": 119.05880467927517,
          "2025-02-28 00:00:00+00:00": 176.49969845611088,
          "2025-03-31 00:00:00+00:00": 135.47343696813016,
          "2025-04-30 00:00:00+00:00": 58.654173144711876,
          "2025-05-31 00:00:00+00:00": 111.57016731512579,
          "2025-07-31 00:00:00+00:00": -2.53726434765656,
          "2025-10-31 00:00:00+00:00": 59.00326566551939,
          "2025-11-30 00:00:00+00:00": 60.216253618531255,
          "2026-01-31 00:00:00+00:00": 45.701038583588115,
          "2026-02-28 00:00:00+00:00": 158.5079650692844,
          "2026-03-31 00:00:00+00:00": -18.424978420826164
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p80_cap2",
        "variant": "ridge_a1_H10_c12_p80_cap2",
        "gain_pct": 145.79181209876214,
        "max_drawdown_pct": -8.497588916508715,
        "capital_score": 133.04542872399907,
        "stability_score": 133.04542872399907,
        "n_trades": 79,
        "skipped_by_capacity": 364,
        "avg_trade_ret_pct": 1.16591064690226,
        "median_trade_ret_pct": 1.2651722505389695,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.4316076882886364,
        "month_gain_concentration": 0.20228583810614698,
        "top_asset_trade_share": 0.5443037974683544,
        "long_counts": {
          "XRP": 43,
          "SOL": 23,
          "ETH": 10,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 79,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.903225806451613,
        "max_open_trades": 2,
        "avg_exposure": 0.9516129032258065,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 20.676685837391034,
          "2025-02-28 00:00:00+00:00": 20.654638290096585,
          "2025-03-31 00:00:00+00:00": 18.103021495191143,
          "2025-04-30 00:00:00+00:00": 12.460191372278302,
          "2025-05-31 00:00:00+00:00": -0.6728527624791241,
          "2025-07-31 00:00:00+00:00": 3.6481315061284363,
          "2025-10-31 00:00:00+00:00": 16.71264680788562,
          "2025-11-30 00:00:00+00:00": 18.812159647602925,
          "2025-12-31 00:00:00+00:00": 0.5123547719572628,
          "2026-01-31 00:00:00+00:00": 4.839088053061943,
          "2026-02-28 00:00:00+00:00": 29.521725299385935,
          "2026-03-31 00:00:00+00:00": -3.4316076882886364
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2367547412292197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.029490201312498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 20.676685837391034,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 20.95611586351086,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 20.95611586351086,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 25.68998337086711,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 33.93981717687055,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 34.87211762944821,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 41.33132412748762,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 57.60830681630094,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 50.53716063753788,
            "drawdown_pct": -4.486531402817984,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 50.53716063753788,
            "drawdown_pct": -4.486531402817984,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 55.164577886523745,
            "drawdown_pct": -3.3707162595567275,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 46.93199040475437,
            "drawdown_pct": -8.497588916508715,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 56.04734417342485,
            "drawdown_pct": -2.8209704659269086,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 56.04734417342485,
            "drawdown_pct": -2.8209704659269086,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 59.43434562267876,
            "drawdown_pct": -0.7117034635792385,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 59.43434562267876,
            "drawdown_pct": -0.7117034635792385,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 71.89453699495706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 71.22168423247794,
            "drawdown_pct": -0.3914334767363026,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 70.3504364865899,
            "drawdown_pct": -0.8982836426107421,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 74.86981573860638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 74.86981573860638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 82.26735903205395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 82.26735903205395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 92.69568525980137,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 91.582462546492,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 91.582462546492,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 96.93308662416558,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 110.39462219409492,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 110.90697696605218,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 115.74606501911413,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 123.22116257174346,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 145.26779031850006,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 141.83618263021143,
            "drawdown_pct": -1.3991269232019432,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p80_cap2",
        "variant": "ridge_a1_H10_c12_p80_cap2",
        "gain_pct": 18.0487279758446,
        "max_drawdown_pct": -1.3991269232019543,
        "capital_score": 15.950037591041667,
        "stability_score": 1.9500375910416692,
        "n_trades": 10,
        "skipped_by_capacity": 29,
        "avg_trade_ret_pct": 1.6880730211529194,
        "median_trade_ret_pct": 1.447412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.636313273576775,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.952454165631778,
          "2026-03-31 00:00:00+00:00": -1.636313273576775
        }
      },
      "selection_score": 1212.0015419917363
    },
    {
      "name": "ridge_a1_H10_c12_p80_cap3",
      "variant": {
        "name": "ridge_a1_H10_c12_p80_cap3",
        "threshold": 0.05177790571961474,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p80_cap3",
        "variant": "ridge_a1_H10_c12_p80_cap3",
        "gain_pct": 1129.8584464857165,
        "max_drawdown_pct": -11.37846533291439,
        "capital_score": 1112.790748486345,
        "stability_score": 1098.5357414656835,
        "n_trades": 224,
        "skipped_by_capacity": 1090,
        "avg_trade_ret_pct": 1.137650091674987,
        "median_trade_ret_pct": 1.0206881140549473,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -17.067507020661424,
        "month_gain_concentration": 0.1447490484299859,
        "top_asset_trade_share": 0.65625,
        "long_counts": {
          "SOL": 61,
          "ETH": 12,
          "XRP": 147,
          "BTC": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 224,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8146341463414632,
        "max_open_trades": 3,
        "avg_exposure": 0.938211382113821,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 14.150651505770071,
          "2024-10-31 00:00:00+00:00": 6.059370530727207,
          "2024-11-30 00:00:00+00:00": 103.58513174024522,
          "2024-12-31 00:00:00+00:00": 154.50538565554592,
          "2025-01-31 00:00:00+00:00": 101.35715600174115,
          "2025-02-28 00:00:00+00:00": 162.53454659329776,
          "2025-03-31 00:00:00+00:00": 130.48222489131092,
          "2025-04-30 00:00:00+00:00": 50.818717490860536,
          "2025-05-31 00:00:00+00:00": 105.5638729235211,
          "2025-07-31 00:00:00+00:00": -1.5778203753085336,
          "2025-10-31 00:00:00+00:00": 55.356123050091696,
          "2025-11-30 00:00:00+00:00": 56.49962173564609,
          "2026-01-31 00:00:00+00:00": 42.83423449879888,
          "2026-02-28 00:00:00+00:00": 139.12422475667358,
          "2026-03-31 00:00:00+00:00": -17.067507020661424
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p80_cap3",
        "variant": "ridge_a1_H10_c12_p80_cap3",
        "gain_pct": 134.50732867006414,
        "max_drawdown_pct": -8.418055025060179,
        "capital_score": 121.88024613247387,
        "stability_score": 121.88024613247387,
        "n_trades": 111,
        "skipped_by_capacity": 332,
        "avg_trade_ret_pct": 0.779937857118449,
        "median_trade_ret_pct": 0.8443333380941824,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.2544033745588763,
        "month_gain_concentration": 0.19899502824390142,
        "top_asset_trade_share": 0.5225225225225225,
        "long_counts": {
          "XRP": 58,
          "SOL": 33,
          "ETH": 14,
          "BNB": 5,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 111,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7204301075268815,
        "max_open_trades": 3,
        "avg_exposure": 0.906810035842294,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 16.16659698272855,
          "2025-02-28 00:00:00+00:00": 21.165466088244642,
          "2025-03-31 00:00:00+00:00": 17.43396648886653,
          "2025-04-30 00:00:00+00:00": 12.141290652628527,
          "2025-05-31 00:00:00+00:00": -0.4355540842900325,
          "2025-07-31 00:00:00+00:00": 2.362965341477178,
          "2025-10-31 00:00:00+00:00": 14.27205222892627,
          "2025-11-30 00:00:00+00:00": 18.112409702861243,
          "2025-12-31 00:00:00+00:00": 0.49011011617042755,
          "2026-01-31 00:00:00+00:00": 4.636892497957035,
          "2026-02-28 00:00:00+00:00": 26.527971893194632,
          "2026-03-31 00:00:00+00:00": -3.2544033745588763
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8245031608194751,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.006648965336865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 16.16659698272855,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 18.38044905104914,
            "drawdown_pct": -2.4653553614717105,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 18.38044905104914,
            "drawdown_pct": -2.4653553614717105,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 23.307291739131557,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 32.165579684549186,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 32.7785256453094,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 37.33206307097319,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 52.75535664756998,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 45.92762571104251,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 45.92762571104251,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 51.24093730290781,
            "drawdown_pct": -2.855897096314597,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 42.58136916211882,
            "drawdown_pct": -8.418055025060179,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 51.472387961258306,
            "drawdown_pct": -2.7072332029740354,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 51.472387961258306,
            "drawdown_pct": -2.7072332029740354,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 54.76602955983972,
            "drawdown_pct": -0.5916825849582641,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 54.76602955983972,
            "drawdown_pct": -0.5916825849582641,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 66.90732021246825,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 66.47176612817822,
            "drawdown_pct": -0.26095565115753505,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 65.90680727630303,
            "drawdown_pct": -0.5994422143328348,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 68.8347314696554,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 68.8347314696554,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 75.04793114375249,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 75.04793114375249,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 84.17024166472225,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 83.10678369858167,
            "drawdown_pct": -0.5774320305647396,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 83.10678369858167,
            "drawdown_pct": -0.5774320305647396,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 88.43201333477842,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 101.21919340144291,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 101.70930351761334,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 106.34619601557037,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 113.51621236645448,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 132.874167908765,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 129.61976453420613,
            "drawdown_pct": -1.3974943652118044,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p80_cap3",
        "variant": "ridge_a1_H10_c12_p80_cap3",
        "gain_pct": 17.9278706609102,
        "max_drawdown_pct": -0.013509213160267652,
        "capital_score": 17.9076068411698,
        "stability_score": 4.764749698312661,
        "n_trades": 14,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 1.1911307034890934,
        "median_trade_ret_pct": 0.9152583514475633,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -0.015601201019592281,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8181818181818183,
        "max_open_trades": 3,
        "avg_exposure": 0.9393939393939393,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.485638093880297,
          "2026-03-31 00:00:00+00:00": -0.015601201019592281
        }
      },
      "selection_score": 1112.790748486345
    },
    {
      "name": "ridge_a1_H10_c12_p80_cap5",
      "variant": {
        "name": "ridge_a1_H10_c12_p80_cap5",
        "threshold": 0.05177790571961474,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p80_cap5",
        "variant": "ridge_a1_H10_c12_p80_cap5",
        "gain_pct": 1021.3711667372452,
        "max_drawdown_pct": -11.291988810650333,
        "capital_score": 1004.4331835212697,
        "stability_score": 1002.0182275095395,
        "n_trades": 341,
        "skipped_by_capacity": 973,
        "avg_trade_ret_pct": 0.7154258454194521,
        "median_trade_ret_pct": 0.6491085860763119,
        "positive_month_rate": 0.875,
        "worst_month_pct": -0.8573700705657075,
        "month_gain_concentration": 0.1431361194665631,
        "top_asset_trade_share": 0.6304985337243402,
        "long_counts": {
          "SOL": 103,
          "BNB": 1,
          "ETH": 17,
          "XRP": 215,
          "BTC": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 341,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.443902439024391,
        "max_open_trades": 5,
        "avg_exposure": 0.888780487804878,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 15.039176606895694,
          "2024-10-31 00:00:00+00:00": 3.8548503924949102,
          "2024-11-30 00:00:00+00:00": 97.47600082004209,
          "2024-12-31 00:00:00+00:00": 136.7213598454753,
          "2025-01-31 00:00:00+00:00": 86.17113078036442,
          "2025-02-28 00:00:00+00:00": 143.32716441054384,
          "2025-03-31 00:00:00+00:00": 118.89816516682163,
          "2025-04-30 00:00:00+00:00": 43.197317112419,
          "2025-05-31 00:00:00+00:00": 96.71364813764183,
          "2025-07-31 00:00:00+00:00": -0.8573700705657075,
          "2025-10-31 00:00:00+00:00": 50.36660588981522,
          "2025-11-30 00:00:00+00:00": 51.41105662712846,
          "2026-01-31 00:00:00+00:00": 29.731843212073954,
          "2026-02-28 00:00:00+00:00": 125.47994321859017,
          "2026-03-31 00:00:00+00:00": 2.946445921095801
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p80_cap5",
        "variant": "ridge_a1_H10_c12_p80_cap5",
        "gain_pct": 95.28575909710824,
        "max_drawdown_pct": -9.745574157577519,
        "capital_score": 80.66739786074196,
        "stability_score": 80.66739786074196,
        "n_trades": 165,
        "skipped_by_capacity": 278,
        "avg_trade_ret_pct": 0.4104742051369482,
        "median_trade_ret_pct": 0.5132891053213391,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.697008162960259,
        "month_gain_concentration": 0.25953690389124406,
        "top_asset_trade_share": 0.49696969696969695,
        "long_counts": {
          "XRP": 82,
          "SOL": 48,
          "ETH": 22,
          "BTC": 4,
          "BNB": 9
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 165,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.096774193548387,
        "max_open_trades": 5,
        "avg_exposure": 0.8193548387096776,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 10.920895492488427,
          "2025-02-28 00:00:00+00:00": 9.848709796729963,
          "2025-03-31 00:00:00+00:00": 8.065791162096218,
          "2025-04-30 00:00:00+00:00": 10.296416753816231,
          "2025-05-31 00:00:00+00:00": -0.217843397470034,
          "2025-07-31 00:00:00+00:00": 1.1824111162401607,
          "2025-10-31 00:00:00+00:00": 12.478277125581684,
          "2025-11-30 00:00:00+00:00": 13.62733731075943,
          "2025-12-31 00:00:00+00:00": -0.15995561825647542,
          "2026-01-31 00:00:00+00:00": 2.8480118674962966,
          "2026-02-28 00:00:00+00:00": 24.278810902180737,
          "2026-03-31 00:00:00+00:00": -2.697008162960259
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.4947018964916765,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.397744018143811,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 10.920895492488427,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 9.425943316094902,
            "drawdown_pct": -2.055624383726795,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 7.666835458947446,
            "drawdown_pct": -3.6301570355704804,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 10.776262225508361,
            "drawdown_pct": -0.8469883102564912,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 17.84480914203975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 18.172575621170964,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 20.76960528921839,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 28.812879036936522,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 22.32889828609339,
            "drawdown_pct": -5.033643219001327,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 22.32889828609339,
            "drawdown_pct": -5.033643219001327,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 26.02359170517782,
            "drawdown_pct": -2.16537923273874,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 26.02359170517782,
            "drawdown_pct": -2.16537923273874,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 26.02359170517782,
            "drawdown_pct": -2.16537923273874,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 26.02359170517782,
            "drawdown_pct": -2.16537923273874,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 26.02359170517782,
            "drawdown_pct": -2.16537923273874,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.759130561302243,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.759130561302243,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.759130561302243,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 27.26610536031511,
            "drawdown_pct": -2.671343244630664,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 28.01530546065635,
            "drawdown_pct": -2.098381267042415,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 28.01530546065635,
            "drawdown_pct": -2.098381267042415,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 28.01530546065635,
            "drawdown_pct": -2.098381267042415,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 20.557133038145807,
            "drawdown_pct": -7.8021301299289085,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 25.031316775039627,
            "drawdown_pct": -4.380431226236481,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 25.031316775039627,
            "drawdown_pct": -4.380431226236481,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.835396451314608,
            "drawdown_pct": -1.4712044212360054,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.835396451314608,
            "drawdown_pct": -1.4712044212360054,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 31.070591802601484,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 31.070591802601484,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 31.070591802601484,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 31.070591802601484,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 39.13181320513084,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 38.913969807660806,
            "drawdown_pct": -0.15657339069451437,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 38.63101243356772,
            "drawdown_pct": -0.35994698841792516,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 40.096380923900966,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 40.096380923900966,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 45.98329158641428,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 45.98329158641428,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 53.46044665965354,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 52.57465804948265,
            "drawdown_pct": -0.5772097171953372,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 52.57465804948265,
            "drawdown_pct": -0.5772097171953372,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 57.15401706885862,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 63.76864283166688,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 63.76864283166688,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 63.76864283166688,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 66.20199536024208,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 66.0420397419856,
            "drawdown_pct": -0.09624169548011485,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 68.8900516094819,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 74.77214346450265,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 76.09280226024185,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 76.09280226024185,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 76.09280226024185,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 76.09280226024185,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 76.09280226024185,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 76.09280226024185,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 76.09280226024185,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 93.16886251166264,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 90.47185434870238,
            "drawdown_pct": -1.3961919782995214,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p80_cap5",
        "variant": "ridge_a1_H10_c12_p80_cap5",
        "gain_pct": 16.69966105040659,
        "max_drawdown_pct": 0.0,
        "capital_score": 16.69966105040659,
        "stability_score": 5.605337553920297,
        "n_trades": 19,
        "skipped_by_capacity": 20,
        "avg_trade_ret_pct": 0.8186831845841456,
        "median_trade_ret_pct": 0.5574076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9090360977541886,
        "top_asset_trade_share": 0.5789473684210527,
        "long_counts": {
          "XRP": 11,
          "ETH": 4,
          "BTC": 1,
          "SOL": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 19,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.090909090909091,
        "max_open_trades": 5,
        "avg_exposure": 0.8181818181818182,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 13.506191091232964,
          "2026-03-31 00:00:00+00:00": 1.3515149169228948
        }
      },
      "selection_score": 1004.4331835212697
    },
    {
      "name": "ridge_a1_H10_c12_p90_cap1",
      "variant": {
        "name": "ridge_a1_H10_c12_p90_cap1",
        "threshold": 0.06528395684989366,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p90_cap1",
        "variant": "ridge_a1_H10_c12_p90_cap1",
        "gain_pct": 663.2079811176883,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 645.448626122372,
        "stability_score": 640.948626122372,
        "n_trades": 60,
        "skipped_by_capacity": 597,
        "avg_trade_ret_pct": 3.560870302371013,
        "median_trade_ret_pct": 3.3455499917021103,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14147100223528,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "SOL": 14,
          "ETH": 3,
          "XRP": 42,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 60,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 5.070130186267946,
          "2024-10-31 00:00:00+00:00": 7.02975073469959,
          "2024-11-30 00:00:00+00:00": 81.37537728028556,
          "2024-12-31 00:00:00+00:00": 92.55253998468294,
          "2025-01-31 00:00:00+00:00": 91.93210820921263,
          "2025-02-28 00:00:00+00:00": 83.52215656746614,
          "2025-03-31 00:00:00+00:00": 72.14296692649714,
          "2025-04-30 00:00:00+00:00": 34.258080429986876,
          "2025-07-31 00:00:00+00:00": 39.0567295630176,
          "2025-10-31 00:00:00+00:00": 35.52719084790135,
          "2025-11-30 00:00:00+00:00": 36.24714215842789,
          "2026-02-28 00:00:00+00:00": 95.36226995180232
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p90_cap1",
        "variant": "ridge_a1_H10_c12_p90_cap1",
        "gain_pct": 121.30340190536825,
        "max_drawdown_pct": -10.89457843036894,
        "capital_score": 104.96153425981484,
        "stability_score": 104.90981012188381,
        "n_trades": 29,
        "skipped_by_capacity": 170,
        "avg_trade_ret_pct": 2.8778695229843847,
        "median_trade_ret_pct": 3.1909258775561478,
        "positive_month_rate": 1.0,
        "worst_month_pct": 3.11357546832582,
        "month_gain_concentration": 0.20877334142966567,
        "top_asset_trade_share": 0.5517241379310345,
        "long_counts": {
          "XRP": 16,
          "SOL": 11,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 29,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 17.551669735860642,
          "2025-02-28 00:00:00+00:00": 25.925352006872075,
          "2025-03-31 00:00:00+00:00": 16.376887466633065,
          "2025-04-30 00:00:00+00:00": 3.11357546832582,
          "2025-07-31 00:00:00+00:00": 15.798868173577318,
          "2025-10-31 00:00:00+00:00": 13.749112015013054,
          "2025-11-30 00:00:00+00:00": 5.956548088854021,
          "2026-02-28 00:00:00+00:00": 25.982859600681138
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 9.468370400323423,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 17.551669735860642,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.44947951806202,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.364927761090584,
            "drawdown_pct": -2.3645565841789007,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.36401067083003,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 43.47702174273272,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 50.267972538004074,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 65.49505251528964,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 63.112328116892996,
            "drawdown_pct": -1.439755667726994,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 63.112328116892996,
            "drawdown_pct": -1.439755667726994,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 47.46506422063115,
            "drawdown_pct": -10.89457843036894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 56.475839114686806,
            "drawdown_pct": -5.449838689147269,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 56.475839114686806,
            "drawdown_pct": -5.449838689147269,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 59.85390920936578,
            "drawdown_pct": -3.408647702868761,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 74.17573662419741,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 78.76635285126892,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 83.29450459452394,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 93.63573869232198,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 92.51546486628197,
            "drawdown_pct": -0.5785470355862743,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.472012955136,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 104.805107776228,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 124.45487255581713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p90_cap1",
        "variant": "ridge_a1_H10_c12_p90_cap1",
        "gain_pct": 7.769687845663796,
        "max_drawdown_pct": 0.0,
        "capital_score": 7.769687845663796,
        "stability_score": -18.230312154336204,
        "n_trades": 2,
        "skipped_by_capacity": 8,
        "avg_trade_ret_pct": 3.9501632586229047,
        "median_trade_ret_pct": 3.9501632586229047,
        "positive_month_rate": 1.0,
        "worst_month_pct": 9.304381869024894,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 9.304381869024894
        }
      },
      "selection_score": 545.448626122372
    },
    {
      "name": "ridge_a1_H10_c12_p90_cap2",
      "variant": {
        "name": "ridge_a1_H10_c12_p90_cap2",
        "threshold": 0.06528395684989366,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p90_cap2",
        "variant": "ridge_a1_H10_c12_p90_cap2",
        "gain_pct": 697.9407278895056,
        "max_drawdown_pct": -11.489131452600098,
        "capital_score": 680.7070307106055,
        "stability_score": 676.2587548485366,
        "n_trades": 116,
        "skipped_by_capacity": 541,
        "avg_trade_ret_pct": 1.8346816813194402,
        "median_trade_ret_pct": 1.7083063142351962,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14545288335904588,
        "top_asset_trade_share": 0.6982758620689655,
        "long_counts": {
          "SOL": 26,
          "ETH": 7,
          "XRP": 81,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 116,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9318181818181819,
        "max_open_trades": 2,
        "avg_exposure": 0.9659090909090909,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 1.4332020886702566,
          "2024-10-31 00:00:00+00:00": 6.872657392943012,
          "2024-11-30 00:00:00+00:00": 84.35233938035297,
          "2024-12-31 00:00:00+00:00": 103.16439921498119,
          "2025-01-31 00:00:00+00:00": 99.74674920021084,
          "2025-02-28 00:00:00+00:00": 91.72756716099201,
          "2025-03-31 00:00:00+00:00": 79.6463229759716,
          "2025-04-30 00:00:00+00:00": 23.76648550491211,
          "2025-07-31 00:00:00+00:00": 41.32518738233921,
          "2025-10-31 00:00:00+00:00": 37.53752105494186,
          "2025-11-30 00:00:00+00:00": 38.309216660464585,
          "2026-02-28 00:00:00+00:00": 101.38170127223441
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p90_cap2",
        "variant": "ridge_a1_H10_c12_p90_cap2",
        "gain_pct": 87.39124384353804,
        "max_drawdown_pct": -11.2824836811531,
        "capital_score": 70.46751832180838,
        "stability_score": 69.5675183218084,
        "n_trades": 50,
        "skipped_by_capacity": 149,
        "avg_trade_ret_pct": 1.2895123882508523,
        "median_trade_ret_pct": 1.5470310639696772,
        "positive_month_rate": 1.0,
        "worst_month_pct": 1.3074253936758282,
        "month_gain_concentration": 0.24261209184220242,
        "top_asset_trade_share": 0.58,
        "long_counts": {
          "XRP": 29,
          "SOL": 16,
          "ETH": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 50,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.7924528301886793,
        "max_open_trades": 2,
        "avg_exposure": 0.8962264150943396,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 8.373878017013126,
          "2025-02-28 00:00:00+00:00": 17.48547043986943,
          "2025-03-31 00:00:00+00:00": 8.389563962160096,
          "2025-04-30 00:00:00+00:00": 1.3074253936758282,
          "2025-07-31 00:00:00+00:00": 13.331209951539137,
          "2025-10-31 00:00:00+00:00": 14.229471160395804,
          "2025-11-30 00:00:00+00:00": 5.085980786310472,
          "2026-02-28 00:00:00+00:00": 21.84728888798503
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.734185200161704,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 8.373878017013126,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 16.32410371660454,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 14.948829089895497,
            "drawdown_pct": -1.182278292089456,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 18.107219705429713,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 25.859348456882557,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 28.837890358972516,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 42.22413725086716,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 40.287829037774145,
            "drawdown_pct": -1.361448380367103,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 40.287829037774145,
            "drawdown_pct": -1.361448380367103,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.17772217487729,
            "drawdown_pct": -11.2824836811531,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 30.03273372344799,
            "drawdown_pct": -8.571965183318298,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 30.03273372344799,
            "drawdown_pct": -8.571965183318298,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 34.248912419042654,
            "drawdown_pct": -5.607504454575896,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 45.03966074380571,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 48.88754776425762,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 55.18595939001068,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 64.06483830217172,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 63.11701892465342,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 68.2029997109639,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 73.06946053883684,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 90.05028859894892,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p90_cap2",
        "variant": "ridge_a1_H10_c12_p90_cap2",
        "gain_pct": 8.783392781277556,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.783392781277556,
        "stability_score": -17.216607218722444,
        "n_trades": 4,
        "skipped_by_capacity": 6,
        "avg_trade_ret_pct": 2.167671236781722,
        "median_trade_ret_pct": 1.9750816293114524,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.32700764885577,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.75,
        "max_open_trades": 2,
        "avg_exposure": 0.875,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.32700764885577
        }
      },
      "selection_score": 680.7070307106055
    },
    {
      "name": "ridge_a1_H10_c12_p90_cap3",
      "variant": {
        "name": "ridge_a1_H10_c12_p90_cap3",
        "threshold": 0.06528395684989366,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p90_cap3",
        "variant": "ridge_a1_H10_c12_p90_cap3",
        "gain_pct": 715.0641421771558,
        "max_drawdown_pct": -11.37846533291439,
        "capital_score": 697.9964441777842,
        "stability_score": 693.5325887560974,
        "n_trades": 166,
        "skipped_by_capacity": 491,
        "avg_trade_ret_pct": 1.2846272920618274,
        "median_trade_ret_pct": 1.2045274477167405,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.15032344873442896,
        "top_asset_trade_share": 0.6987951807228916,
        "long_counts": {
          "SOL": 38,
          "ETH": 9,
          "XRP": 116,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 166,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.787878787878788,
        "max_open_trades": 3,
        "avg_exposure": 0.9292929292929293,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 4.4069218334148985,
          "2024-10-31 00:00:00+00:00": 7.3228694349713805,
          "2024-11-30 00:00:00+00:00": 89.04972029268767,
          "2024-12-31 00:00:00+00:00": 109.22743128848384,
          "2025-01-31 00:00:00+00:00": 100.4113185866176,
          "2025-02-28 00:00:00+00:00": 96.66371088692392,
          "2025-03-31 00:00:00+00:00": 80.77759964757149,
          "2025-04-30 00:00:00+00:00": 16.35831875553413,
          "2025-07-31 00:00:00+00:00": 42.51564869833453,
          "2025-10-31 00:00:00+00:00": 38.59995993704217,
          "2025-11-30 00:00:00+00:00": 39.397324366095745,
          "2026-02-28 00:00:00+00:00": 101.88523123958214
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p90_cap3",
        "variant": "ridge_a1_H10_c12_p90_cap3",
        "gain_pct": 59.76952417567492,
        "max_drawdown_pct": -11.40802787463545,
        "capital_score": 42.65748236372174,
        "stability_score": 41.069247069604096,
        "n_trades": 68,
        "skipped_by_capacity": 131,
        "avg_trade_ret_pct": 0.7070331612569819,
        "median_trade_ret_pct": 1.0022646624408653,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7820680290808468,
        "month_gain_concentration": 0.27258288369421513,
        "top_asset_trade_share": 0.6029411764705882,
        "long_counts": {
          "XRP": 41,
          "SOL": 19,
          "ETH": 4,
          "BNB": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 68,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.452830188679245,
        "max_open_trades": 3,
        "avg_exposure": 0.8176100628930818,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.102697604108826,
          "2025-02-28 00:00:00+00:00": 13.131184431414951,
          "2025-03-31 00:00:00+00:00": 4.222454727167076,
          "2025-04-30 00:00:00+00:00": 0.7820680290808468,
          "2025-07-31 00:00:00+00:00": 8.518273867436022,
          "2025-10-31 00:00:00+00:00": 10.968679718657597,
          "2025-11-30 00:00:00+00:00": 4.399190895592795,
          "2026-02-28 00:00:00+00:00": 16.90939007433292
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.156123466774474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.102697604108826,
            "drawdown_pct": -0.05179126635449505,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 6.252250560126498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 5.414785697973912,
            "drawdown_pct": -0.7881855280596373,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.345738061868261,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.233882035523777,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 18.06771476139393,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 30.44052129806977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 28.698388417777096,
            "drawdown_pct": -1.3355764473769072,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 28.698388417777096,
            "drawdown_pct": -1.3355764473769072,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.559830268566174,
            "drawdown_pct": -11.40802787463545,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 17.91357107456345,
            "drawdown_pct": -9.603572646632541,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 17.91357107456345,
            "drawdown_pct": -9.603572646632541,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 20.456336762690853,
            "drawdown_pct": -7.654204717998669,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 27.506444270890384,
            "drawdown_pct": -2.249360089933039,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 29.756678659207722,
            "drawdown_pct": -0.5242562909568593,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 34.531787113135096,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 41.54267109770035,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 40.72535837786532,
            "drawdown_pct": -0.5774320305647507,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 45.124549273458115,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 47.917145787284284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 62.03393934779103,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p90_cap3",
        "variant": "ridge_a1_H10_c12_p90_cap3",
        "gain_pct": 10.675548432451592,
        "max_drawdown_pct": 0.0,
        "capital_score": 10.675548432451592,
        "stability_score": -10.324451567548408,
        "n_trades": 6,
        "skipped_by_capacity": 4,
        "avg_trade_ret_pct": 1.7207503950032872,
        "median_trade_ret_pct": 2.0152367260072053,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.690501848294446,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8333333333333334,
        "long_counts": {
          "XRP": 5,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 6,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5,
        "max_open_trades": 3,
        "avg_exposure": 0.8333333333333333,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.690501848294446
        }
      },
      "selection_score": 697.9964441777842
    },
    {
      "name": "ridge_a1_H10_c12_p90_cap5",
      "variant": {
        "name": "ridge_a1_H10_c12_p90_cap5",
        "threshold": 0.06528395684989366,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a1_H10_c12_p90_cap5",
        "variant": "ridge_a1_H10_c12_p90_cap5",
        "gain_pct": 751.7767077216537,
        "max_drawdown_pct": -8.272658647739062,
        "capital_score": 739.3677197500451,
        "stability_score": 735.4770947500451,
        "n_trades": 256,
        "skipped_by_capacity": 401,
        "avg_trade_ret_pct": 0.8447291623944638,
        "median_trade_ret_pct": 0.7355086517906879,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.1621011713128857,
        "top_asset_trade_share": 0.6796875,
        "long_counts": {
          "SOL": 65,
          "BNB": 1,
          "ETH": 13,
          "XRP": 174,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 256,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.356060606060606,
        "max_open_trades": 5,
        "avg_exposure": 0.8712121212121212,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 6.701850865657605,
          "2024-10-31 00:00:00+00:00": 8.358152240808607,
          "2024-11-30 00:00:00+00:00": 89.26366505613865,
          "2024-12-31 00:00:00+00:00": 113.37243880221911,
          "2025-01-31 00:00:00+00:00": 99.56803236560233,
          "2025-02-28 00:00:00+00:00": 121.49420205436405,
          "2025-03-31 00:00:00+00:00": 73.96391596990009,
          "2025-04-30 00:00:00+00:00": 10.194892143958782,
          "2025-07-31 00:00:00+00:00": 45.61412098569747,
          "2025-10-31 00:00:00+00:00": 40.059477492539486,
          "2025-11-30 00:00:00+00:00": 40.89018962936689,
          "2026-02-28 00:00:00+00:00": 100.01520156634695
        }
      },
      "test": {
        "label": "Test ridge_a1_H10_c12_p90_cap5",
        "variant": "ridge_a1_H10_c12_p90_cap5",
        "gain_pct": 54.21450246719672,
        "max_drawdown_pct": -8.788023320898631,
        "capital_score": 41.03246748584878,
        "stability_score": 40.03246748584878,
        "n_trades": 96,
        "skipped_by_capacity": 103,
        "avg_trade_ret_pct": 0.4583409687773293,
        "median_trade_ret_pct": 0.6188124255878709,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4595983070297791,
        "month_gain_concentration": 0.3008630170082979,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 56,
          "SOL": 25,
          "ETH": 7,
          "BTC": 1,
          "BNB": 7
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 96,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.5849056603773586,
        "max_open_trades": 5,
        "avg_exposure": 0.7169811320754715,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4242498357856732,
          "2025-02-28 00:00:00+00:00": 15.13279771104608,
          "2025-03-31 00:00:00+00:00": 1.4240111943289264,
          "2025-04-30 00:00:00+00:00": 0.4595983070297791,
          "2025-07-31 00:00:00+00:00": 5.697370176813408,
          "2025-10-31 00:00:00+00:00": 11.056878809581889,
          "2025-11-30 00:00:00+00:00": 4.235105763884661,
          "2026-02-28 00:00:00+00:00": 16.968108681072863
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.8936740800646845,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4242498357856732,
            "drawdown_pct": -0.46070008616054814,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.134873559949625,
            "drawdown_pct": -5.180378931063068,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.134873559949625,
            "drawdown_pct": -5.180378931063068,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 4.1366122036223345,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 6.376267388889687,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.545406064930916,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.557047546831754,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 17.66040634968165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 24.96008474694436,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 26.157328304802874,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 26.157328304802874,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.070592872354155,
            "drawdown_pct": -8.788023320898631,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 16.476858437392636,
            "drawdown_pct": -7.673331385095361,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.476858437392636,
            "drawdown_pct": -7.673331385095361,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 17.98105874116068,
            "drawdown_pct": -6.481010396707109,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 22.839578597366142,
            "drawdown_pct": -2.6298509583374097,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 24.138027225003867,
            "drawdown_pct": -1.6006213090691501,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 29.354360946652235,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 35.97979462256947,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 35.194906034585756,
            "drawdown_pct": -0.5772097171953261,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 39.43001179847042,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 41.03679154106726,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 56.39812047954328,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H10_c12_p90_cap5",
        "variant": "ridge_a1_H10_c12_p90_cap5",
        "gain_pct": 8.49081890998879,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.49081890998879,
        "stability_score": -6.259181090011209,
        "n_trades": 8,
        "skipped_by_capacity": 2,
        "avg_trade_ret_pct": 1.0281994828858008,
        "median_trade_ret_pct": 1.0154472205372862,
        "positive_month_rate": 1.0,
        "worst_month_pct": 8.497927720629932,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 2,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.0,
        "max_open_trades": 5,
        "avg_exposure": 0.6,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 8.497927720629932
        }
      },
      "selection_score": 739.3677197500451
    },
    {
      "name": "ridge_a10_H10_c12_p70_cap1",
      "variant": {
        "name": "ridge_a10_H10_c12_p70_cap1",
        "threshold": 0.03316205325357566,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p70_cap1",
        "variant": "ridge_a10_H10_c12_p70_cap1",
        "gain_pct": 2068.6008374419375,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 2050.8414824466213,
        "stability_score": 2025.3225388712365,
        "n_trades": 98,
        "skipped_by_capacity": 1873,
        "avg_trade_ret_pct": 3.292274529705453,
        "median_trade_ret_pct": 2.723282723610374,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -29.957719085588906,
        "month_gain_concentration": 0.1836012750066816,
        "top_asset_trade_share": 0.6020408163265306,
        "long_counts": {
          "SOL": 29,
          "XRP": 59,
          "ETH": 6,
          "BTC": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 98,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.34364075778066,
          "2024-10-31 00:00:00+00:00": 5.248857737008365,
          "2024-11-30 00:00:00+00:00": 124.89208986451462,
          "2024-12-31 00:00:00+00:00": 261.0022544995269,
          "2025-01-31 00:00:00+00:00": 150.70549656088576,
          "2025-02-28 00:00:00+00:00": 317.5583458010133,
          "2025-03-31 00:00:00+00:00": 220.9663902847892,
          "2025-04-30 00:00:00+00:00": 379.6944721884304,
          "2025-05-31 00:00:00+00:00": 45.88498376154894,
          "2025-07-31 00:00:00+00:00": -8.392825858187962,
          "2025-08-31 00:00:00+00:00": 95.93314016327759,
          "2025-10-31 00:00:00+00:00": -14.532589860867574,
          "2025-11-30 00:00:00+00:00": 172.29395391722005,
          "2026-01-31 00:00:00+00:00": -11.456345991865874,
          "2026-02-28 00:00:00+00:00": 252.5146937763975,
          "2026-03-31 00:00:00+00:00": -29.957719085588906
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p70_cap1",
        "variant": "ridge_a10_H10_c12_p70_cap1",
        "gain_pct": 193.81962452784995,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 176.0602695325337,
        "stability_score": 176.0602695325337,
        "n_trades": 54,
        "skipped_by_capacity": 647,
        "avg_trade_ret_pct": 2.094361953592339,
        "median_trade_ret_pct": 2.294028709077204,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.6020557808938918,
        "month_gain_concentration": 0.20348679950842072,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 27,
          "SOL": 17,
          "ETH": 6,
          "BTC": 1,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 54,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 29.040363543740682,
          "2025-02-28 00:00:00+00:00": 38.48137552243918,
          "2025-03-31 00:00:00+00:00": 24.924092747790837,
          "2025-04-30 00:00:00+00:00": 12.298347842318634,
          "2025-05-31 00:00:00+00:00": 4.169764578066378,
          "2025-07-31 00:00:00+00:00": 4.4137334716512555,
          "2025-08-31 00:00:00+00:00": 3.5712957255129254,
          "2025-10-31 00:00:00+00:00": 11.804600646867868,
          "2025-11-30 00:00:00+00:00": 18.676513206038436,
          "2025-12-31 00:00:00+00:00": 0.6020557808938918,
          "2026-01-31 00:00:00+00:00": 5.657479886052698,
          "2026-02-28 00:00:00+00:00": 30.007979850595717,
          "2026-03-31 00:00:00+00:00": 5.462332660192715
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.473509482458411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.176080922468117,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 24.851247304220763,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 25.472304800768896,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 29.040363543740682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.626037937580904,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 27.626037937580904,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.63946963081952,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 34.63946963081952,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 39.27854937283652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 49.581378092662334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 50.62074755250558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 50.62074755250558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 55.59673189204142,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 67.52173906617986,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 86.37582975984691,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 86.37582975984691,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 86.53000253766515,
            "drawdown_pct": -3.885611971303038,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 86.53000253766515,
            "drawdown_pct": -3.885611971303038,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 77.53107876937207,
            "drawdown_pct": -8.522539216997648,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 88.37902160887936,
            "drawdown_pct": -2.932857271976541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 88.37902160887936,
            "drawdown_pct": -2.932857271976541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 92.4458318139707,
            "drawdown_pct": -0.8373285700333466,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 92.4458318139707,
            "drawdown_pct": -0.8373285700333466,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 103.33457770860946,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 103.33457770860946,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 101.74273849474574,
            "drawdown_pct": -0.782866953472583,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 98.74517591277515,
            "drawdown_pct": -2.2570690374222435,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 104.74417965628933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 108.91394423435571,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 107.8495467079693,
            "drawdown_pct": -0.5094908960181166,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 113.32767770600697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 113.32767770600697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 118.73126781276872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 116.89897343151989,
            "drawdown_pct": -0.8376920225311557,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.41132637264676,
            "drawdown_pct": -1.5178174905307928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.41132637264676,
            "drawdown_pct": -1.5178174905307928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 112.83983046663758,
            "drawdown_pct": -2.6934591496877935,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 112.83983046663758,
            "drawdown_pct": -2.6934591496877935,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 124.84797286599732,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 123.54712158440529,
            "drawdown_pct": -0.5785470355862632,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 123.54712158440529,
            "drawdown_pct": -0.5785470355862632,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 128.70357407838776,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 147.3800872844262,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 147.9821430653201,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 153.6396229513728,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 162.35281355955556,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 187.6868859200962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 187.6868859200962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 183.6476028019685,
            "drawdown_pct": -1.4040553517790766,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 189.10993546216122,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p70_cap1",
        "variant": "ridge_a10_H10_c12_p70_cap1",
        "gain_pct": 16.417599929071642,
        "max_drawdown_pct": -1.4040553517790877,
        "capital_score": 14.31151690140301,
        "stability_score": -5.68848309859699,
        "n_trades": 5,
        "skipped_by_capacity": 51,
        "avg_trade_ret_pct": 3.146217104824245,
        "median_trade_ret_pct": 2.7045116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.6312707005528893,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.18279140390655,
          "2026-03-31 00:00:00+00:00": -1.6312707005528893
        }
      },
      "selection_score": 2050.8414824466213
    },
    {
      "name": "ridge_a10_H10_c12_p70_cap2",
      "variant": {
        "name": "ridge_a10_H10_c12_p70_cap2",
        "threshold": 0.03316205325357566,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p70_cap2",
        "variant": "ridge_a10_H10_c12_p70_cap2",
        "gain_pct": 2109.546892409563,
        "max_drawdown_pct": -11.489131452600088,
        "capital_score": 2092.313195230663,
        "stability_score": 2066.1540048836428,
        "n_trades": 188,
        "skipped_by_capacity": 1783,
        "avg_trade_ret_pct": 1.68549486935013,
        "median_trade_ret_pct": 1.4364806098937188,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.6272754534034,
        "month_gain_concentration": 0.17489020973664768,
        "top_asset_trade_share": 0.601063829787234,
        "long_counts": {
          "SOL": 54,
          "XRP": 113,
          "BTC": 4,
          "ETH": 14,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 188,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.942084942084942,
        "max_open_trades": 2,
        "avg_exposure": 0.971042471042471,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 45.63726888546975,
          "2024-10-31 00:00:00+00:00": 5.007348426532019,
          "2024-11-30 00:00:00+00:00": 125.1148463723662,
          "2024-12-31 00:00:00+00:00": 260.9181611964612,
          "2025-01-31 00:00:00+00:00": 158.95392441429613,
          "2025-02-28 00:00:00+00:00": 326.2961162551612,
          "2025-03-31 00:00:00+00:00": 233.23500657259478,
          "2025-04-30 00:00:00+00:00": 369.43675719365,
          "2025-05-31 00:00:00+00:00": 46.88282531410118,
          "2025-07-31 00:00:00+00:00": -4.258024957950738,
          "2025-08-31 00:00:00+00:00": 99.018999749248,
          "2025-10-31 00:00:00+00:00": -7.397839315682177,
          "2025-11-30 00:00:00+00:00": 178.40826783481748,
          "2026-01-31 00:00:00+00:00": -11.708909956312255,
          "2026-02-28 00:00:00+00:00": 263.48291959181256,
          "2026-03-31 00:00:00+00:00": -30.6272754534034
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p70_cap2",
        "variant": "ridge_a10_H10_c12_p70_cap2",
        "gain_pct": 194.77461840750124,
        "max_drawdown_pct": -7.960624221703194,
        "capital_score": 182.83368207494644,
        "stability_score": 182.83368207494644,
        "n_trades": 102,
        "skipped_by_capacity": 599,
        "avg_trade_ret_pct": 1.0826953203987657,
        "median_trade_ret_pct": 1.195040185308412,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.598716346179998,
        "month_gain_concentration": 0.19606330437107905,
        "top_asset_trade_share": 0.47058823529411764,
        "long_counts": {
          "XRP": 48,
          "SOL": 33,
          "ETH": 13,
          "BNB": 6,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 102,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9098360655737705,
        "max_open_trades": 2,
        "avg_exposure": 0.9549180327868853,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.74323836906933,
          "2025-02-28 00:00:00+00:00": 37.258044688335616,
          "2025-03-31 00:00:00+00:00": 25.996257342690598,
          "2025-04-30 00:00:00+00:00": 13.043825733001057,
          "2025-05-31 00:00:00+00:00": 4.115200206398953,
          "2025-07-31 00:00:00+00:00": 4.371164415927865,
          "2025-08-31 00:00:00+00:00": 7.038065962263147,
          "2025-10-31 00:00:00+00:00": 13.057455706401385,
          "2025-11-30 00:00:00+00:00": 16.235098762443812,
          "2025-12-31 00:00:00+00:00": 0.598716346179998,
          "2026-01-31 00:00:00+00:00": 5.65475579919854,
          "2026-02-28 00:00:00+00:00": 30.487819656386222,
          "2026-03-31 00:00:00+00:00": 7.431045354174785
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2367547412292197,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 8.67030472335233,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.68928899074018,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.994440538358248,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.74323836906933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 25.03208460406381,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 25.03208460406381,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 29.92547356962956,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 29.92547356962956,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 34.093079904485336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 43.40689544836269,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 44.4050923725284,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.4050923725284,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 50.26430166768614,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 62.00128305740495,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 80.65880357643954,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 80.65880357643954,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 80.99721971880632,
            "drawdown_pct": -3.8478670203242027,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 80.99721971880632,
            "drawdown_pct": -3.8478670203242027,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 73.25534654595177,
            "drawdown_pct": -7.960624221703194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 84.00374634458981,
            "drawdown_pct": -2.250693603083953,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 84.00374634458981,
            "drawdown_pct": -2.250693603083953,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 87.99754040009555,
            "drawdown_pct": -0.12904876392554332,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 87.99754040009555,
            "drawdown_pct": -0.12904876392554332,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 98.71285610636446,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 98.71285610636446,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 98.0321311579871,
            "drawdown_pct": -0.3425671402020325,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 95.10063195286077,
            "drawdown_pct": -1.8178109983836066,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 101.0413661330966,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 105.15656633949555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 104.11264367994079,
            "drawdown_pct": -0.5088419435853031,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 109.52773075542342,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 109.52773075542342,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 118.39141287743112,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 116.56579671768657,
            "drawdown_pct": -0.8359377027196357,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.08298173757356,
            "drawdown_pct": -1.5149089866982823,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.08298173757356,
            "drawdown_pct": -1.5149089866982823,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 112.52306816052032,
            "drawdown_pct": -2.687076675585376,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 112.52306816052032,
            "drawdown_pct": -2.687076675585376,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 124.68245806702546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 123.38444449051403,
            "drawdown_pct": -0.577710243905305,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 123.38444449051403,
            "drawdown_pct": -0.577710243905305,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 129.62325242408795,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 145.85835118653176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 146.45706753271176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 152.1118233319103,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 160.84690952414428,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 186.60967613155503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 186.60967613155503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 182.59964298829652,
            "drawdown_pct": -1.3991269232019543,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 190.0306883424713,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p70_cap2",
        "variant": "ridge_a10_H10_c12_p70_cap2",
        "gain_pct": 18.0487279758446,
        "max_drawdown_pct": -1.3991269232019543,
        "capital_score": 15.950037591041667,
        "stability_score": 1.9500375910416692,
        "n_trades": 10,
        "skipped_by_capacity": 46,
        "avg_trade_ret_pct": 1.6880730211529194,
        "median_trade_ret_pct": 1.447412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.636313273576775,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.952454165631778,
          "2026-03-31 00:00:00+00:00": -1.636313273576775
        }
      },
      "selection_score": 2092.313195230663
    },
    {
      "name": "ridge_a10_H10_c12_p70_cap3",
      "variant": {
        "name": "ridge_a10_H10_c12_p70_cap3",
        "threshold": 0.03316205325357566,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p70_cap3",
        "variant": "ridge_a10_H10_c12_p70_cap3",
        "gain_pct": 1923.4102718897514,
        "max_drawdown_pct": -11.378465332914377,
        "capital_score": 1906.3425738903798,
        "stability_score": 1882.4967742738831,
        "n_trades": 271,
        "skipped_by_capacity": 1700,
        "avg_trade_ret_pct": 1.1271685947253667,
        "median_trade_ret_pct": 0.9550945607459868,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -28.080116959670022,
        "month_gain_concentration": 0.17474939120766053,
        "top_asset_trade_share": 0.6088560885608856,
        "long_counts": {
          "SOL": 79,
          "XRP": 165,
          "BTC": 6,
          "BNB": 5,
          "ETH": 16
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 271,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.833976833976834,
        "max_open_trades": 3,
        "avg_exposure": 0.9446589446589446,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.4927288632901,
          "2024-10-31 00:00:00+00:00": 4.730716316084397,
          "2024-11-30 00:00:00+00:00": 124.25993060874629,
          "2024-12-31 00:00:00+00:00": 228.02894214409702,
          "2025-01-31 00:00:00+00:00": 138.83167734837002,
          "2025-02-28 00:00:00+00:00": 299.84910605326843,
          "2025-03-31 00:00:00+00:00": 237.98344671734708,
          "2025-04-30 00:00:00+00:00": 336.7960474354902,
          "2025-05-31 00:00:00+00:00": 29.019459028810388,
          "2025-07-31 00:00:00+00:00": -2.6170714087063516,
          "2025-08-31 00:00:00+00:00": 91.81712265751253,
          "2025-10-31 00:00:00+00:00": -4.551996407306888,
          "2025-11-30 00:00:00+00:00": 165.6071594869734,
          "2026-01-31 00:00:00+00:00": -10.820981311156402,
          "2026-02-28 00:00:00+00:00": 228.8925089271413,
          "2026-03-31 00:00:00+00:00": -28.080116959670022
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p70_cap3",
        "variant": "ridge_a10_H10_c12_p70_cap3",
        "gain_pct": 177.96004787873704,
        "max_drawdown_pct": -8.702878026253458,
        "capital_score": 164.90573083935686,
        "stability_score": 164.90573083935686,
        "n_trades": 144,
        "skipped_by_capacity": 557,
        "avg_trade_ret_pct": 0.7201921659981718,
        "median_trade_ret_pct": 0.8009316406121934,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.5709359502135385,
        "month_gain_concentration": 0.20422704958777077,
        "top_asset_trade_share": 0.4375,
        "long_counts": {
          "XRP": 63,
          "SOL": 48,
          "ETH": 20,
          "BNB": 9,
          "BTC": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 144,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.737704918032787,
        "max_open_trades": 3,
        "avg_exposure": 0.912568306010929,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 23.746512187250886,
          "2025-02-28 00:00:00+00:00": 35.161127636216946,
          "2025-03-31 00:00:00+00:00": 23.64508255870595,
          "2025-04-30 00:00:00+00:00": 12.995633624331617,
          "2025-05-31 00:00:00+00:00": 4.009581501992415,
          "2025-07-31 00:00:00+00:00": 2.832603395257877,
          "2025-08-31 00:00:00+00:00": 5.69517212142523,
          "2025-10-31 00:00:00+00:00": 11.732199668758227,
          "2025-11-30 00:00:00+00:00": 14.585066545737845,
          "2025-12-31 00:00:00+00:00": 0.5709359502135385,
          "2026-01-31 00:00:00+00:00": 5.401579230897738,
          "2026-02-28 00:00:00+00:00": 27.11169698122771,
          "2026-03-31 00:00:00+00:00": 4.679657735692047
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8245031608194751,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 7.299896568260834,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.381608296688327,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.58453248824533,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 23.746512187250886,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 26.104818955881967,
            "drawdown_pct": -2.4653553614716883,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 26.104818955881967,
            "drawdown_pct": -2.4653553614716883,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 31.35314002735231,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 31.35314002735231,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 35.69552621644044,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.137897345205374,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 44.83735190410334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.83735190410334,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.089327788336334,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 58.90763982346783,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 76.75401251863977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 76.75401251863977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 77.14672686190042,
            "drawdown_pct": -3.8355026473807063,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 77.14672686190042,
            "drawdown_pct": -3.8355026473807063,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 68.18042806647469,
            "drawdown_pct": -8.702878026253458,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 78.66774037363984,
            "drawdown_pct": -3.0098170566049243,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 78.66774037363984,
            "drawdown_pct": -3.0098170566049243,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 82.55272238217378,
            "drawdown_pct": -0.9008458738300695,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 82.55272238217378,
            "drawdown_pct": -0.9008458738300695,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 92.98337151212237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 92.98337151212237,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 92.60569433105394,
            "drawdown_pct": -0.19570452008851325,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 89.75804354890914,
            "drawdown_pct": -1.6712983807574466,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 95.5483560065054,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 99.55793750849782,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 98.880693397502,
            "drawdown_pct": -0.33937217404192976,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 102.39054090375569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 102.39054090375569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 109.83861057424025,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 108.08571302518092,
            "drawdown_pct": -0.8353551066042519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 106.66177398849143,
            "drawdown_pct": -1.5139428235133368,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 106.66177398849143,
            "drawdown_pct": -1.5139428235133368,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 104.20453066565065,
            "drawdown_pct": -2.6849586418683846,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 104.20453066565065,
            "drawdown_pct": -2.6849586418683846,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 114.84628533449722,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 113.60569406649734,
            "drawdown_pct": -0.5774320305647285,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 113.60569406649734,
            "drawdown_pct": -0.5774320305647285,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 119.81791269393915,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 134.402979239677,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 134.97391518989053,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 140.37549442078827,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 148.7279441321406,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 171.27829022191014,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 171.27829022191014,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 167.48719140201598,
            "drawdown_pct": -1.3974943652118155,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 172.16684913770803,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p70_cap3",
        "variant": "ridge_a10_H10_c12_p70_cap3",
        "gain_pct": 17.9278706609102,
        "max_drawdown_pct": -0.013509213160267652,
        "capital_score": 17.9076068411698,
        "stability_score": 4.764749698312661,
        "n_trades": 14,
        "skipped_by_capacity": 42,
        "avg_trade_ret_pct": 1.1911307034890934,
        "median_trade_ret_pct": 0.9152583514475633,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -0.015601201019592281,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8333333333333335,
        "max_open_trades": 3,
        "avg_exposure": 0.9444444444444443,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.485638093880297,
          "2026-03-31 00:00:00+00:00": -0.015601201019592281
        }
      },
      "selection_score": 1906.3425738903798
    },
    {
      "name": "ridge_a10_H10_c12_p70_cap5",
      "variant": {
        "name": "ridge_a10_H10_c12_p70_cap5",
        "threshold": 0.03316205325357566,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p70_cap5",
        "variant": "ridge_a10_H10_c12_p70_cap5",
        "gain_pct": 1557.2479789749343,
        "max_drawdown_pct": -11.291988810650333,
        "capital_score": 1540.3099957589588,
        "stability_score": 1536.342032654739,
        "n_trades": 416,
        "skipped_by_capacity": 1555,
        "avg_trade_ret_pct": 0.6812667155754106,
        "median_trade_ret_pct": 0.602006010400939,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -8.727578488835434,
        "month_gain_concentration": 0.16351272522480337,
        "top_asset_trade_share": 0.5913461538461539,
        "long_counts": {
          "SOL": 124,
          "XRP": 246,
          "BTC": 11,
          "BNB": 9,
          "ETH": 26
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 416,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.455598455598456,
        "max_open_trades": 5,
        "avg_exposure": 0.8911196911196911,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 28.315415639689974,
          "2024-10-31 00:00:00+00:00": 3.612918622011705,
          "2024-11-30 00:00:00+00:00": 111.23359739719368,
          "2024-12-31 00:00:00+00:00": 176.15510362775643,
          "2025-01-31 00:00:00+00:00": 110.16074689870032,
          "2025-02-28 00:00:00+00:00": 244.65705120400355,
          "2025-03-31 00:00:00+00:00": 201.01938732027133,
          "2025-04-30 00:00:00+00:00": 251.57456882248357,
          "2025-05-31 00:00:00+00:00": 14.099988972966912,
          "2025-07-31 00:00:00+00:00": -1.2643819323311618,
          "2025-08-31 00:00:00+00:00": 74.27670811730854,
          "2025-10-31 00:00:00+00:00": -2.2011884245446254,
          "2025-11-30 00:00:00+00:00": 133.65881579060988,
          "2026-01-31 00:00:00+00:00": -8.727578488835434,
          "2026-02-28 00:00:00+00:00": 185.44384631001026,
          "2026-03-31 00:00:00+00:00": 4.354482880188698
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p70_cap5",
        "variant": "ridge_a10_H10_c12_p70_cap5",
        "gain_pct": 117.04273285205966,
        "max_drawdown_pct": -9.745574157577519,
        "capital_score": 102.42437161569337,
        "stability_score": 102.42437161569337,
        "n_trades": 213,
        "skipped_by_capacity": 488,
        "avg_trade_ret_pct": 0.3678315325966471,
        "median_trade_ret_pct": 0.46641607224294734,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.266354458039018,
        "month_gain_concentration": 0.2129298438633386,
        "top_asset_trade_share": 0.43661971830985913,
        "long_counts": {
          "XRP": 93,
          "SOL": 63,
          "ETH": 33,
          "BTC": 9,
          "BNB": 15
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.122950819672131,
        "max_open_trades": 5,
        "avg_exposure": 0.8245901639344262,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 14.835028387800833,
          "2025-02-28 00:00:00+00:00": 17.537377979643992,
          "2025-03-31 00:00:00+00:00": 9.598352018947224,
          "2025-04-30 00:00:00+00:00": 9.883079416137491,
          "2025-05-31 00:00:00+00:00": 1.863136772740006,
          "2025-07-31 00:00:00+00:00": 1.308411671945322,
          "2025-08-31 00:00:00+00:00": 5.703670754152796,
          "2025-10-31 00:00:00+00:00": 10.520269572899991,
          "2025-11-30 00:00:00+00:00": 11.066912565075512,
          "2025-12-31 00:00:00+00:00": 0.266354458039018,
          "2026-01-31 00:00:00+00:00": 3.131721304867284,
          "2026-02-28 00:00:00+00:00": 23.7826679394598,
          "2026-03-31 00:00:00+00:00": 2.1955235160366726
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.4947018964916765,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.337081343271208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.614893861153988,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 14.07212103932963,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 14.185608645498263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 14.835028387800833,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 13.287322927505684,
            "drawdown_pct": -2.055624383726773,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 11.466140364780955,
            "drawdown_pct": -3.630157035570458,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 14.685291359031552,
            "drawdown_pct": -0.846988310256469,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 14.685291359031552,
            "drawdown_pct": -0.846988310256469,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 18.382663751493695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 24.441685783979764,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 24.819843711105733,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 24.819843711105733,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 28.40580470314086,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 32.372406367444825,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 41.18842839970861,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 41.18842839970861,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 40.52541628869457,
            "drawdown_pct": -3.637073401763613,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 40.52541628869457,
            "drawdown_pct": -3.637073401763613,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 33.680156661335104,
            "drawdown_pct": -8.331094372759873,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 38.641369389331174,
            "drawdown_pct": -4.92902668584434,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 38.641369389331174,
            "drawdown_pct": -4.92902668584434,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 41.97075838639205,
            "drawdown_pct": -2.64595451275329,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 41.97075838639205,
            "drawdown_pct": -2.64595451275329,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.95286961701581,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 49.95286961701581,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 49.83563671664828,
            "drawdown_pct": -0.07817983121426453,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 47.06308772741957,
            "drawdown_pct": -1.9271267678816817,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 51.85383780252954,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 53.716974575269546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 53.40386458683875,
            "drawdown_pct": -0.2036925260179845,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 55.02538624721487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 55.02538624721487,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 61.5396201855969,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 60.729057001367664,
            "drawdown_pct": -0.5017736102746584,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 59.629683338345814,
            "drawdown_pct": -1.1823333774443112,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 59.629683338345814,
            "drawdown_pct": -1.1823333774443112,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 59.07668694408625,
            "drawdown_pct": -1.5246620232738706,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 59.07668694408625,
            "drawdown_pct": -1.5246620232738706,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 67.22447594029458,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 66.2592400156382,
            "drawdown_pct": -0.5772097171953483,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 66.2592400156382,
            "drawdown_pct": -0.5772097171953483,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 71.24932657426766,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 71.98707051246896,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 71.98707051246896,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 71.98707051246896,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 77.99550878571148,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 77.99550878571148,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 77.99550878571148,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 82.31623913934317,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 82.58259359738219,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 85.71431490224947,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 92.18236111715126,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 93.63457953459516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 112.4633795031564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 112.4633795031564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 109.49698284170927,
            "drawdown_pct": -1.3961919782995214,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 111.69250635774594,
            "drawdown_pct": -0.3628263596357817,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p70_cap5",
        "variant": "ridge_a10_H10_c12_p70_cap5",
        "gain_pct": 15.423265345945012,
        "max_drawdown_pct": 0.0,
        "capital_score": 15.423265345945012,
        "stability_score": 5.496988054139443,
        "n_trades": 20,
        "skipped_by_capacity": 36,
        "avg_trade_ret_pct": 0.7217424073075437,
        "median_trade_ret_pct": 0.5574076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8970510916722227,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 10,
          "ETH": 5,
          "BTC": 1,
          "SOL": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 20,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.333333333333333,
        "max_open_trades": 5,
        "avg_exposure": 0.8666666666666667,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 11.576267553044516,
          "2026-03-31 00:00:00+00:00": 1.328535373469748
        }
      },
      "selection_score": 1540.3099957589588
    },
    {
      "name": "ridge_a10_H10_c12_p80_cap1",
      "variant": {
        "name": "ridge_a10_H10_c12_p80_cap1",
        "threshold": 0.051751359479987186,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p80_cap1",
        "variant": "ridge_a10_H10_c12_p80_cap1",
        "gain_pct": 1345.5717274188291,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 1327.812372423513,
        "stability_score": 1310.824727596901,
        "n_trades": 83,
        "skipped_by_capacity": 1231,
        "avg_trade_ret_pct": 3.3690283825288687,
        "median_trade_ret_pct": 3.085137365567101,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -19.96957253745518,
        "month_gain_concentration": 0.14919856959090513,
        "top_asset_trade_share": 0.6506024096385542,
        "long_counts": {
          "SOL": 23,
          "ETH": 4,
          "XRP": 54,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 83,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 19.666322065451553,
          "2024-10-31 00:00:00+00:00": 8.895511282929405,
          "2024-11-30 00:00:00+00:00": 127.09057704216096,
          "2024-12-31 00:00:00+00:00": 177.13185071887855,
          "2025-01-31 00:00:00+00:00": 121.825363258153,
          "2025-02-28 00:00:00+00:00": 198.10529578584033,
          "2025-03-31 00:00:00+00:00": 141.44834748386643,
          "2025-04-30 00:00:00+00:00": 69.05650978816197,
          "2025-05-31 00:00:00+00:00": 119.8338686644446,
          "2025-07-31 00:00:00+00:00": -5.518059725820194,
          "2025-10-31 00:00:00+00:00": 63.07348752982966,
          "2025-11-30 00:00:00+00:00": 64.3516589507276,
          "2026-01-31 00:00:00+00:00": 48.99317451307161,
          "2026-02-28 00:00:00+00:00": 168.3242465734579,
          "2026-03-31 00:00:00+00:00": -19.96957253745518
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p80_cap1",
        "variant": "ridge_a10_H10_c12_p80_cap1",
        "gain_pct": 148.82406167934104,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 131.0647066840248,
        "stability_score": 129.70756382688194,
        "n_trades": 42,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.290742566943314,
        "median_trade_ret_pct": 2.5316722576802433,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.486581081016709,
        "month_gain_concentration": 0.19628359339917129,
        "top_asset_trade_share": 0.5952380952380952,
        "long_counts": {
          "XRP": 25,
          "SOL": 12,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 42,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.851247304220763,
          "2025-02-28 00:00:00+00:00": 21.848861681375453,
          "2025-03-31 00:00:00+00:00": 19.607259065523266,
          "2025-04-30 00:00:00+00:00": 12.852422043281251,
          "2025-05-31 00:00:00+00:00": -1.4025827905599044,
          "2025-07-31 00:00:00+00:00": 3.7554838121484977,
          "2025-10-31 00:00:00+00:00": 13.960335837787909,
          "2025-11-30 00:00:00+00:00": 18.057618688594175,
          "2025-12-31 00:00:00+00:00": 0.5196754557661052,
          "2026-01-31 00:00:00+00:00": 4.883357209703803,
          "2026-02-28 00:00:00+00:00": 29.38851757986589,
          "2026-03-31 00:00:00+00:00": -3.486581081016709
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.473509482458411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.176080922468117,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.851247304220763,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 23.48283581517927,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 23.48283581517927,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.26858618612411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 39.10383204033991,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 40.07039804349793,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 46.700108985596216,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 63.210785002949365,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 55.8042545081062,
            "drawdown_pct": -4.53801536136802,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 55.8042545081062,
            "drawdown_pct": -4.53801536136802,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 59.80517982221707,
            "drawdown_pct": -3.795774504932581,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 53.418373259185785,
            "drawdown_pct": -7.640692294623741,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 62.792921958953855,
            "drawdown_pct": -1.9971255589878445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 62.792921958953855,
            "drawdown_pct": -1.9971255589878445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 66.30736805111948,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 66.30736805111948,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 79.15979009440073,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 77.75720730384083,
            "drawdown_pct": -0.782866953472583,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 76.8515505156117,
            "drawdown_pct": -1.2883692136348213,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 81.51269111598933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 81.51269111598933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 86.11040760788197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 86.11040760788197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 96.6105112381968,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 95.47302695377724,
            "drawdown_pct": -0.5785470355862521,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 95.47302695377724,
            "drawdown_pct": -0.5785470355862521,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 99.98190799057258,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 113.53064564237141,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 114.05032109813752,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 118.93367830784132,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 126.45462810050253,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 148.3221958877072,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 144.8356148066905,
            "drawdown_pct": -1.4040553517790877,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p80_cap1",
        "variant": "ridge_a10_H10_c12_p80_cap1",
        "gain_pct": 16.417599929071642,
        "max_drawdown_pct": -1.4040553517790877,
        "capital_score": 14.31151690140301,
        "stability_score": -5.68848309859699,
        "n_trades": 5,
        "skipped_by_capacity": 34,
        "avg_trade_ret_pct": 3.146217104824245,
        "median_trade_ret_pct": 2.7045116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.6312707005528893,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.18279140390655,
          "2026-03-31 00:00:00+00:00": -1.6312707005528893
        }
      },
      "selection_score": 1327.812372423513
    },
    {
      "name": "ridge_a10_H10_c12_p80_cap2",
      "variant": {
        "name": "ridge_a10_H10_c12_p80_cap2",
        "threshold": 0.051751359479987186,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p80_cap2",
        "variant": "ridge_a10_H10_c12_p80_cap2",
        "gain_pct": 1229.2352391706365,
        "max_drawdown_pct": -11.489131452600088,
        "capital_score": 1212.0015419917363,
        "stability_score": 1196.7094749633152,
        "n_trades": 158,
        "skipped_by_capacity": 1156,
        "avg_trade_ret_pct": 1.6751269574166603,
        "median_trade_ret_pct": 1.510152873845307,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -18.424978420826164,
        "month_gain_concentration": 0.1447396981504632,
        "top_asset_trade_share": 0.6455696202531646,
        "long_counts": {
          "SOL": 43,
          "ETH": 10,
          "XRP": 102,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 158,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9414634146341463,
        "max_open_trades": 2,
        "avg_exposure": 0.9707317073170731,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.33509554611615,
          "2024-10-31 00:00:00+00:00": 8.471512815986515,
          "2024-11-30 00:00:00+00:00": 105.8335596001185,
          "2024-12-31 00:00:00+00:00": 168.1034280124804,
          "2025-01-31 00:00:00+00:00": 119.05880467927517,
          "2025-02-28 00:00:00+00:00": 176.49969845611088,
          "2025-03-31 00:00:00+00:00": 135.47343696813016,
          "2025-04-30 00:00:00+00:00": 58.654173144711876,
          "2025-05-31 00:00:00+00:00": 111.57016731512579,
          "2025-07-31 00:00:00+00:00": -2.53726434765656,
          "2025-10-31 00:00:00+00:00": 59.00326566551939,
          "2025-11-30 00:00:00+00:00": 60.216253618531255,
          "2026-01-31 00:00:00+00:00": 45.701038583588115,
          "2026-02-28 00:00:00+00:00": 158.5079650692844,
          "2026-03-31 00:00:00+00:00": -18.424978420826164
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p80_cap2",
        "variant": "ridge_a10_H10_c12_p80_cap2",
        "gain_pct": 145.79181209876214,
        "max_drawdown_pct": -8.497588916508715,
        "capital_score": 133.04542872399907,
        "stability_score": 133.04542872399907,
        "n_trades": 79,
        "skipped_by_capacity": 363,
        "avg_trade_ret_pct": 1.16591064690226,
        "median_trade_ret_pct": 1.2651722505389695,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.4316076882886364,
        "month_gain_concentration": 0.20228583810614698,
        "top_asset_trade_share": 0.5443037974683544,
        "long_counts": {
          "XRP": 43,
          "SOL": 23,
          "ETH": 10,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 79,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.903225806451613,
        "max_open_trades": 2,
        "avg_exposure": 0.9516129032258065,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 20.676685837391034,
          "2025-02-28 00:00:00+00:00": 20.654638290096585,
          "2025-03-31 00:00:00+00:00": 18.103021495191143,
          "2025-04-30 00:00:00+00:00": 12.460191372278302,
          "2025-05-31 00:00:00+00:00": -0.6728527624791241,
          "2025-07-31 00:00:00+00:00": 3.6481315061284363,
          "2025-10-31 00:00:00+00:00": 16.71264680788562,
          "2025-11-30 00:00:00+00:00": 18.812159647602925,
          "2025-12-31 00:00:00+00:00": 0.5123547719572628,
          "2026-01-31 00:00:00+00:00": 4.839088053061943,
          "2026-02-28 00:00:00+00:00": 29.521725299385935,
          "2026-03-31 00:00:00+00:00": -3.4316076882886364
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2367547412292197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.029490201312498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 20.676685837391034,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 20.95611586351086,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 20.95611586351086,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 25.68998337086711,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 33.93981717687055,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 34.87211762944821,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 41.33132412748762,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 57.60830681630094,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 50.53716063753788,
            "drawdown_pct": -4.486531402817984,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 50.53716063753788,
            "drawdown_pct": -4.486531402817984,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 55.164577886523745,
            "drawdown_pct": -3.3707162595567275,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 46.93199040475437,
            "drawdown_pct": -8.497588916508715,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 56.04734417342485,
            "drawdown_pct": -2.8209704659269086,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 56.04734417342485,
            "drawdown_pct": -2.8209704659269086,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 59.43434562267876,
            "drawdown_pct": -0.7117034635792385,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 59.43434562267876,
            "drawdown_pct": -0.7117034635792385,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 71.89453699495706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 71.22168423247794,
            "drawdown_pct": -0.3914334767363026,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 70.3504364865899,
            "drawdown_pct": -0.8982836426107421,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 74.86981573860638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 74.86981573860638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 82.26735903205395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 82.26735903205395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 92.69568525980137,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 91.582462546492,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 91.582462546492,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 96.93308662416558,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 110.39462219409492,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 110.90697696605218,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 115.74606501911413,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 123.22116257174346,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 145.26779031850006,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 141.83618263021143,
            "drawdown_pct": -1.3991269232019432,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p80_cap2",
        "variant": "ridge_a10_H10_c12_p80_cap2",
        "gain_pct": 18.0487279758446,
        "max_drawdown_pct": -1.3991269232019543,
        "capital_score": 15.950037591041667,
        "stability_score": 1.9500375910416692,
        "n_trades": 10,
        "skipped_by_capacity": 29,
        "avg_trade_ret_pct": 1.6880730211529194,
        "median_trade_ret_pct": 1.447412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.636313273576775,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.952454165631778,
          "2026-03-31 00:00:00+00:00": -1.636313273576775
        }
      },
      "selection_score": 1212.0015419917363
    },
    {
      "name": "ridge_a10_H10_c12_p80_cap3",
      "variant": {
        "name": "ridge_a10_H10_c12_p80_cap3",
        "threshold": 0.051751359479987186,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p80_cap3",
        "variant": "ridge_a10_H10_c12_p80_cap3",
        "gain_pct": 1129.8584464857165,
        "max_drawdown_pct": -11.37846533291439,
        "capital_score": 1112.790748486345,
        "stability_score": 1098.5357414656835,
        "n_trades": 224,
        "skipped_by_capacity": 1090,
        "avg_trade_ret_pct": 1.137650091674987,
        "median_trade_ret_pct": 1.0206881140549473,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -17.067507020661424,
        "month_gain_concentration": 0.1447490484299859,
        "top_asset_trade_share": 0.65625,
        "long_counts": {
          "SOL": 61,
          "ETH": 12,
          "XRP": 147,
          "BTC": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 224,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8146341463414632,
        "max_open_trades": 3,
        "avg_exposure": 0.938211382113821,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 14.150651505770071,
          "2024-10-31 00:00:00+00:00": 6.059370530727207,
          "2024-11-30 00:00:00+00:00": 103.58513174024522,
          "2024-12-31 00:00:00+00:00": 154.50538565554592,
          "2025-01-31 00:00:00+00:00": 101.35715600174115,
          "2025-02-28 00:00:00+00:00": 162.53454659329776,
          "2025-03-31 00:00:00+00:00": 130.48222489131092,
          "2025-04-30 00:00:00+00:00": 50.818717490860536,
          "2025-05-31 00:00:00+00:00": 105.5638729235211,
          "2025-07-31 00:00:00+00:00": -1.5778203753085336,
          "2025-10-31 00:00:00+00:00": 55.356123050091696,
          "2025-11-30 00:00:00+00:00": 56.49962173564609,
          "2026-01-31 00:00:00+00:00": 42.83423449879888,
          "2026-02-28 00:00:00+00:00": 139.12422475667358,
          "2026-03-31 00:00:00+00:00": -17.067507020661424
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p80_cap3",
        "variant": "ridge_a10_H10_c12_p80_cap3",
        "gain_pct": 134.50732867006414,
        "max_drawdown_pct": -8.418055025060179,
        "capital_score": 121.88024613247387,
        "stability_score": 121.88024613247387,
        "n_trades": 111,
        "skipped_by_capacity": 331,
        "avg_trade_ret_pct": 0.779937857118449,
        "median_trade_ret_pct": 0.8443333380941824,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.2544033745588763,
        "month_gain_concentration": 0.19899502824390142,
        "top_asset_trade_share": 0.5225225225225225,
        "long_counts": {
          "XRP": 58,
          "SOL": 33,
          "ETH": 14,
          "BNB": 5,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 111,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7204301075268815,
        "max_open_trades": 3,
        "avg_exposure": 0.906810035842294,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 16.16659698272855,
          "2025-02-28 00:00:00+00:00": 21.165466088244642,
          "2025-03-31 00:00:00+00:00": 17.43396648886653,
          "2025-04-30 00:00:00+00:00": 12.141290652628527,
          "2025-05-31 00:00:00+00:00": -0.4355540842900325,
          "2025-07-31 00:00:00+00:00": 2.362965341477178,
          "2025-10-31 00:00:00+00:00": 14.27205222892627,
          "2025-11-30 00:00:00+00:00": 18.112409702861243,
          "2025-12-31 00:00:00+00:00": 0.49011011617042755,
          "2026-01-31 00:00:00+00:00": 4.636892497957035,
          "2026-02-28 00:00:00+00:00": 26.527971893194632,
          "2026-03-31 00:00:00+00:00": -3.2544033745588763
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8245031608194751,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.006648965336865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 16.16659698272855,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 18.38044905104914,
            "drawdown_pct": -2.4653553614717105,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 18.38044905104914,
            "drawdown_pct": -2.4653553614717105,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 23.307291739131557,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 32.165579684549186,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 32.7785256453094,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 37.33206307097319,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 52.75535664756998,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 45.92762571104251,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 45.92762571104251,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 51.24093730290781,
            "drawdown_pct": -2.855897096314597,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 42.58136916211882,
            "drawdown_pct": -8.418055025060179,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 51.472387961258306,
            "drawdown_pct": -2.7072332029740354,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 51.472387961258306,
            "drawdown_pct": -2.7072332029740354,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 54.76602955983972,
            "drawdown_pct": -0.5916825849582641,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 54.76602955983972,
            "drawdown_pct": -0.5916825849582641,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 66.90732021246825,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 66.47176612817822,
            "drawdown_pct": -0.26095565115753505,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 65.90680727630303,
            "drawdown_pct": -0.5994422143328348,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 68.8347314696554,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 68.8347314696554,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 75.04793114375249,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 75.04793114375249,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 84.17024166472225,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 83.10678369858167,
            "drawdown_pct": -0.5774320305647396,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 83.10678369858167,
            "drawdown_pct": -0.5774320305647396,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 88.43201333477842,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 101.21919340144291,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 101.70930351761334,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 106.34619601557037,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 113.51621236645448,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 132.874167908765,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 129.61976453420613,
            "drawdown_pct": -1.3974943652118044,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p80_cap3",
        "variant": "ridge_a10_H10_c12_p80_cap3",
        "gain_pct": 17.9278706609102,
        "max_drawdown_pct": -0.013509213160267652,
        "capital_score": 17.9076068411698,
        "stability_score": 4.764749698312661,
        "n_trades": 14,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 1.1911307034890934,
        "median_trade_ret_pct": 0.9152583514475633,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -0.015601201019592281,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8181818181818183,
        "max_open_trades": 3,
        "avg_exposure": 0.9393939393939393,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.485638093880297,
          "2026-03-31 00:00:00+00:00": -0.015601201019592281
        }
      },
      "selection_score": 1112.790748486345
    },
    {
      "name": "ridge_a10_H10_c12_p80_cap5",
      "variant": {
        "name": "ridge_a10_H10_c12_p80_cap5",
        "threshold": 0.051751359479987186,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p80_cap5",
        "variant": "ridge_a10_H10_c12_p80_cap5",
        "gain_pct": 1021.3711667372452,
        "max_drawdown_pct": -11.291988810650333,
        "capital_score": 1004.4331835212697,
        "stability_score": 1002.0182275095395,
        "n_trades": 341,
        "skipped_by_capacity": 973,
        "avg_trade_ret_pct": 0.7154258454194521,
        "median_trade_ret_pct": 0.6491085860763119,
        "positive_month_rate": 0.875,
        "worst_month_pct": -0.8573700705657075,
        "month_gain_concentration": 0.1431361194665631,
        "top_asset_trade_share": 0.6304985337243402,
        "long_counts": {
          "SOL": 103,
          "BNB": 1,
          "ETH": 17,
          "XRP": 215,
          "BTC": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 341,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.443902439024391,
        "max_open_trades": 5,
        "avg_exposure": 0.888780487804878,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 15.039176606895694,
          "2024-10-31 00:00:00+00:00": 3.8548503924949102,
          "2024-11-30 00:00:00+00:00": 97.47600082004209,
          "2024-12-31 00:00:00+00:00": 136.7213598454753,
          "2025-01-31 00:00:00+00:00": 86.17113078036442,
          "2025-02-28 00:00:00+00:00": 143.32716441054384,
          "2025-03-31 00:00:00+00:00": 118.89816516682163,
          "2025-04-30 00:00:00+00:00": 43.197317112419,
          "2025-05-31 00:00:00+00:00": 96.71364813764183,
          "2025-07-31 00:00:00+00:00": -0.8573700705657075,
          "2025-10-31 00:00:00+00:00": 50.36660588981522,
          "2025-11-30 00:00:00+00:00": 51.41105662712846,
          "2026-01-31 00:00:00+00:00": 29.731843212073954,
          "2026-02-28 00:00:00+00:00": 125.47994321859017,
          "2026-03-31 00:00:00+00:00": 2.946445921095801
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p80_cap5",
        "variant": "ridge_a10_H10_c12_p80_cap5",
        "gain_pct": 94.07368767862954,
        "max_drawdown_pct": -9.745574157577519,
        "capital_score": 79.45532644226326,
        "stability_score": 79.45532644226326,
        "n_trades": 165,
        "skipped_by_capacity": 277,
        "avg_trade_ret_pct": 0.40669591347764306,
        "median_trade_ret_pct": 0.5132891053213391,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.680268762581818,
        "month_gain_concentration": 0.26128128575889814,
        "top_asset_trade_share": 0.49696969696969695,
        "long_counts": {
          "XRP": 82,
          "SOL": 49,
          "ETH": 22,
          "BTC": 3,
          "BNB": 9
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 165,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.086021505376344,
        "max_open_trades": 5,
        "avg_exposure": 0.8172043010752689,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 10.920895492488427,
          "2025-02-28 00:00:00+00:00": 9.848709796729963,
          "2025-03-31 00:00:00+00:00": 7.2661542482269965,
          "2025-04-30 00:00:00+00:00": 10.23251044278905,
          "2025-05-31 00:00:00+00:00": -0.21649131856270287,
          "2025-07-31 00:00:00+00:00": 1.175072297856758,
          "2025-10-31 00:00:00+00:00": 12.400828759015099,
          "2025-11-30 00:00:00+00:00": 13.54275712354709,
          "2025-12-31 00:00:00+00:00": -0.15896282884875745,
          "2026-01-31 00:00:00+00:00": 2.8303352391541523,
          "2026-02-28 00:00:00+00:00": 24.12812068848956,
          "2026-03-31 00:00:00+00:00": -2.680268762581818
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.4947018964916765,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.397744018143811,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 10.920895492488427,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 9.425943316094902,
            "drawdown_pct": -2.055624383726795,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 7.666835458947446,
            "drawdown_pct": -3.6301570355704804,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 10.776262225508361,
            "drawdown_pct": -0.8469883102564912,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 17.84480914203975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 18.172575621170964,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 20.76960528921839,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 28.013381880899715,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 21.569644964437543,
            "drawdown_pct": -5.033643219001316,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 21.569644964437543,
            "drawdown_pct": -5.033643219001316,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 29.94755369265988,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 29.94755369265988,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 29.94755369265988,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 26.476208495528155,
            "drawdown_pct": -2.6713432446307084,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 27.220758568993176,
            "drawdown_pct": -2.0983812670424484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 27.220758568993176,
            "drawdown_pct": -2.0983812670424484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 27.220758568993176,
            "drawdown_pct": -2.0983812670424484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 19.808876452899284,
            "drawdown_pct": -7.80213012992893,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 24.255290472976142,
            "drawdown_pct": -4.380431226236514,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 24.255290472976142,
            "drawdown_pct": -4.380431226236514,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.035759537445387,
            "drawdown_pct": -1.4712044212360387,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.035759537445387,
            "drawdown_pct": -1.4712044212360387,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 30.257081801352342,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 30.257081801352342,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 30.257081801352342,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 30.257081801352342,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 38.268269980234436,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 38.05177866167173,
            "drawdown_pct": -0.15657339069451437,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 37.77057750650303,
            "drawdown_pct": -0.35994698841791406,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 39.22685095952849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 39.22685095952849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 45.07722359597085,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 45.07722359597085,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 52.50797054402108,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 51.62767971854359,
            "drawdown_pct": -0.5772097171953372,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 51.62767971854359,
            "drawdown_pct": -0.5772097171953372,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 56.178616234363744,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 62.75218729421721,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 62.75218729421721,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 62.75218729421721,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 65.17043684209068,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 65.01147401324192,
            "drawdown_pct": -0.09624169548012595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 67.84180925239608,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 73.6873929900236,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 91.96992994088563,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 89.28966117830382,
            "drawdown_pct": -1.3961919782994991,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p80_cap5",
        "variant": "ridge_a10_H10_c12_p80_cap5",
        "gain_pct": 16.69966105040659,
        "max_drawdown_pct": 0.0,
        "capital_score": 16.69966105040659,
        "stability_score": 5.605337553920297,
        "n_trades": 19,
        "skipped_by_capacity": 20,
        "avg_trade_ret_pct": 0.8186831845841456,
        "median_trade_ret_pct": 0.5574076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9090360977541886,
        "top_asset_trade_share": 0.5789473684210527,
        "long_counts": {
          "XRP": 11,
          "ETH": 4,
          "BTC": 1,
          "SOL": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 19,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.090909090909091,
        "max_open_trades": 5,
        "avg_exposure": 0.8181818181818182,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 13.506191091232964,
          "2026-03-31 00:00:00+00:00": 1.3515149169228948
        }
      },
      "selection_score": 1004.4331835212697
    },
    {
      "name": "ridge_a10_H10_c12_p90_cap1",
      "variant": {
        "name": "ridge_a10_H10_c12_p90_cap1",
        "threshold": 0.06525539266108744,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p90_cap1",
        "variant": "ridge_a10_H10_c12_p90_cap1",
        "gain_pct": 663.2079811176883,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 645.448626122372,
        "stability_score": 640.948626122372,
        "n_trades": 60,
        "skipped_by_capacity": 597,
        "avg_trade_ret_pct": 3.560870302371013,
        "median_trade_ret_pct": 3.3455499917021103,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14147100223528,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "SOL": 14,
          "ETH": 3,
          "XRP": 42,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 60,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 5.070130186267946,
          "2024-10-31 00:00:00+00:00": 7.02975073469959,
          "2024-11-30 00:00:00+00:00": 81.37537728028556,
          "2024-12-31 00:00:00+00:00": 92.55253998468294,
          "2025-01-31 00:00:00+00:00": 91.93210820921263,
          "2025-02-28 00:00:00+00:00": 83.52215656746614,
          "2025-03-31 00:00:00+00:00": 72.14296692649714,
          "2025-04-30 00:00:00+00:00": 34.258080429986876,
          "2025-07-31 00:00:00+00:00": 39.0567295630176,
          "2025-10-31 00:00:00+00:00": 35.52719084790135,
          "2025-11-30 00:00:00+00:00": 36.24714215842789,
          "2026-02-28 00:00:00+00:00": 95.36226995180232
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p90_cap1",
        "variant": "ridge_a10_H10_c12_p90_cap1",
        "gain_pct": 121.30340190536825,
        "max_drawdown_pct": -10.89457843036894,
        "capital_score": 104.96153425981484,
        "stability_score": 104.90981012188381,
        "n_trades": 29,
        "skipped_by_capacity": 170,
        "avg_trade_ret_pct": 2.8778695229843847,
        "median_trade_ret_pct": 3.1909258775561478,
        "positive_month_rate": 1.0,
        "worst_month_pct": 3.11357546832582,
        "month_gain_concentration": 0.20877334142966567,
        "top_asset_trade_share": 0.5517241379310345,
        "long_counts": {
          "XRP": 16,
          "SOL": 11,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 29,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 17.551669735860642,
          "2025-02-28 00:00:00+00:00": 25.925352006872075,
          "2025-03-31 00:00:00+00:00": 16.376887466633065,
          "2025-04-30 00:00:00+00:00": 3.11357546832582,
          "2025-07-31 00:00:00+00:00": 15.798868173577318,
          "2025-10-31 00:00:00+00:00": 13.749112015013054,
          "2025-11-30 00:00:00+00:00": 5.956548088854021,
          "2026-02-28 00:00:00+00:00": 25.982859600681138
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 9.468370400323423,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 17.551669735860642,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.44947951806202,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.364927761090584,
            "drawdown_pct": -2.3645565841789007,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.36401067083003,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 43.47702174273272,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 50.267972538004074,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 65.49505251528964,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 63.112328116892996,
            "drawdown_pct": -1.439755667726994,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 63.112328116892996,
            "drawdown_pct": -1.439755667726994,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 47.46506422063115,
            "drawdown_pct": -10.89457843036894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 56.475839114686806,
            "drawdown_pct": -5.449838689147269,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 56.475839114686806,
            "drawdown_pct": -5.449838689147269,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 59.85390920936578,
            "drawdown_pct": -3.408647702868761,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 74.17573662419741,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 78.76635285126892,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 83.29450459452394,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 93.63573869232198,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 92.51546486628197,
            "drawdown_pct": -0.5785470355862743,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.472012955136,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 104.805107776228,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 124.45487255581713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p90_cap1",
        "variant": "ridge_a10_H10_c12_p90_cap1",
        "gain_pct": 7.769687845663796,
        "max_drawdown_pct": 0.0,
        "capital_score": 7.769687845663796,
        "stability_score": -18.230312154336204,
        "n_trades": 2,
        "skipped_by_capacity": 8,
        "avg_trade_ret_pct": 3.9501632586229047,
        "median_trade_ret_pct": 3.9501632586229047,
        "positive_month_rate": 1.0,
        "worst_month_pct": 9.304381869024894,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 9.304381869024894
        }
      },
      "selection_score": 545.448626122372
    },
    {
      "name": "ridge_a10_H10_c12_p90_cap2",
      "variant": {
        "name": "ridge_a10_H10_c12_p90_cap2",
        "threshold": 0.06525539266108744,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p90_cap2",
        "variant": "ridge_a10_H10_c12_p90_cap2",
        "gain_pct": 697.9407278895056,
        "max_drawdown_pct": -11.489131452600098,
        "capital_score": 680.7070307106055,
        "stability_score": 676.2587548485366,
        "n_trades": 116,
        "skipped_by_capacity": 541,
        "avg_trade_ret_pct": 1.8346816813194402,
        "median_trade_ret_pct": 1.7083063142351962,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14545288335904588,
        "top_asset_trade_share": 0.6982758620689655,
        "long_counts": {
          "SOL": 26,
          "ETH": 7,
          "XRP": 81,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 116,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9318181818181819,
        "max_open_trades": 2,
        "avg_exposure": 0.9659090909090909,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 1.4332020886702566,
          "2024-10-31 00:00:00+00:00": 6.872657392943012,
          "2024-11-30 00:00:00+00:00": 84.35233938035297,
          "2024-12-31 00:00:00+00:00": 103.16439921498119,
          "2025-01-31 00:00:00+00:00": 99.74674920021084,
          "2025-02-28 00:00:00+00:00": 91.72756716099201,
          "2025-03-31 00:00:00+00:00": 79.6463229759716,
          "2025-04-30 00:00:00+00:00": 23.76648550491211,
          "2025-07-31 00:00:00+00:00": 41.32518738233921,
          "2025-10-31 00:00:00+00:00": 37.53752105494186,
          "2025-11-30 00:00:00+00:00": 38.309216660464585,
          "2026-02-28 00:00:00+00:00": 101.38170127223441
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p90_cap2",
        "variant": "ridge_a10_H10_c12_p90_cap2",
        "gain_pct": 87.39124384353804,
        "max_drawdown_pct": -11.2824836811531,
        "capital_score": 70.46751832180838,
        "stability_score": 69.5675183218084,
        "n_trades": 50,
        "skipped_by_capacity": 149,
        "avg_trade_ret_pct": 1.2895123882508523,
        "median_trade_ret_pct": 1.5470310639696772,
        "positive_month_rate": 1.0,
        "worst_month_pct": 1.3074253936758282,
        "month_gain_concentration": 0.24261209184220242,
        "top_asset_trade_share": 0.58,
        "long_counts": {
          "XRP": 29,
          "SOL": 16,
          "ETH": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 50,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.7924528301886793,
        "max_open_trades": 2,
        "avg_exposure": 0.8962264150943396,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 8.373878017013126,
          "2025-02-28 00:00:00+00:00": 17.48547043986943,
          "2025-03-31 00:00:00+00:00": 8.389563962160096,
          "2025-04-30 00:00:00+00:00": 1.3074253936758282,
          "2025-07-31 00:00:00+00:00": 13.331209951539137,
          "2025-10-31 00:00:00+00:00": 14.229471160395804,
          "2025-11-30 00:00:00+00:00": 5.085980786310472,
          "2026-02-28 00:00:00+00:00": 21.84728888798503
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.734185200161704,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 8.373878017013126,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 16.32410371660454,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 14.948829089895497,
            "drawdown_pct": -1.182278292089456,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 18.107219705429713,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 25.859348456882557,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 28.837890358972516,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 42.22413725086716,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 40.287829037774145,
            "drawdown_pct": -1.361448380367103,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 40.287829037774145,
            "drawdown_pct": -1.361448380367103,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.17772217487729,
            "drawdown_pct": -11.2824836811531,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 30.03273372344799,
            "drawdown_pct": -8.571965183318298,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 30.03273372344799,
            "drawdown_pct": -8.571965183318298,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 34.248912419042654,
            "drawdown_pct": -5.607504454575896,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 45.03966074380571,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 48.88754776425762,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 55.18595939001068,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 64.06483830217172,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 63.11701892465342,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 68.2029997109639,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 73.06946053883684,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 90.05028859894892,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p90_cap2",
        "variant": "ridge_a10_H10_c12_p90_cap2",
        "gain_pct": 8.783392781277556,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.783392781277556,
        "stability_score": -17.216607218722444,
        "n_trades": 4,
        "skipped_by_capacity": 6,
        "avg_trade_ret_pct": 2.167671236781722,
        "median_trade_ret_pct": 1.9750816293114524,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.32700764885577,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.75,
        "max_open_trades": 2,
        "avg_exposure": 0.875,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.32700764885577
        }
      },
      "selection_score": 680.7070307106055
    },
    {
      "name": "ridge_a10_H10_c12_p90_cap3",
      "variant": {
        "name": "ridge_a10_H10_c12_p90_cap3",
        "threshold": 0.06525539266108744,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p90_cap3",
        "variant": "ridge_a10_H10_c12_p90_cap3",
        "gain_pct": 715.0641421771558,
        "max_drawdown_pct": -11.37846533291439,
        "capital_score": 697.9964441777842,
        "stability_score": 693.5325887560974,
        "n_trades": 166,
        "skipped_by_capacity": 491,
        "avg_trade_ret_pct": 1.2846272920618274,
        "median_trade_ret_pct": 1.2045274477167405,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.15032344873442896,
        "top_asset_trade_share": 0.6987951807228916,
        "long_counts": {
          "SOL": 38,
          "ETH": 9,
          "XRP": 116,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 166,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.787878787878788,
        "max_open_trades": 3,
        "avg_exposure": 0.9292929292929293,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 4.4069218334148985,
          "2024-10-31 00:00:00+00:00": 7.3228694349713805,
          "2024-11-30 00:00:00+00:00": 89.04972029268767,
          "2024-12-31 00:00:00+00:00": 109.22743128848384,
          "2025-01-31 00:00:00+00:00": 100.4113185866176,
          "2025-02-28 00:00:00+00:00": 96.66371088692392,
          "2025-03-31 00:00:00+00:00": 80.77759964757149,
          "2025-04-30 00:00:00+00:00": 16.35831875553413,
          "2025-07-31 00:00:00+00:00": 42.51564869833453,
          "2025-10-31 00:00:00+00:00": 38.59995993704217,
          "2025-11-30 00:00:00+00:00": 39.397324366095745,
          "2026-02-28 00:00:00+00:00": 101.88523123958214
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p90_cap3",
        "variant": "ridge_a10_H10_c12_p90_cap3",
        "gain_pct": 59.76952417567492,
        "max_drawdown_pct": -11.40802787463545,
        "capital_score": 42.65748236372174,
        "stability_score": 41.069247069604096,
        "n_trades": 68,
        "skipped_by_capacity": 131,
        "avg_trade_ret_pct": 0.7070331612569819,
        "median_trade_ret_pct": 1.0022646624408653,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7820680290808468,
        "month_gain_concentration": 0.27258288369421513,
        "top_asset_trade_share": 0.6029411764705882,
        "long_counts": {
          "XRP": 41,
          "SOL": 19,
          "ETH": 4,
          "BNB": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 68,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.452830188679245,
        "max_open_trades": 3,
        "avg_exposure": 0.8176100628930818,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.102697604108826,
          "2025-02-28 00:00:00+00:00": 13.131184431414951,
          "2025-03-31 00:00:00+00:00": 4.222454727167076,
          "2025-04-30 00:00:00+00:00": 0.7820680290808468,
          "2025-07-31 00:00:00+00:00": 8.518273867436022,
          "2025-10-31 00:00:00+00:00": 10.968679718657597,
          "2025-11-30 00:00:00+00:00": 4.399190895592795,
          "2026-02-28 00:00:00+00:00": 16.90939007433292
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.156123466774474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.102697604108826,
            "drawdown_pct": -0.05179126635449505,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 6.252250560126498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 5.414785697973912,
            "drawdown_pct": -0.7881855280596373,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.345738061868261,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.233882035523777,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 18.06771476139393,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 30.44052129806977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 28.698388417777096,
            "drawdown_pct": -1.3355764473769072,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 28.698388417777096,
            "drawdown_pct": -1.3355764473769072,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.559830268566174,
            "drawdown_pct": -11.40802787463545,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 17.91357107456345,
            "drawdown_pct": -9.603572646632541,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 17.91357107456345,
            "drawdown_pct": -9.603572646632541,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 20.456336762690853,
            "drawdown_pct": -7.654204717998669,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 27.506444270890384,
            "drawdown_pct": -2.249360089933039,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 29.756678659207722,
            "drawdown_pct": -0.5242562909568593,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 34.531787113135096,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 41.54267109770035,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 40.72535837786532,
            "drawdown_pct": -0.5774320305647507,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 45.124549273458115,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 47.917145787284284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 62.03393934779103,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p90_cap3",
        "variant": "ridge_a10_H10_c12_p90_cap3",
        "gain_pct": 10.675548432451592,
        "max_drawdown_pct": 0.0,
        "capital_score": 10.675548432451592,
        "stability_score": -10.324451567548408,
        "n_trades": 6,
        "skipped_by_capacity": 4,
        "avg_trade_ret_pct": 1.7207503950032872,
        "median_trade_ret_pct": 2.0152367260072053,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.690501848294446,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8333333333333334,
        "long_counts": {
          "XRP": 5,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 6,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5,
        "max_open_trades": 3,
        "avg_exposure": 0.8333333333333333,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.690501848294446
        }
      },
      "selection_score": 697.9964441777842
    },
    {
      "name": "ridge_a10_H10_c12_p90_cap5",
      "variant": {
        "name": "ridge_a10_H10_c12_p90_cap5",
        "threshold": 0.06525539266108744,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a10_H10_c12_p90_cap5",
        "variant": "ridge_a10_H10_c12_p90_cap5",
        "gain_pct": 751.7767077216537,
        "max_drawdown_pct": -8.272658647739062,
        "capital_score": 739.3677197500451,
        "stability_score": 735.4770947500451,
        "n_trades": 256,
        "skipped_by_capacity": 401,
        "avg_trade_ret_pct": 0.8447291623944638,
        "median_trade_ret_pct": 0.7355086517906879,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.1621011713128857,
        "top_asset_trade_share": 0.6796875,
        "long_counts": {
          "SOL": 65,
          "BNB": 1,
          "ETH": 13,
          "XRP": 174,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 256,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.356060606060606,
        "max_open_trades": 5,
        "avg_exposure": 0.8712121212121212,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 6.701850865657605,
          "2024-10-31 00:00:00+00:00": 8.358152240808607,
          "2024-11-30 00:00:00+00:00": 89.26366505613865,
          "2024-12-31 00:00:00+00:00": 113.37243880221911,
          "2025-01-31 00:00:00+00:00": 99.56803236560233,
          "2025-02-28 00:00:00+00:00": 121.49420205436405,
          "2025-03-31 00:00:00+00:00": 73.96391596990009,
          "2025-04-30 00:00:00+00:00": 10.194892143958782,
          "2025-07-31 00:00:00+00:00": 45.61412098569747,
          "2025-10-31 00:00:00+00:00": 40.059477492539486,
          "2025-11-30 00:00:00+00:00": 40.89018962936689,
          "2026-02-28 00:00:00+00:00": 100.01520156634695
        }
      },
      "test": {
        "label": "Test ridge_a10_H10_c12_p90_cap5",
        "variant": "ridge_a10_H10_c12_p90_cap5",
        "gain_pct": 54.21450246719672,
        "max_drawdown_pct": -8.788023320898631,
        "capital_score": 41.03246748584878,
        "stability_score": 40.03246748584878,
        "n_trades": 96,
        "skipped_by_capacity": 103,
        "avg_trade_ret_pct": 0.4583409687773293,
        "median_trade_ret_pct": 0.6188124255878709,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4595983070297791,
        "month_gain_concentration": 0.3008630170082979,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 56,
          "SOL": 25,
          "ETH": 7,
          "BTC": 1,
          "BNB": 7
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 96,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.5849056603773586,
        "max_open_trades": 5,
        "avg_exposure": 0.7169811320754715,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4242498357856732,
          "2025-02-28 00:00:00+00:00": 15.13279771104608,
          "2025-03-31 00:00:00+00:00": 1.4240111943289264,
          "2025-04-30 00:00:00+00:00": 0.4595983070297791,
          "2025-07-31 00:00:00+00:00": 5.697370176813408,
          "2025-10-31 00:00:00+00:00": 11.056878809581889,
          "2025-11-30 00:00:00+00:00": 4.235105763884661,
          "2026-02-28 00:00:00+00:00": 16.968108681072863
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.8936740800646845,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4242498357856732,
            "drawdown_pct": -0.46070008616054814,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.134873559949625,
            "drawdown_pct": -5.180378931063068,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.134873559949625,
            "drawdown_pct": -5.180378931063068,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 4.1366122036223345,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 6.376267388889687,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.545406064930916,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.557047546831754,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 17.66040634968165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 24.96008474694436,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 26.157328304802874,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 26.157328304802874,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.070592872354155,
            "drawdown_pct": -8.788023320898631,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 16.476858437392636,
            "drawdown_pct": -7.673331385095361,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.476858437392636,
            "drawdown_pct": -7.673331385095361,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 17.98105874116068,
            "drawdown_pct": -6.481010396707109,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 22.839578597366142,
            "drawdown_pct": -2.6298509583374097,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 24.138027225003867,
            "drawdown_pct": -1.6006213090691501,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 29.354360946652235,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 35.97979462256947,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 35.194906034585756,
            "drawdown_pct": -0.5772097171953261,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 39.43001179847042,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 41.03679154106726,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 56.39812047954328,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H10_c12_p90_cap5",
        "variant": "ridge_a10_H10_c12_p90_cap5",
        "gain_pct": 8.49081890998879,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.49081890998879,
        "stability_score": -6.259181090011209,
        "n_trades": 8,
        "skipped_by_capacity": 2,
        "avg_trade_ret_pct": 1.0281994828858008,
        "median_trade_ret_pct": 1.0154472205372862,
        "positive_month_rate": 1.0,
        "worst_month_pct": 8.497927720629932,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 2,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.0,
        "max_open_trades": 5,
        "avg_exposure": 0.6,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 8.497927720629932
        }
      },
      "selection_score": 739.3677197500451
    },
    {
      "name": "ridge_a100_H10_c12_p70_cap1",
      "variant": {
        "name": "ridge_a100_H10_c12_p70_cap1",
        "threshold": 0.033192613202133216,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p70_cap1",
        "variant": "ridge_a100_H10_c12_p70_cap1",
        "gain_pct": 2068.6008374419375,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 2050.8414824466213,
        "stability_score": 2025.3225388712365,
        "n_trades": 98,
        "skipped_by_capacity": 1873,
        "avg_trade_ret_pct": 3.292274529705453,
        "median_trade_ret_pct": 2.723282723610374,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -29.957719085588906,
        "month_gain_concentration": 0.1836012750066816,
        "top_asset_trade_share": 0.6020408163265306,
        "long_counts": {
          "SOL": 29,
          "XRP": 59,
          "ETH": 6,
          "BTC": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 98,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.34364075778066,
          "2024-10-31 00:00:00+00:00": 5.248857737008365,
          "2024-11-30 00:00:00+00:00": 124.89208986451462,
          "2024-12-31 00:00:00+00:00": 261.0022544995269,
          "2025-01-31 00:00:00+00:00": 150.70549656088576,
          "2025-02-28 00:00:00+00:00": 317.5583458010133,
          "2025-03-31 00:00:00+00:00": 220.9663902847892,
          "2025-04-30 00:00:00+00:00": 379.6944721884304,
          "2025-05-31 00:00:00+00:00": 45.88498376154894,
          "2025-07-31 00:00:00+00:00": -8.392825858187962,
          "2025-08-31 00:00:00+00:00": 95.93314016327759,
          "2025-10-31 00:00:00+00:00": -14.532589860867574,
          "2025-11-30 00:00:00+00:00": 172.29395391722005,
          "2026-01-31 00:00:00+00:00": -11.456345991865874,
          "2026-02-28 00:00:00+00:00": 252.5146937763975,
          "2026-03-31 00:00:00+00:00": -29.957719085588906
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p70_cap1",
        "variant": "ridge_a100_H10_c12_p70_cap1",
        "gain_pct": 193.81962452784995,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 176.0602695325337,
        "stability_score": 176.0602695325337,
        "n_trades": 54,
        "skipped_by_capacity": 646,
        "avg_trade_ret_pct": 2.094361953592339,
        "median_trade_ret_pct": 2.294028709077204,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.6020557808938918,
        "month_gain_concentration": 0.20348679950842072,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 27,
          "SOL": 17,
          "ETH": 6,
          "BTC": 1,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 54,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 29.040363543740682,
          "2025-02-28 00:00:00+00:00": 38.48137552243918,
          "2025-03-31 00:00:00+00:00": 24.924092747790837,
          "2025-04-30 00:00:00+00:00": 12.298347842318634,
          "2025-05-31 00:00:00+00:00": 4.169764578066378,
          "2025-07-31 00:00:00+00:00": 4.4137334716512555,
          "2025-08-31 00:00:00+00:00": 3.5712957255129254,
          "2025-10-31 00:00:00+00:00": 11.804600646867868,
          "2025-11-30 00:00:00+00:00": 18.676513206038436,
          "2025-12-31 00:00:00+00:00": 0.6020557808938918,
          "2026-01-31 00:00:00+00:00": 5.657479886052698,
          "2026-02-28 00:00:00+00:00": 30.007979850595717,
          "2026-03-31 00:00:00+00:00": 5.462332660192715
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.473509482458411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.176080922468117,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 24.851247304220763,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 25.472304800768896,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 29.040363543740682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 33.703343336294125,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.873442413828144,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 30.961024980501946,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.626037937580904,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 27.626037937580904,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.63946963081952,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 34.63946963081952,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 39.27854937283652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 44.90720450839453,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 49.581378092662334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 50.62074755250558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 50.62074755250558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 55.59673189204142,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 67.52173906617986,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 69.22752458423474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 86.37582975984691,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 86.37582975984691,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 82.02997069541226,
            "drawdown_pct": -2.3317718129193366,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 87.97018923572378,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 94.07084242368865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 86.53000253766515,
            "drawdown_pct": -3.885611971303038,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 86.53000253766515,
            "drawdown_pct": -3.885611971303038,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 90.47234418766237,
            "drawdown_pct": -1.854218898153781,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 77.53107876937207,
            "drawdown_pct": -8.522539216997648,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 88.37902160887936,
            "drawdown_pct": -2.932857271976541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 88.37902160887936,
            "drawdown_pct": -2.932857271976541,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 92.4458318139707,
            "drawdown_pct": -0.8373285700333466,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 92.4458318139707,
            "drawdown_pct": -0.8373285700333466,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 96.72521007795694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 103.33457770860946,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 103.33457770860946,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 101.74273849474574,
            "drawdown_pct": -0.782866953472583,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 98.74517591277515,
            "drawdown_pct": -2.2570690374222435,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 104.74417965628933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 108.91394423435571,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 107.8495467079693,
            "drawdown_pct": -0.5094908960181166,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 113.32767770600697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 113.32767770600697,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 118.73126781276872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 116.89897343151989,
            "drawdown_pct": -0.8376920225311557,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.41132637264676,
            "drawdown_pct": -1.5178174905307928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.41132637264676,
            "drawdown_pct": -1.5178174905307928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 112.83983046663758,
            "drawdown_pct": -2.6934591496877935,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 112.83983046663758,
            "drawdown_pct": -2.6934591496877935,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 124.84797286599732,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 123.54712158440529,
            "drawdown_pct": -0.5785470355862632,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 123.54712158440529,
            "drawdown_pct": -0.5785470355862632,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 128.70357407838776,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 133.6298613460967,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 141.27499862426131,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 147.3800872844262,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 147.9821430653201,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 153.6396229513728,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 162.35281355955556,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 163.04885004236644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 187.6868859200962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 187.6868859200962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 183.6476028019685,
            "drawdown_pct": -1.4040553517790766,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 189.10993546216122,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p70_cap1",
        "variant": "ridge_a100_H10_c12_p70_cap1",
        "gain_pct": 16.417599929071642,
        "max_drawdown_pct": -1.4040553517790877,
        "capital_score": 14.31151690140301,
        "stability_score": -5.68848309859699,
        "n_trades": 5,
        "skipped_by_capacity": 51,
        "avg_trade_ret_pct": 3.146217104824245,
        "median_trade_ret_pct": 2.7045116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.6312707005528893,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.18279140390655,
          "2026-03-31 00:00:00+00:00": -1.6312707005528893
        }
      },
      "selection_score": 2050.8414824466213
    },
    {
      "name": "ridge_a100_H10_c12_p70_cap2",
      "variant": {
        "name": "ridge_a100_H10_c12_p70_cap2",
        "threshold": 0.033192613202133216,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p70_cap2",
        "variant": "ridge_a100_H10_c12_p70_cap2",
        "gain_pct": 2087.915636245799,
        "max_drawdown_pct": -11.489131452600088,
        "capital_score": 2070.681939066899,
        "stability_score": 2044.6630123965306,
        "n_trades": 188,
        "skipped_by_capacity": 1783,
        "avg_trade_ret_pct": 1.6802648342404647,
        "median_trade_ret_pct": 1.4364806098937188,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -30.32743730866605,
        "month_gain_concentration": 0.1749721024713005,
        "top_asset_trade_share": 0.6063829787234043,
        "long_counts": {
          "SOL": 54,
          "XRP": 114,
          "BTC": 4,
          "ETH": 13,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 188,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.942084942084942,
        "max_open_trades": 2,
        "avg_exposure": 0.971042471042471,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 45.63726888546975,
          "2024-10-31 00:00:00+00:00": 5.007348426532019,
          "2024-11-30 00:00:00+00:00": 125.1148463723662,
          "2024-12-31 00:00:00+00:00": 255.66413774892152,
          "2025-01-31 00:00:00+00:00": 157.3977804514534,
          "2025-02-28 00:00:00+00:00": 323.10170798068475,
          "2025-03-31 00:00:00+00:00": 230.9516578050892,
          "2025-04-30 00:00:00+00:00": 365.82000610381374,
          "2025-05-31 00:00:00+00:00": 46.423846865834776,
          "2025-07-31 00:00:00+00:00": -4.216339294282079,
          "2025-08-31 00:00:00+00:00": 98.04961305914708,
          "2025-10-31 00:00:00+00:00": -7.3254151649000505,
          "2025-11-30 00:00:00+00:00": 176.66166768049357,
          "2026-01-31 00:00:00+00:00": -11.59428082961972,
          "2026-02-28 00:00:00+00:00": 260.9034466021035,
          "2026-03-31 00:00:00+00:00": -30.32743730866605
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p70_cap2",
        "variant": "ridge_a100_H10_c12_p70_cap2",
        "gain_pct": 194.77461840750124,
        "max_drawdown_pct": -7.960624221703194,
        "capital_score": 182.83368207494644,
        "stability_score": 182.83368207494644,
        "n_trades": 102,
        "skipped_by_capacity": 598,
        "avg_trade_ret_pct": 1.0826953203987657,
        "median_trade_ret_pct": 1.195040185308412,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.598716346179998,
        "month_gain_concentration": 0.19606330437107905,
        "top_asset_trade_share": 0.47058823529411764,
        "long_counts": {
          "XRP": 48,
          "SOL": 33,
          "ETH": 13,
          "BNB": 6,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 102,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9098360655737705,
        "max_open_trades": 2,
        "avg_exposure": 0.9549180327868853,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.74323836906933,
          "2025-02-28 00:00:00+00:00": 37.258044688335616,
          "2025-03-31 00:00:00+00:00": 25.996257342690598,
          "2025-04-30 00:00:00+00:00": 13.043825733001057,
          "2025-05-31 00:00:00+00:00": 4.115200206398953,
          "2025-07-31 00:00:00+00:00": 4.371164415927865,
          "2025-08-31 00:00:00+00:00": 7.038065962263147,
          "2025-10-31 00:00:00+00:00": 13.057455706401385,
          "2025-11-30 00:00:00+00:00": 16.235098762443812,
          "2025-12-31 00:00:00+00:00": 0.598716346179998,
          "2026-01-31 00:00:00+00:00": 5.65475579919854,
          "2026-02-28 00:00:00+00:00": 30.487819656386222,
          "2026-03-31 00:00:00+00:00": 7.431045354174785
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2367547412292197,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 8.67030472335233,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 10.321545286660097,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.698771216885817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.68928899074018,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.994440538358248,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.74323836906933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 26.99708818705858,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.327677342802616,
            "drawdown_pct": -7.613883894734297,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 28.277949010824813,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 25.03208460406381,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 25.03208460406381,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 29.92547356962956,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 29.92547356962956,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 34.093079904485336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 38.89066538745533,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 43.40689544836269,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 44.4050923725284,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.4050923725284,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 50.26430166768614,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 62.00128305740495,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 63.65505586796979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 80.65880357643954,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 80.65880357643954,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 76.47080928663851,
            "drawdown_pct": -2.3181789134505304,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 82.2765967057179,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 88.2404623900176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 80.99721971880632,
            "drawdown_pct": -3.8478670203242027,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 80.99721971880632,
            "drawdown_pct": -3.8478670203242027,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 85.65505298388905,
            "drawdown_pct": -1.3734610366456734,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 73.25534654595177,
            "drawdown_pct": -7.960624221703194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 84.00374634458981,
            "drawdown_pct": -2.250693603083953,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 84.00374634458981,
            "drawdown_pct": -2.250693603083953,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 87.99754040009555,
            "drawdown_pct": -0.12904876392554332,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 87.99754040009555,
            "drawdown_pct": -0.12904876392554332,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 92.20124294621885,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 98.71285610636446,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 98.71285610636446,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 98.0321311579871,
            "drawdown_pct": -0.3425671402020325,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 95.10063195286077,
            "drawdown_pct": -1.8178109983836066,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 101.0413661330966,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 105.15656633949555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 104.11264367994079,
            "drawdown_pct": -0.5088419435853031,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 109.52773075542342,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 109.52773075542342,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 118.39141287743112,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 116.56579671768657,
            "drawdown_pct": -0.8359377027196357,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.08298173757356,
            "drawdown_pct": -1.5149089866982823,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.08298173757356,
            "drawdown_pct": -1.5149089866982823,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 112.52306816052032,
            "drawdown_pct": -2.687076675585376,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 112.52306816052032,
            "drawdown_pct": -2.687076675585376,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 124.68245806702546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 123.38444449051403,
            "drawdown_pct": -0.577710243905305,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 123.38444449051403,
            "drawdown_pct": -0.577710243905305,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 129.62325242408795,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 132.09630101842035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 139.75338812831035,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 145.85835118653176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 146.45706753271176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 152.1118233319103,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 160.84690952414428,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 161.5394097663917,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 186.60967613155503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 186.60967613155503,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 182.59964298829652,
            "drawdown_pct": -1.3991269232019543,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 190.0306883424713,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p70_cap2",
        "variant": "ridge_a100_H10_c12_p70_cap2",
        "gain_pct": 18.0487279758446,
        "max_drawdown_pct": -1.3991269232019543,
        "capital_score": 15.950037591041667,
        "stability_score": 1.9500375910416692,
        "n_trades": 10,
        "skipped_by_capacity": 46,
        "avg_trade_ret_pct": 1.6880730211529194,
        "median_trade_ret_pct": 1.447412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.636313273576775,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.952454165631778,
          "2026-03-31 00:00:00+00:00": -1.636313273576775
        }
      },
      "selection_score": 2070.681939066899
    },
    {
      "name": "ridge_a100_H10_c12_p70_cap3",
      "variant": {
        "name": "ridge_a100_H10_c12_p70_cap3",
        "threshold": 0.033192613202133216,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p70_cap3",
        "variant": "ridge_a100_H10_c12_p70_cap3",
        "gain_pct": 1918.5412062242292,
        "max_drawdown_pct": -11.37846533291439,
        "capital_score": 1901.4735082248576,
        "stability_score": 1877.5845785398449,
        "n_trades": 271,
        "skipped_by_capacity": 1700,
        "avg_trade_ret_pct": 1.1262817497587658,
        "median_trade_ret_pct": 0.9550945607459868,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -28.01254592117516,
        "month_gain_concentration": 0.17477126513310365,
        "top_asset_trade_share": 0.6125461254612546,
        "long_counts": {
          "SOL": 78,
          "XRP": 166,
          "BTC": 6,
          "BNB": 5,
          "ETH": 16
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 271,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.833976833976834,
        "max_open_trades": 3,
        "avg_exposure": 0.9446589446589446,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 41.4927288632901,
          "2024-10-31 00:00:00+00:00": 4.730716316084397,
          "2024-11-30 00:00:00+00:00": 124.25993060874629,
          "2024-12-31 00:00:00+00:00": 226.82933905578352,
          "2025-01-31 00:00:00+00:00": 138.49759752142887,
          "2025-02-28 00:00:00+00:00": 299.1275593618217,
          "2025-03-31 00:00:00+00:00": 237.41077144458006,
          "2025-04-30 00:00:00+00:00": 335.9855928808038,
          "2025-05-31 00:00:00+00:00": 28.949627589506008,
          "2025-07-31 00:00:00+00:00": -2.6107737770705626,
          "2025-08-31 00:00:00+00:00": 91.59617705609435,
          "2025-10-31 00:00:00+00:00": -4.541042637958071,
          "2025-11-30 00:00:00+00:00": 165.20864805040287,
          "2026-01-31 00:00:00+00:00": -10.794942069732315,
          "2026-02-28 00:00:00+00:00": 228.34170977790518,
          "2026-03-31 00:00:00+00:00": -28.01254592117516
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p70_cap3",
        "variant": "ridge_a100_H10_c12_p70_cap3",
        "gain_pct": 177.96004787873704,
        "max_drawdown_pct": -8.702878026253458,
        "capital_score": 164.90573083935686,
        "stability_score": 164.90573083935686,
        "n_trades": 144,
        "skipped_by_capacity": 556,
        "avg_trade_ret_pct": 0.7201921659981718,
        "median_trade_ret_pct": 0.8009316406121934,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.5709359502135385,
        "month_gain_concentration": 0.20422704958777077,
        "top_asset_trade_share": 0.4375,
        "long_counts": {
          "XRP": 63,
          "SOL": 48,
          "ETH": 20,
          "BNB": 9,
          "BTC": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 144,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.737704918032787,
        "max_open_trades": 3,
        "avg_exposure": 0.912568306010929,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 23.746512187250886,
          "2025-02-28 00:00:00+00:00": 35.161127636216946,
          "2025-03-31 00:00:00+00:00": 23.64508255870595,
          "2025-04-30 00:00:00+00:00": 12.995633624331617,
          "2025-05-31 00:00:00+00:00": 4.009581501992415,
          "2025-07-31 00:00:00+00:00": 2.832603395257877,
          "2025-08-31 00:00:00+00:00": 5.69517212142523,
          "2025-10-31 00:00:00+00:00": 11.732199668758227,
          "2025-11-30 00:00:00+00:00": 14.585066545737845,
          "2025-12-31 00:00:00+00:00": 0.5709359502135385,
          "2026-01-31 00:00:00+00:00": 5.401579230897738,
          "2026-02-28 00:00:00+00:00": 27.11169698122771,
          "2026-03-31 00:00:00+00:00": 4.679657735692047
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8245031608194751,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 7.299896568260834,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.386841415511071,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 12.227492512598857,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 22.381608296688327,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 22.58453248824533,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 23.746512187250886,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 25.237072892138457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.42371218568907,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 29.292334455348822,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 26.104818955881967,
            "drawdown_pct": -2.4653553614716883,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 26.104818955881967,
            "drawdown_pct": -2.4653553614716883,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 31.35314002735231,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 31.35314002735231,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 35.69552621644044,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 38.92283801917063,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 44.137897345205374,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 44.83735190410334,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 44.83735190410334,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 51.089327788336334,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 58.90763982346783,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 59.98818561369416,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 76.75401251863977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 76.75401251863977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 72.6644639395891,
            "drawdown_pct": -2.31369490331621,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 78.36056993189055,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 84.21219029756136,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 77.14672686190042,
            "drawdown_pct": -3.8355026473807063,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 77.14672686190042,
            "drawdown_pct": -3.8355026473807063,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 80.1449109796173,
            "drawdown_pct": -2.207931685397213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 68.18042806647469,
            "drawdown_pct": -8.702878026253458,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 78.66774037363984,
            "drawdown_pct": -3.0098170566049243,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 78.66774037363984,
            "drawdown_pct": -3.0098170566049243,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 82.55272238217378,
            "drawdown_pct": -0.9008458738300695,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 82.55272238217378,
            "drawdown_pct": -0.9008458738300695,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 86.64227320781336,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 92.98337151212237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 92.98337151212237,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 92.60569433105394,
            "drawdown_pct": -0.19570452008851325,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 89.75804354890914,
            "drawdown_pct": -1.6712983807574466,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 95.5483560065054,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 99.55793750849782,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 98.880693397502,
            "drawdown_pct": -0.33937217404192976,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 102.39054090375569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 102.39054090375569,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 109.83861057424025,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 108.08571302518092,
            "drawdown_pct": -0.8353551066042519,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 106.66177398849143,
            "drawdown_pct": -1.5139428235133368,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 106.66177398849143,
            "drawdown_pct": -1.5139428235133368,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 104.20453066565065,
            "drawdown_pct": -2.6849586418683846,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 104.20453066565065,
            "drawdown_pct": -2.6849586418683846,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 114.84628533449722,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 113.60569406649734,
            "drawdown_pct": -0.5774320305647285,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 113.60569406649734,
            "drawdown_pct": -0.5774320305647285,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 119.81791269393915,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 121.39620924203965,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 128.72033321432437,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 134.402979239677,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 134.97391518989053,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 140.37549442078827,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 148.7279441321406,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 147.37718754360733,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 171.27829022191014,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 171.27829022191014,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 167.48719140201598,
            "drawdown_pct": -1.3974943652118155,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 172.16684913770803,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p70_cap3",
        "variant": "ridge_a100_H10_c12_p70_cap3",
        "gain_pct": 17.9278706609102,
        "max_drawdown_pct": -0.013509213160267652,
        "capital_score": 17.9076068411698,
        "stability_score": 4.764749698312661,
        "n_trades": 14,
        "skipped_by_capacity": 42,
        "avg_trade_ret_pct": 1.1911307034890934,
        "median_trade_ret_pct": 0.9152583514475633,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -0.015601201019592281,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8333333333333335,
        "max_open_trades": 3,
        "avg_exposure": 0.9444444444444443,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.485638093880297,
          "2026-03-31 00:00:00+00:00": -0.015601201019592281
        }
      },
      "selection_score": 1901.4735082248576
    },
    {
      "name": "ridge_a100_H10_c12_p70_cap5",
      "variant": {
        "name": "ridge_a100_H10_c12_p70_cap5",
        "threshold": 0.033192613202133216,
        "pred_percentile": 70,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p70_cap5",
        "variant": "ridge_a100_H10_c12_p70_cap5",
        "gain_pct": 1557.2479789749345,
        "max_drawdown_pct": -11.291988810650333,
        "capital_score": 1540.309995758959,
        "stability_score": 1536.3420326547391,
        "n_trades": 416,
        "skipped_by_capacity": 1555,
        "avg_trade_ret_pct": 0.6812667155754106,
        "median_trade_ret_pct": 0.602006010400939,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -8.727578488835434,
        "month_gain_concentration": 0.16351272522480326,
        "top_asset_trade_share": 0.5913461538461539,
        "long_counts": {
          "SOL": 124,
          "XRP": 246,
          "BTC": 11,
          "BNB": 9,
          "ETH": 26
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 416,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.455598455598456,
        "max_open_trades": 5,
        "avg_exposure": 0.8911196911196911,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 28.315415639689974,
          "2024-10-31 00:00:00+00:00": 3.612918622011705,
          "2024-11-30 00:00:00+00:00": 111.23359739719368,
          "2024-12-31 00:00:00+00:00": 176.15510362775638,
          "2025-01-31 00:00:00+00:00": 110.16074689870038,
          "2025-02-28 00:00:00+00:00": 244.65705120400366,
          "2025-03-31 00:00:00+00:00": 201.01938732027156,
          "2025-04-30 00:00:00+00:00": 251.57456882248346,
          "2025-05-31 00:00:00+00:00": 14.099988972966912,
          "2025-07-31 00:00:00+00:00": -1.2643819323311618,
          "2025-08-31 00:00:00+00:00": 74.27670811730854,
          "2025-10-31 00:00:00+00:00": -2.2011884245446254,
          "2025-11-30 00:00:00+00:00": 133.65881579060988,
          "2026-01-31 00:00:00+00:00": -8.727578488835434,
          "2026-02-28 00:00:00+00:00": 185.44384631001026,
          "2026-03-31 00:00:00+00:00": 4.354482880188698
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p70_cap5",
        "variant": "ridge_a100_H10_c12_p70_cap5",
        "gain_pct": 116.2202247521762,
        "max_drawdown_pct": -9.745574157577519,
        "capital_score": 101.60186351580991,
        "stability_score": 101.60186351580991,
        "n_trades": 213,
        "skipped_by_capacity": 487,
        "avg_trade_ret_pct": 0.3660576583429337,
        "median_trade_ret_pct": 0.46641607224294734,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.2653450775529791,
        "month_gain_concentration": 0.21365751980268302,
        "top_asset_trade_share": 0.4413145539906103,
        "long_counts": {
          "XRP": 94,
          "SOL": 63,
          "ETH": 33,
          "BTC": 9,
          "BNB": 14
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.122950819672131,
        "max_open_trades": 5,
        "avg_exposure": 0.8245901639344262,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 14.835028387800833,
          "2025-02-28 00:00:00+00:00": 17.537377979643992,
          "2025-03-31 00:00:00+00:00": 9.598352018947224,
          "2025-04-30 00:00:00+00:00": 9.307612041811154,
          "2025-05-31 00:00:00+00:00": 1.8560762042213526,
          "2025-07-31 00:00:00+00:00": 1.3034532972326076,
          "2025-08-31 00:00:00+00:00": 5.682056045690956,
          "2025-10-31 00:00:00+00:00": 10.480401815878395,
          "2025-11-30 00:00:00+00:00": 11.024973242317031,
          "2025-12-31 00:00:00+00:00": 0.2653450775529791,
          "2026-01-31 00:00:00+00:00": 3.1198532911080576,
          "2026-02-28 00:00:00+00:00": 23.69254081674987,
          "2026-03-31 00:00:00+00:00": 2.1872033301834506
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.4947018964916765,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.337081343271208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 4.971240312125673,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.614893861153988,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 6.115415396675189,
            "drawdown_pct": -1.3933744769691891,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 14.07212103932963,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 14.185608645498263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 14.835028387800833,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 15.66496004971546,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 4.392745593738027,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 14.993985655367098,
            "drawdown_pct": -0.5801016955004901,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 13.287322927505684,
            "drawdown_pct": -2.055624383726773,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 11.466140364780955,
            "drawdown_pct": -3.630157035570458,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 14.685291359031552,
            "drawdown_pct": -0.846988310256469,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 14.685291359031552,
            "drawdown_pct": -0.846988310256469,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 18.382663751493695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 20.068100269270317,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 24.441685783979764,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 24.819843711105733,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 24.819843711105733,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 28.40580470314086,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 32.372406367444825,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 32.91210671720782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 41.18842839970861,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 41.18842839970861,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 36.70660726593641,
            "drawdown_pct": -3.1743544315714245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 40.54801876145433,
            "drawdown_pct": -0.4535850745793879,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 45.82933629089928,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 40.52541628869457,
            "drawdown_pct": -3.637073401763613,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 40.52541628869457,
            "drawdown_pct": -3.637073401763613,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 41.95017464138269,
            "drawdown_pct": -2.6600694676265024,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 33.680156661335104,
            "drawdown_pct": -8.331094372759873,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 38.641369389331174,
            "drawdown_pct": -4.92902668584434,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 38.641369389331174,
            "drawdown_pct": -4.92902668584434,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 41.97075838639205,
            "drawdown_pct": -2.64595451275329,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 41.97075838639205,
            "drawdown_pct": -2.64595451275329,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 44.43384219646791,
            "drawdown_pct": -0.9569364641745626,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.95286961701581,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 49.95286961701581,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 17:00:00+00:00",
            "gain_pct": 49.83563671664828,
            "drawdown_pct": -0.07817983121426453,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 46.50577544490176,
            "drawdown_pct": -2.2987850655462827,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-22 21:00:00+00:00",
            "gain_pct": 51.2783704282032,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 53.134446632424556,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 52.8225232098753,
            "drawdown_pct": -0.2036925260179845,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 54.43789992965716,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 54.43789992965716,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 60.92744743828203,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-08-24 19:00:00+00:00",
            "gain_pct": 60.11995597534812,
            "drawdown_pct": -0.5017736102746473,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 59.0247485137501,
            "drawdown_pct": -1.1823333774443001,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 59.0247485137501,
            "drawdown_pct": -1.1823333774443001,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 58.4738477621666,
            "drawdown_pct": -1.5246620232738262,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 58.4738477621666,
            "drawdown_pct": -1.5246620232738262,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 66.59075978609647,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 65.62918173266155,
            "drawdown_pct": -0.5772097171953594,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 65.62918173266155,
            "drawdown_pct": -0.5772097171953594,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 70.60035779122651,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 71.33530596494018,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 71.33530596494018,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 71.33530596494018,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 77.32097457857492,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 77.32097457857492,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 77.32097457857492,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 81.62533103354355,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 81.89067611109652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 85.01052940220458,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 91.45406422097588,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 92.9007792917034,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 92.9007792917034,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 92.9007792917034,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 92.9007792917034,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 92.9007792917034,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 92.9007792917034,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 92.9007792917034,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 92.9007792917034,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 111.6582253831653,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 111.6582253831653,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 108.70307021895445,
            "drawdown_pct": -1.3961919782995103,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 110.8902735491379,
            "drawdown_pct": -0.3628263596357595,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p70_cap5",
        "variant": "ridge_a100_H10_c12_p70_cap5",
        "gain_pct": 15.423265345945012,
        "max_drawdown_pct": 0.0,
        "capital_score": 15.423265345945012,
        "stability_score": 5.496988054139443,
        "n_trades": 20,
        "skipped_by_capacity": 36,
        "avg_trade_ret_pct": 0.7217424073075437,
        "median_trade_ret_pct": 0.5574076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8970510916722227,
        "top_asset_trade_share": 0.5,
        "long_counts": {
          "XRP": 10,
          "ETH": 5,
          "BTC": 1,
          "SOL": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 20,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.333333333333333,
        "max_open_trades": 5,
        "avg_exposure": 0.8666666666666667,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 11.576267553044516,
          "2026-03-31 00:00:00+00:00": 1.328535373469748
        }
      },
      "selection_score": 1540.309995758959
    },
    {
      "name": "ridge_a100_H10_c12_p80_cap1",
      "variant": {
        "name": "ridge_a100_H10_c12_p80_cap1",
        "threshold": 0.0515363888136511,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p80_cap1",
        "variant": "ridge_a100_H10_c12_p80_cap1",
        "gain_pct": 1345.5717274188291,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 1327.812372423513,
        "stability_score": 1310.824727596901,
        "n_trades": 83,
        "skipped_by_capacity": 1231,
        "avg_trade_ret_pct": 3.3690283825288687,
        "median_trade_ret_pct": 3.085137365567101,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -19.96957253745518,
        "month_gain_concentration": 0.14919856959090513,
        "top_asset_trade_share": 0.6506024096385542,
        "long_counts": {
          "SOL": 23,
          "ETH": 4,
          "XRP": 54,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 83,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 19.666322065451553,
          "2024-10-31 00:00:00+00:00": 8.895511282929405,
          "2024-11-30 00:00:00+00:00": 127.09057704216096,
          "2024-12-31 00:00:00+00:00": 177.13185071887855,
          "2025-01-31 00:00:00+00:00": 121.825363258153,
          "2025-02-28 00:00:00+00:00": 198.10529578584033,
          "2025-03-31 00:00:00+00:00": 141.44834748386643,
          "2025-04-30 00:00:00+00:00": 69.05650978816197,
          "2025-05-31 00:00:00+00:00": 119.8338686644446,
          "2025-07-31 00:00:00+00:00": -5.518059725820194,
          "2025-10-31 00:00:00+00:00": 63.07348752982966,
          "2025-11-30 00:00:00+00:00": 64.3516589507276,
          "2026-01-31 00:00:00+00:00": 48.99317451307161,
          "2026-02-28 00:00:00+00:00": 168.3242465734579,
          "2026-03-31 00:00:00+00:00": -19.96957253745518
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p80_cap1",
        "variant": "ridge_a100_H10_c12_p80_cap1",
        "gain_pct": 148.82406167934104,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 131.0647066840248,
        "stability_score": 129.70756382688194,
        "n_trades": 42,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.290742566943314,
        "median_trade_ret_pct": 2.5316722576802433,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.486581081016709,
        "month_gain_concentration": 0.19628359339917129,
        "top_asset_trade_share": 0.5952380952380952,
        "long_counts": {
          "XRP": 25,
          "SOL": 12,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 42,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 24.851247304220763,
          "2025-02-28 00:00:00+00:00": 21.848861681375453,
          "2025-03-31 00:00:00+00:00": 19.607259065523266,
          "2025-04-30 00:00:00+00:00": 12.852422043281251,
          "2025-05-31 00:00:00+00:00": -1.4025827905599044,
          "2025-07-31 00:00:00+00:00": 3.7554838121484977,
          "2025-10-31 00:00:00+00:00": 13.960335837787909,
          "2025-11-30 00:00:00+00:00": 18.057618688594175,
          "2025-12-31 00:00:00+00:00": 0.5196754557661052,
          "2026-01-31 00:00:00+00:00": 4.883357209703803,
          "2026-02-28 00:00:00+00:00": 29.38851757986589,
          "2026-03-31 00:00:00+00:00": -3.486581081016709
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 2.473509482458411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 12.176080922468117,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 15.585102283430004,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 13.862162054812174,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 24.851247304220763,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 29.362849932008885,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 14.046844764353096,
            "drawdown_pct": -11.839569996877497,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 26.70955713413285,
            "drawdown_pct": -2.05104695766255,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 23.48283581517927,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 23.48283581517927,
            "drawdown_pct": -4.545365319270611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 30.26858618612411,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 34.757064645333,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 39.10383204033991,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 40.07039804349793,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 46.700108985596216,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 48.193878825854654,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 63.210785002949365,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 55.8042545081062,
            "drawdown_pct": -4.53801536136802,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 55.8042545081062,
            "drawdown_pct": -4.53801536136802,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 60.88864428058554,
            "drawdown_pct": -1.4227863203536861,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 66.1103543008208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 59.80517982221707,
            "drawdown_pct": -3.795774504932581,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 64.60192434304244,
            "drawdown_pct": -0.9080890617129356,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 53.418373259185785,
            "drawdown_pct": -7.640692294623741,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 62.792921958953855,
            "drawdown_pct": -1.9971255589878445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 62.792921958953855,
            "drawdown_pct": -1.9971255589878445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 66.30736805111948,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 66.30736805111948,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 70.00551068829898,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 79.15979009440073,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 77.75720730384083,
            "drawdown_pct": -0.782866953472583,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 76.8515505156117,
            "drawdown_pct": -1.2883692136348213,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 81.51269111598933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 81.51269111598933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 86.11040760788197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 86.11040760788197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 96.6105112381968,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 95.47302695377724,
            "drawdown_pct": -0.5785470355862521,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 95.47302695377724,
            "drawdown_pct": -0.5785470355862521,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 99.98190799057258,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 108.26092673484237,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 113.53064564237141,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 114.05032109813752,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 118.93367830784132,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 126.45462810050253,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.05542471754944,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 148.3221958877072,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 144.8356148066905,
            "drawdown_pct": -1.4040553517790877,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p80_cap1",
        "variant": "ridge_a100_H10_c12_p80_cap1",
        "gain_pct": 16.417599929071642,
        "max_drawdown_pct": -1.4040553517790877,
        "capital_score": 14.31151690140301,
        "stability_score": -5.68848309859699,
        "n_trades": 5,
        "skipped_by_capacity": 34,
        "avg_trade_ret_pct": 3.146217104824245,
        "median_trade_ret_pct": 2.7045116216670473,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.6312707005528893,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.18279140390655,
          "2026-03-31 00:00:00+00:00": -1.6312707005528893
        }
      },
      "selection_score": 1327.812372423513
    },
    {
      "name": "ridge_a100_H10_c12_p80_cap2",
      "variant": {
        "name": "ridge_a100_H10_c12_p80_cap2",
        "threshold": 0.0515363888136511,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p80_cap2",
        "variant": "ridge_a100_H10_c12_p80_cap2",
        "gain_pct": 1228.6266124920007,
        "max_drawdown_pct": -11.489131452600088,
        "capital_score": 1211.3929153131005,
        "stability_score": 1196.1092846645538,
        "n_trades": 158,
        "skipped_by_capacity": 1156,
        "avg_trade_ret_pct": 1.6748426616370073,
        "median_trade_ret_pct": 1.510152873845307,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -18.416542040951754,
        "month_gain_concentration": 0.1448114414816833,
        "top_asset_trade_share": 0.6455696202531646,
        "long_counts": {
          "SOL": 43,
          "ETH": 10,
          "XRP": 102,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 158,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.946341463414634,
        "max_open_trades": 2,
        "avg_exposure": 0.973170731707317,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.33509554611615,
          "2024-10-31 00:00:00+00:00": 8.471512815986515,
          "2024-11-30 00:00:00+00:00": 105.8335596001185,
          "2024-12-31 00:00:00+00:00": 168.1034280124804,
          "2025-01-31 00:00:00+00:00": 119.05880467927517,
          "2025-02-28 00:00:00+00:00": 176.49969845611088,
          "2025-03-31 00:00:00+00:00": 135.09533307273864,
          "2025-04-30 00:00:00+00:00": 58.62731672867881,
          "2025-05-31 00:00:00+00:00": 111.5190818651115,
          "2025-07-31 00:00:00+00:00": -2.536102591838471,
          "2025-10-31 00:00:00+00:00": 58.976249407935825,
          "2025-11-30 00:00:00+00:00": 60.18868196126573,
          "2026-01-31 00:00:00+00:00": 45.680113114187634,
          "2026-02-28 00:00:00+00:00": 158.43538786588624,
          "2026-03-31 00:00:00+00:00": -18.416542040951754
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p80_cap2",
        "variant": "ridge_a100_H10_c12_p80_cap2",
        "gain_pct": 145.79181209876214,
        "max_drawdown_pct": -8.497588916508715,
        "capital_score": 133.04542872399907,
        "stability_score": 133.04542872399907,
        "n_trades": 79,
        "skipped_by_capacity": 363,
        "avg_trade_ret_pct": 1.16591064690226,
        "median_trade_ret_pct": 1.2651722505389695,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.4316076882886364,
        "month_gain_concentration": 0.20228583810614698,
        "top_asset_trade_share": 0.5443037974683544,
        "long_counts": {
          "XRP": 43,
          "SOL": 23,
          "ETH": 10,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 79,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.903225806451613,
        "max_open_trades": 2,
        "avg_exposure": 0.9516129032258065,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 20.676685837391034,
          "2025-02-28 00:00:00+00:00": 20.654638290096585,
          "2025-03-31 00:00:00+00:00": 18.103021495191143,
          "2025-04-30 00:00:00+00:00": 12.460191372278302,
          "2025-05-31 00:00:00+00:00": -0.6728527624791241,
          "2025-07-31 00:00:00+00:00": 3.6481315061284363,
          "2025-10-31 00:00:00+00:00": 16.71264680788562,
          "2025-11-30 00:00:00+00:00": 18.812159647602925,
          "2025-12-31 00:00:00+00:00": 0.5123547719572628,
          "2026-01-31 00:00:00+00:00": 4.839088053061943,
          "2026-02-28 00:00:00+00:00": 29.521725299385935,
          "2026-03-31 00:00:00+00:00": -3.4316076882886364
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 1.2367547412292197,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.029490201312498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.640603702585565,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 10.159224400814182,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 20.676685837391034,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 22.857061543250452,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 13.502867520865095,
            "drawdown_pct": -7.6138838947343075,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 24.096167095198226,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 20.95611586351086,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 20.95611586351086,
            "drawdown_pct": -2.530337000077154,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 25.68998337086711,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 29.721728313044395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 33.93981717687055,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 34.87211762944821,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 41.33132412748762,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 42.77408986805489,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 57.60830681630094,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 50.53716063753788,
            "drawdown_pct": -4.486531402817984,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 50.53716063753788,
            "drawdown_pct": -4.486531402817984,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 55.48974603603148,
            "drawdown_pct": -1.3441936044264025,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 60.57717896710548,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 55.164577886523745,
            "drawdown_pct": -3.3707162595567275,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 57.44776139643085,
            "drawdown_pct": -1.9488557407747797,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 46.93199040475437,
            "drawdown_pct": -8.497588916508715,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 56.04734417342485,
            "drawdown_pct": -2.8209704659269086,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 56.04734417342485,
            "drawdown_pct": -2.8209704659269086,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 59.43434562267876,
            "drawdown_pct": -0.7117034635792385,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 59.43434562267876,
            "drawdown_pct": -0.7117034635792385,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 62.999363352204426,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 71.89453699495706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 71.22168423247794,
            "drawdown_pct": -0.3914334767363026,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 70.3504364865899,
            "drawdown_pct": -0.8982836426107421,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 74.86981573860638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 74.86981573860638,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 82.26735903205395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 82.26735903205395,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 92.69568525980137,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 91.582462546492,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 91.582462546492,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 96.93308662416558,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 105.17026682872077,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 110.39462219409492,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 110.90697696605218,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 115.74606501911413,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 123.22116257174346,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 123.81377342321062,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 145.26779031850006,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 141.83618263021143,
            "drawdown_pct": -1.3991269232019432,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p80_cap2",
        "variant": "ridge_a100_H10_c12_p80_cap2",
        "gain_pct": 18.0487279758446,
        "max_drawdown_pct": -1.3991269232019543,
        "capital_score": 15.950037591041667,
        "stability_score": 1.9500375910416692,
        "n_trades": 10,
        "skipped_by_capacity": 29,
        "avg_trade_ret_pct": 1.6880730211529194,
        "median_trade_ret_pct": 1.447412246808537,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -1.636313273576775,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.6,
        "long_counts": {
          "XRP": 6,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 16.952454165631778,
          "2026-03-31 00:00:00+00:00": -1.636313273576775
        }
      },
      "selection_score": 1211.3929153131005
    },
    {
      "name": "ridge_a100_H10_c12_p80_cap3",
      "variant": {
        "name": "ridge_a100_H10_c12_p80_cap3",
        "threshold": 0.0515363888136511,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p80_cap3",
        "variant": "ridge_a100_H10_c12_p80_cap3",
        "gain_pct": 1129.4854357136983,
        "max_drawdown_pct": -11.37846533291439,
        "capital_score": 1112.4177377143267,
        "stability_score": 1098.1679071950653,
        "n_trades": 224,
        "skipped_by_capacity": 1090,
        "avg_trade_ret_pct": 1.1375164049690787,
        "median_trade_ret_pct": 1.0206881140549473,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -17.062330519261423,
        "month_gain_concentration": 0.14479687576795613,
        "top_asset_trade_share": 0.65625,
        "long_counts": {
          "SOL": 61,
          "ETH": 12,
          "XRP": 147,
          "BTC": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 224,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.819512195121951,
        "max_open_trades": 3,
        "avg_exposure": 0.9398373983739837,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 14.150651505770071,
          "2024-10-31 00:00:00+00:00": 6.059370530727207,
          "2024-11-30 00:00:00+00:00": 103.58513174024522,
          "2024-12-31 00:00:00+00:00": 154.50538565554592,
          "2025-01-31 00:00:00+00:00": 101.35715600174115,
          "2025-02-28 00:00:00+00:00": 162.53454659329776,
          "2025-03-31 00:00:00+00:00": 130.2478760520222,
          "2025-04-30 00:00:00+00:00": 50.803304392630935,
          "2025-05-31 00:00:00+00:00": 105.53185585533811,
          "2025-07-31 00:00:00+00:00": -1.5773418291814778,
          "2025-10-31 00:00:00+00:00": 55.339333776290346,
          "2025-11-30 00:00:00+00:00": 56.482485643616315,
          "2026-01-31 00:00:00+00:00": 42.821243059885774,
          "2026-02-28 00:00:00+00:00": 139.0820289782639,
          "2026-03-31 00:00:00+00:00": -17.062330519261423
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p80_cap3",
        "variant": "ridge_a100_H10_c12_p80_cap3",
        "gain_pct": 134.50732867006414,
        "max_drawdown_pct": -8.418055025060179,
        "capital_score": 121.88024613247387,
        "stability_score": 121.88024613247387,
        "n_trades": 111,
        "skipped_by_capacity": 331,
        "avg_trade_ret_pct": 0.779937857118449,
        "median_trade_ret_pct": 0.8443333380941824,
        "positive_month_rate": 0.8333333333333334,
        "worst_month_pct": -3.2544033745588763,
        "month_gain_concentration": 0.19899502824390142,
        "top_asset_trade_share": 0.5225225225225225,
        "long_counts": {
          "XRP": 58,
          "SOL": 33,
          "ETH": 14,
          "BNB": 5,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 111,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7204301075268815,
        "max_open_trades": 3,
        "avg_exposure": 0.906810035842294,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 16.16659698272855,
          "2025-02-28 00:00:00+00:00": 21.165466088244642,
          "2025-03-31 00:00:00+00:00": 17.43396648886653,
          "2025-04-30 00:00:00+00:00": 12.141290652628527,
          "2025-05-31 00:00:00+00:00": -0.4355540842900325,
          "2025-07-31 00:00:00+00:00": 2.362965341477178,
          "2025-10-31 00:00:00+00:00": 14.27205222892627,
          "2025-11-30 00:00:00+00:00": 18.112409702861243,
          "2025-12-31 00:00:00+00:00": 0.49011011617042755,
          "2026-01-31 00:00:00+00:00": 4.636892497957035,
          "2026-02-28 00:00:00+00:00": 26.527971893194632,
          "2026-03-31 00:00:00+00:00": -3.2544033745588763
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.8245031608194751,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.006648965336865,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 5.060233309667694,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.396168084852135,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 16.16659698272855,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 17.565855528463985,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 10.23109103107474,
            "drawdown_pct": -6.238856055968922,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 21.37271785812844,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 18.38044905104914,
            "drawdown_pct": -2.4653553614717105,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 18.38044905104914,
            "drawdown_pct": -2.4653553614717105,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 23.307291739131557,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 27.3836912873294,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 32.165579684549186,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 32.7785256453094,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 37.33206307097319,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 38.2658984912166,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 52.75535664756998,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 45.92762571104251,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 45.92762571104251,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 50.74169807016912,
            "drawdown_pct": -1.3182245268469894,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 55.68720363073126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 51.24093730290781,
            "drawdown_pct": -2.855897096314597,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 52.72471565424675,
            "drawdown_pct": -1.902846160376237,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 42.58136916211882,
            "drawdown_pct": -8.418055025060179,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 51.472387961258306,
            "drawdown_pct": -2.7072332029740354,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 51.472387961258306,
            "drawdown_pct": -2.7072332029740354,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 54.76602955983972,
            "drawdown_pct": -0.5916825849582641,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 54.76602955983972,
            "drawdown_pct": -0.5916825849582641,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 58.233102171566514,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 66.90732021246825,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 66.47176612817822,
            "drawdown_pct": -0.26095565115753505,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 65.90680727630303,
            "drawdown_pct": -0.5994422143328348,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 68.8347314696554,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 68.8347314696554,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 75.04793114375249,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 75.04793114375249,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 84.17024166472225,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 83.10678369858167,
            "drawdown_pct": -0.5774320305647396,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 83.10678369858167,
            "drawdown_pct": -0.5774320305647396,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 88.43201333477842,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 96.34102396299821,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 101.21919340144291,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 101.70930351761334,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 106.34619601557037,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 113.51621236645448,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 112.35667867747165,
            "drawdown_pct": -0.5430658759498552,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 132.874167908765,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 129.61976453420613,
            "drawdown_pct": -1.3974943652118044,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p80_cap3",
        "variant": "ridge_a100_H10_c12_p80_cap3",
        "gain_pct": 17.9278706609102,
        "max_drawdown_pct": -0.013509213160267652,
        "capital_score": 17.9076068411698,
        "stability_score": 4.764749698312661,
        "n_trades": 14,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 1.1911307034890934,
        "median_trade_ret_pct": 0.9152583514475633,
        "positive_month_rate": 0.3333333333333333,
        "worst_month_pct": -0.015601201019592281,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 8,
          "ETH": 3,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 14,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8181818181818183,
        "max_open_trades": 3,
        "avg_exposure": 0.9393939393939393,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 15.485638093880297,
          "2026-03-31 00:00:00+00:00": -0.015601201019592281
        }
      },
      "selection_score": 1112.4177377143267
    },
    {
      "name": "ridge_a100_H10_c12_p80_cap5",
      "variant": {
        "name": "ridge_a100_H10_c12_p80_cap5",
        "threshold": 0.0515363888136511,
        "pred_percentile": 80,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p80_cap5",
        "variant": "ridge_a100_H10_c12_p80_cap5",
        "gain_pct": 1021.1681431850366,
        "max_drawdown_pct": -11.291988810650333,
        "capital_score": 1004.2301599690611,
        "stability_score": 1001.8152039573309,
        "n_trades": 341,
        "skipped_by_capacity": 973,
        "avg_trade_ret_pct": 0.7153731548233403,
        "median_trade_ret_pct": 0.6491085860763119,
        "positive_month_rate": 0.875,
        "worst_month_pct": -0.8572148442477783,
        "month_gain_concentration": 0.14316462786513282,
        "top_asset_trade_share": 0.6304985337243402,
        "long_counts": {
          "SOL": 103,
          "BNB": 1,
          "ETH": 17,
          "XRP": 215,
          "BTC": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 341,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.4487804878048784,
        "max_open_trades": 5,
        "avg_exposure": 0.8897560975609755,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 15.039176606895694,
          "2024-10-31 00:00:00+00:00": 3.8548503924949102,
          "2024-11-30 00:00:00+00:00": 97.47600082004209,
          "2024-12-31 00:00:00+00:00": 136.7213598454753,
          "2025-01-31 00:00:00+00:00": 86.17113078036442,
          "2025-02-28 00:00:00+00:00": 143.32716441054384,
          "2025-03-31 00:00:00+00:00": 118.77116122828568,
          "2025-04-30 00:00:00+00:00": 43.18949626502604,
          "2025-05-31 00:00:00+00:00": 96.69613819180552,
          "2025-07-31 00:00:00+00:00": -0.8572148442477783,
          "2025-10-31 00:00:00+00:00": 50.35748704714854,
          "2025-11-30 00:00:00+00:00": 51.4017486873056,
          "2026-01-31 00:00:00+00:00": 29.72646028035433,
          "2026-02-28 00:00:00+00:00": 125.45722515292312,
          "2026-03-31 00:00:00+00:00": 2.945912468894221
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p80_cap5",
        "variant": "ridge_a100_H10_c12_p80_cap5",
        "gain_pct": 94.07368767862954,
        "max_drawdown_pct": -9.745574157577519,
        "capital_score": 79.45532644226326,
        "stability_score": 79.45532644226326,
        "n_trades": 165,
        "skipped_by_capacity": 277,
        "avg_trade_ret_pct": 0.40669591347764306,
        "median_trade_ret_pct": 0.5132891053213391,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.680268762581818,
        "month_gain_concentration": 0.26128128575889814,
        "top_asset_trade_share": 0.49696969696969695,
        "long_counts": {
          "XRP": 82,
          "SOL": 49,
          "ETH": 22,
          "BTC": 3,
          "BNB": 9
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 165,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.086021505376344,
        "max_open_trades": 5,
        "avg_exposure": 0.8172043010752689,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 10.920895492488427,
          "2025-02-28 00:00:00+00:00": 9.848709796729963,
          "2025-03-31 00:00:00+00:00": 7.2661542482269965,
          "2025-04-30 00:00:00+00:00": 10.23251044278905,
          "2025-05-31 00:00:00+00:00": -0.21649131856270287,
          "2025-07-31 00:00:00+00:00": 1.175072297856758,
          "2025-10-31 00:00:00+00:00": 12.400828759015099,
          "2025-11-30 00:00:00+00:00": 13.54275712354709,
          "2025-12-31 00:00:00+00:00": -0.15896282884875745,
          "2026-01-31 00:00:00+00:00": 2.8303352391541523,
          "2026-02-28 00:00:00+00:00": 24.12812068848956,
          "2026-03-31 00:00:00+00:00": -2.680268762581818
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.4947018964916765,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.397744018143811,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.020115728407845,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.39450758236849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 10.920895492488427,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 11.722539071364565,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.8345361754362131,
            "drawdown_pct": -9.745574157577519,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 11.074434727955364,
            "drawdown_pct": -0.5801016955005012,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 9.425943316094902,
            "drawdown_pct": -2.055624383726795,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 7.666835458947446,
            "drawdown_pct": -3.6301570355704804,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 10.776262225508361,
            "drawdown_pct": -0.8469883102564912,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.623643078177281,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 17.84480914203975,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 18.172575621170964,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 20.76960528921839,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 21.261999436941295,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 28.013381880899715,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 21.569644964437543,
            "drawdown_pct": -5.033643219001316,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 21.569644964437543,
            "drawdown_pct": -5.033643219001316,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.241406694524187,
            "drawdown_pct": -2.165379232738729,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 29.94755369265988,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 29.94755369265988,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 29.94755369265988,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 26.476208495528155,
            "drawdown_pct": -2.6713432446307084,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 27.220758568993176,
            "drawdown_pct": -2.0983812670424484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 27.220758568993176,
            "drawdown_pct": -2.0983812670424484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 27.220758568993176,
            "drawdown_pct": -2.0983812670424484,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 19.808876452899284,
            "drawdown_pct": -7.80213012992893,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 24.255290472976142,
            "drawdown_pct": -4.380431226236514,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 24.255290472976142,
            "drawdown_pct": -4.380431226236514,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.035759537445387,
            "drawdown_pct": -1.4712044212360387,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.035759537445387,
            "drawdown_pct": -1.4712044212360387,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 30.257081801352342,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 30.257081801352342,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 30.257081801352342,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 30.257081801352342,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 38.268269980234436,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 38.05177866167173,
            "drawdown_pct": -0.15657339069451437,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 37.77057750650303,
            "drawdown_pct": -0.35994698841791406,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 39.22685095952849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 39.22685095952849,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 45.07722359597085,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 45.07722359597085,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 52.50797054402108,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 51.62767971854359,
            "drawdown_pct": -0.5772097171953372,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 51.62767971854359,
            "drawdown_pct": -0.5772097171953372,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 56.178616234363744,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 62.75218729421721,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 62.75218729421721,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 62.75218729421721,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 65.17043684209068,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 65.01147401324192,
            "drawdown_pct": -0.09624169548012595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 67.84180925239608,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 73.6873929900236,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 74.99985491166774,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 91.96992994088563,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 89.28966117830382,
            "drawdown_pct": -1.3961919782994991,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p80_cap5",
        "variant": "ridge_a100_H10_c12_p80_cap5",
        "gain_pct": 16.69966105040659,
        "max_drawdown_pct": 0.0,
        "capital_score": 16.69966105040659,
        "stability_score": 5.605337553920297,
        "n_trades": 19,
        "skipped_by_capacity": 20,
        "avg_trade_ret_pct": 0.8186831845841456,
        "median_trade_ret_pct": 0.5574076974036664,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9090360977541886,
        "top_asset_trade_share": 0.5789473684210527,
        "long_counts": {
          "XRP": 11,
          "ETH": 4,
          "BTC": 1,
          "SOL": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 19,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.090909090909091,
        "max_open_trades": 5,
        "avg_exposure": 0.8181818181818182,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 13.506191091232964,
          "2026-03-31 00:00:00+00:00": 1.3515149169228948
        }
      },
      "selection_score": 1004.2301599690611
    },
    {
      "name": "ridge_a100_H10_c12_p90_cap1",
      "variant": {
        "name": "ridge_a100_H10_c12_p90_cap1",
        "threshold": 0.06493222207483522,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p90_cap1",
        "variant": "ridge_a100_H10_c12_p90_cap1",
        "gain_pct": 663.2079811176883,
        "max_drawdown_pct": -11.839569996877497,
        "capital_score": 645.448626122372,
        "stability_score": 640.948626122372,
        "n_trades": 60,
        "skipped_by_capacity": 597,
        "avg_trade_ret_pct": 3.560870302371013,
        "median_trade_ret_pct": 3.3455499917021103,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14147100223528,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "SOL": 14,
          "ETH": 3,
          "XRP": 42,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 60,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 5.070130186267946,
          "2024-10-31 00:00:00+00:00": 7.02975073469959,
          "2024-11-30 00:00:00+00:00": 81.37537728028556,
          "2024-12-31 00:00:00+00:00": 92.55253998468294,
          "2025-01-31 00:00:00+00:00": 91.93210820921263,
          "2025-02-28 00:00:00+00:00": 83.52215656746614,
          "2025-03-31 00:00:00+00:00": 72.14296692649714,
          "2025-04-30 00:00:00+00:00": 34.258080429986876,
          "2025-07-31 00:00:00+00:00": 39.0567295630176,
          "2025-10-31 00:00:00+00:00": 35.52719084790135,
          "2025-11-30 00:00:00+00:00": 36.24714215842789,
          "2026-02-28 00:00:00+00:00": 95.36226995180232
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p90_cap1",
        "variant": "ridge_a100_H10_c12_p90_cap1",
        "gain_pct": 121.30340190536825,
        "max_drawdown_pct": -10.89457843036894,
        "capital_score": 104.96153425981484,
        "stability_score": 104.90981012188381,
        "n_trades": 29,
        "skipped_by_capacity": 170,
        "avg_trade_ret_pct": 2.8778695229843847,
        "median_trade_ret_pct": 3.1909258775561478,
        "positive_month_rate": 1.0,
        "worst_month_pct": 3.11357546832582,
        "month_gain_concentration": 0.20877334142966567,
        "top_asset_trade_share": 0.5517241379310345,
        "long_counts": {
          "XRP": 16,
          "SOL": 11,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 29,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 17.551669735860642,
          "2025-02-28 00:00:00+00:00": 25.925352006872075,
          "2025-03-31 00:00:00+00:00": 16.376887466633065,
          "2025-04-30 00:00:00+00:00": 3.11357546832582,
          "2025-07-31 00:00:00+00:00": 15.798868173577318,
          "2025-10-31 00:00:00+00:00": 13.749112015013054,
          "2025-11-30 00:00:00+00:00": 5.956548088854021,
          "2026-02-28 00:00:00+00:00": 25.982859600681138
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 9.468370400323423,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 7.836607695632779,
            "drawdown_pct": -1.4906248249821563,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 17.551669735860642,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 21.799496117513954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 17.413018218019147,
            "drawdown_pct": -3.601392484631194,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 30.44947951806202,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 27.364927761090584,
            "drawdown_pct": -2.3645565841789007,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 34.36401067083003,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 38.99359931722293,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 43.47702174273272,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 50.267972538004074,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 65.49505251528964,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 57.984861609841715,
            "drawdown_pct": -4.53801536136803,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 63.112328116892996,
            "drawdown_pct": -1.439755667726994,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 63.112328116892996,
            "drawdown_pct": -1.439755667726994,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 58.21464423351196,
            "drawdown_pct": -4.399169746240639,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 47.46506422063115,
            "drawdown_pct": -10.89457843036894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 56.475839114686806,
            "drawdown_pct": -5.449838689147269,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 56.475839114686806,
            "drawdown_pct": -5.449838689147269,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 59.85390920936578,
            "drawdown_pct": -3.408647702868761,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 62.9674846776916,
            "drawdown_pct": -1.5272769784852147,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 74.17573662419741,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 78.76635285126892,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 83.29450459452394,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 93.63573869232198,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 92.51546486628197,
            "drawdown_pct": -0.5785470355862743,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.472012955136,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 104.805107776228,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 105.34846702190998,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 124.45487255581713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p90_cap1",
        "variant": "ridge_a100_H10_c12_p90_cap1",
        "gain_pct": 7.769687845663796,
        "max_drawdown_pct": 0.0,
        "capital_score": 7.769687845663796,
        "stability_score": -18.230312154336204,
        "n_trades": 2,
        "skipped_by_capacity": 8,
        "avg_trade_ret_pct": 3.9501632586229047,
        "median_trade_ret_pct": 3.9501632586229047,
        "positive_month_rate": 1.0,
        "worst_month_pct": 9.304381869024894,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 9.304381869024894
        }
      },
      "selection_score": 545.448626122372
    },
    {
      "name": "ridge_a100_H10_c12_p90_cap2",
      "variant": {
        "name": "ridge_a100_H10_c12_p90_cap2",
        "threshold": 0.06493222207483522,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p90_cap2",
        "variant": "ridge_a100_H10_c12_p90_cap2",
        "gain_pct": 697.9407278895056,
        "max_drawdown_pct": -11.489131452600098,
        "capital_score": 680.7070307106055,
        "stability_score": 676.2587548485366,
        "n_trades": 116,
        "skipped_by_capacity": 541,
        "avg_trade_ret_pct": 1.8346816813194402,
        "median_trade_ret_pct": 1.7083063142351962,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.14545288335904588,
        "top_asset_trade_share": 0.6982758620689655,
        "long_counts": {
          "SOL": 26,
          "ETH": 7,
          "XRP": 81,
          "BTC": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 116,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9318181818181819,
        "max_open_trades": 2,
        "avg_exposure": 0.9659090909090909,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 1.4332020886702566,
          "2024-10-31 00:00:00+00:00": 6.872657392943012,
          "2024-11-30 00:00:00+00:00": 84.35233938035297,
          "2024-12-31 00:00:00+00:00": 103.16439921498119,
          "2025-01-31 00:00:00+00:00": 99.74674920021084,
          "2025-02-28 00:00:00+00:00": 91.72756716099201,
          "2025-03-31 00:00:00+00:00": 79.6463229759716,
          "2025-04-30 00:00:00+00:00": 23.76648550491211,
          "2025-07-31 00:00:00+00:00": 41.32518738233921,
          "2025-10-31 00:00:00+00:00": 37.53752105494186,
          "2025-11-30 00:00:00+00:00": 38.309216660464585,
          "2026-02-28 00:00:00+00:00": 101.38170127223441
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p90_cap2",
        "variant": "ridge_a100_H10_c12_p90_cap2",
        "gain_pct": 87.39124384353804,
        "max_drawdown_pct": -11.2824836811531,
        "capital_score": 70.46751832180838,
        "stability_score": 69.5675183218084,
        "n_trades": 50,
        "skipped_by_capacity": 149,
        "avg_trade_ret_pct": 1.2895123882508523,
        "median_trade_ret_pct": 1.5470310639696772,
        "positive_month_rate": 1.0,
        "worst_month_pct": 1.3074253936758282,
        "month_gain_concentration": 0.24261209184220242,
        "top_asset_trade_share": 0.58,
        "long_counts": {
          "XRP": 29,
          "SOL": 16,
          "ETH": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 50,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.7924528301886793,
        "max_open_trades": 2,
        "avg_exposure": 0.8962264150943396,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 8.373878017013126,
          "2025-02-28 00:00:00+00:00": 17.48547043986943,
          "2025-03-31 00:00:00+00:00": 8.389563962160096,
          "2025-04-30 00:00:00+00:00": 1.3074253936758282,
          "2025-07-31 00:00:00+00:00": 13.331209951539137,
          "2025-10-31 00:00:00+00:00": 14.229471160395804,
          "2025-11-30 00:00:00+00:00": 5.085980786310472,
          "2026-02-28 00:00:00+00:00": 21.84728888798503
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.734185200161704,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.9535883177434954,
            "drawdown_pct": -0.7453124124910837,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 8.373878017013126,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.331967677318104,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 6.394255702519743,
            "drawdown_pct": -3.568967415060309,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 16.32410371660454,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 14.948829089895497,
            "drawdown_pct": -1.182278292089456,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 18.107219705429713,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.895733100939935,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 25.859348456882557,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 28.837890358972516,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 42.22413725086716,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 35.843206670720036,
            "drawdown_pct": -4.486531402817995,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 40.287829037774145,
            "drawdown_pct": -1.361448380367103,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 40.287829037774145,
            "drawdown_pct": -1.361448380367103,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 35.20813159754479,
            "drawdown_pct": -4.933062551082267,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.17772217487729,
            "drawdown_pct": -11.2824836811531,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 30.03273372344799,
            "drawdown_pct": -8.571965183318298,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 30.03273372344799,
            "drawdown_pct": -8.571965183318298,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 34.248912419042654,
            "drawdown_pct": -5.607504454575896,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.55633781271848,
            "drawdown_pct": -4.688233352674476,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 45.03966074380571,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 48.88754776425762,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 55.18595939001068,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 64.06483830217172,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 63.11701892465342,
            "drawdown_pct": -0.5777102439052939,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 68.2029997109639,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 73.06946053883684,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 73.52892790828895,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 90.05028859894892,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p90_cap2",
        "variant": "ridge_a100_H10_c12_p90_cap2",
        "gain_pct": 8.783392781277556,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.783392781277556,
        "stability_score": -17.216607218722444,
        "n_trades": 4,
        "skipped_by_capacity": 6,
        "avg_trade_ret_pct": 2.167671236781722,
        "median_trade_ret_pct": 1.9750816293114524,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.32700764885577,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.75,
        "max_open_trades": 2,
        "avg_exposure": 0.875,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.32700764885577
        }
      },
      "selection_score": 680.7070307106055
    },
    {
      "name": "ridge_a100_H10_c12_p90_cap3",
      "variant": {
        "name": "ridge_a100_H10_c12_p90_cap3",
        "threshold": 0.06493222207483522,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p90_cap3",
        "variant": "ridge_a100_H10_c12_p90_cap3",
        "gain_pct": 715.0641421771558,
        "max_drawdown_pct": -11.37846533291439,
        "capital_score": 697.9964441777842,
        "stability_score": 693.5325887560974,
        "n_trades": 166,
        "skipped_by_capacity": 491,
        "avg_trade_ret_pct": 1.2846272920618274,
        "median_trade_ret_pct": 1.2045274477167405,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.15032344873442896,
        "top_asset_trade_share": 0.6987951807228916,
        "long_counts": {
          "SOL": 38,
          "ETH": 9,
          "XRP": 116,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 166,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.787878787878788,
        "max_open_trades": 3,
        "avg_exposure": 0.9292929292929293,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 4.4069218334148985,
          "2024-10-31 00:00:00+00:00": 7.3228694349713805,
          "2024-11-30 00:00:00+00:00": 89.04972029268767,
          "2024-12-31 00:00:00+00:00": 109.22743128848384,
          "2025-01-31 00:00:00+00:00": 100.4113185866176,
          "2025-02-28 00:00:00+00:00": 96.66371088692392,
          "2025-03-31 00:00:00+00:00": 80.77759964757149,
          "2025-04-30 00:00:00+00:00": 16.35831875553413,
          "2025-07-31 00:00:00+00:00": 42.51564869833453,
          "2025-10-31 00:00:00+00:00": 38.59995993704217,
          "2025-11-30 00:00:00+00:00": 39.397324366095745,
          "2026-02-28 00:00:00+00:00": 101.88523123958214
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p90_cap3",
        "variant": "ridge_a100_H10_c12_p90_cap3",
        "gain_pct": 59.76952417567492,
        "max_drawdown_pct": -11.40802787463545,
        "capital_score": 42.65748236372174,
        "stability_score": 41.069247069604096,
        "n_trades": 68,
        "skipped_by_capacity": 131,
        "avg_trade_ret_pct": 0.7070331612569819,
        "median_trade_ret_pct": 1.0022646624408653,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.7820680290808468,
        "month_gain_concentration": 0.27258288369421513,
        "top_asset_trade_share": 0.6029411764705882,
        "long_counts": {
          "XRP": 41,
          "SOL": 19,
          "ETH": 4,
          "BNB": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 68,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.452830188679245,
        "max_open_trades": 3,
        "avg_exposure": 0.8176100628930818,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.102697604108826,
          "2025-02-28 00:00:00+00:00": 13.131184431414951,
          "2025-03-31 00:00:00+00:00": 4.222454727167076,
          "2025-04-30 00:00:00+00:00": 0.7820680290808468,
          "2025-07-31 00:00:00+00:00": 8.518273867436022,
          "2025-10-31 00:00:00+00:00": 10.968679718657597,
          "2025-11-30 00:00:00+00:00": 4.399190895592795,
          "2026-02-28 00:00:00+00:00": 16.90939007433292
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.156123466774474,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.643566538479476,
            "drawdown_pct": -0.49687494166071877,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.102697604108826,
            "drawdown_pct": -0.05179126635449505,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.344597896086697,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.50136578930136,
            "drawdown_pct": -7.519281154546775,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 6.252250560126498,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 5.414785697973912,
            "drawdown_pct": -0.7881855280596373,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.345738061868261,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.894466705281445,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.233882035523777,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 18.06771476139393,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 30.44052129806977,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 24.610200174219543,
            "drawdown_pct": -4.469716209219488,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 28.698388417777096,
            "drawdown_pct": -1.3355764473769072,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 28.698388417777096,
            "drawdown_pct": -1.3355764473769072,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.7808440368712,
            "drawdown_pct": -5.105527940953669,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.559830268566174,
            "drawdown_pct": -11.40802787463545,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 17.91357107456345,
            "drawdown_pct": -9.603572646632541,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 17.91357107456345,
            "drawdown_pct": -9.603572646632541,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 20.456336762690853,
            "drawdown_pct": -7.654204717998669,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 21.2384047917717,
            "drawdown_pct": -7.054645607610155,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 27.506444270890384,
            "drawdown_pct": -2.249360089933039,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 29.756678659207722,
            "drawdown_pct": -0.5242562909568593,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 34.531787113135096,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 41.54267109770035,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 40.72535837786532,
            "drawdown_pct": -0.5774320305647507,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 45.124549273458115,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 47.917145787284284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 47.113858243834585,
            "drawdown_pct": -0.5430658759498219,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 62.03393934779103,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p90_cap3",
        "variant": "ridge_a100_H10_c12_p90_cap3",
        "gain_pct": 10.675548432451592,
        "max_drawdown_pct": 0.0,
        "capital_score": 10.675548432451592,
        "stability_score": -10.324451567548408,
        "n_trades": 6,
        "skipped_by_capacity": 4,
        "avg_trade_ret_pct": 1.7207503950032872,
        "median_trade_ret_pct": 2.0152367260072053,
        "positive_month_rate": 1.0,
        "worst_month_pct": 10.690501848294446,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.8333333333333334,
        "long_counts": {
          "XRP": 5,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 6,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5,
        "max_open_trades": 3,
        "avg_exposure": 0.8333333333333333,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 10.690501848294446
        }
      },
      "selection_score": 697.9964441777842
    },
    {
      "name": "ridge_a100_H10_c12_p90_cap5",
      "variant": {
        "name": "ridge_a100_H10_c12_p90_cap5",
        "threshold": 0.06493222207483522,
        "pred_percentile": 90,
        "horizon": 10,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H10_c12",
        "n_train": 12794,
        "target_mean": 0.007813253534827652
      },
      "val": {
        "label": "Validation ridge_a100_H10_c12_p90_cap5",
        "variant": "ridge_a100_H10_c12_p90_cap5",
        "gain_pct": 759.8398437422322,
        "max_drawdown_pct": -8.272658647739062,
        "capital_score": 747.4308557706237,
        "stability_score": 743.619571723931,
        "n_trades": 257,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 0.845125646427801,
        "median_trade_ret_pct": 0.7355086517906879,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.16038040638724707,
        "top_asset_trade_share": 0.6770428015564203,
        "long_counts": {
          "SOL": 66,
          "BNB": 1,
          "ETH": 13,
          "XRP": 174,
          "BTC": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 257,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.363636363636363,
        "max_open_trades": 5,
        "avg_exposure": 0.8727272727272728,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 6.701850865657605,
          "2024-10-31 00:00:00+00:00": 8.358152240808607,
          "2024-11-30 00:00:00+00:00": 89.26366505613865,
          "2024-12-31 00:00:00+00:00": 113.37243880221911,
          "2025-01-31 00:00:00+00:00": 99.56803236560233,
          "2025-02-28 00:00:00+00:00": 121.49420205436405,
          "2025-03-31 00:00:00+00:00": 79.76410146346882,
          "2025-04-30 00:00:00+00:00": 10.291399598702128,
          "2025-07-31 00:00:00+00:00": 46.04591591344388,
          "2025-10-31 00:00:00+00:00": 40.438690745270605,
          "2025-11-30 00:00:00+00:00": 41.277266615506505,
          "2026-02-28 00:00:00+00:00": 100.96197102722135
        }
      },
      "test": {
        "label": "Test ridge_a100_H10_c12_p90_cap5",
        "variant": "ridge_a100_H10_c12_p90_cap5",
        "gain_pct": 54.21450246719672,
        "max_drawdown_pct": -8.788023320898631,
        "capital_score": 41.03246748584878,
        "stability_score": 40.03246748584878,
        "n_trades": 96,
        "skipped_by_capacity": 103,
        "avg_trade_ret_pct": 0.4583409687773293,
        "median_trade_ret_pct": 0.6188124255878709,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4595983070297791,
        "month_gain_concentration": 0.3008630170082979,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 56,
          "SOL": 25,
          "ETH": 7,
          "BTC": 1,
          "BNB": 7
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 96,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.5849056603773586,
        "max_open_trades": 5,
        "avg_exposure": 0.7169811320754715,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4242498357856732,
          "2025-02-28 00:00:00+00:00": 15.13279771104608,
          "2025-03-31 00:00:00+00:00": 1.4240111943289264,
          "2025-04-30 00:00:00+00:00": 0.4595983070297791,
          "2025-07-31 00:00:00+00:00": 5.697370176813408,
          "2025-10-31 00:00:00+00:00": 11.056878809581889,
          "2025-11-30 00:00:00+00:00": 4.235105763884661,
          "2026-02-28 00:00:00+00:00": 16.968108681072863
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.8936740800646845,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 1.5899035998799178,
            "drawdown_pct": -0.2981249649964268,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4242498357856732,
            "drawdown_pct": -0.46070008616054814,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.1572595925333786,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -5.562349552785037,
            "drawdown_pct": -7.556593800684364,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -3.134873559949625,
            "drawdown_pct": -5.180378931063068,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.134873559949625,
            "drawdown_pct": -5.180378931063068,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 4.1366122036223345,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 6.376267388889687,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 7.545406064930916,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 10.309741346422967,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.557047546831754,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 17.66040634968165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 24.96008474694436,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.58844712910438,
            "drawdown_pct": -2.698171679915118,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 26.157328304802874,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 26.157328304802874,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.189344793329084,
            "drawdown_pct": -3.1452659665453075,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.070592872354155,
            "drawdown_pct": -8.788023320898631,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 16.476858437392636,
            "drawdown_pct": -7.673331385095361,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.476858437392636,
            "drawdown_pct": -7.673331385095361,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 17.98105874116068,
            "drawdown_pct": -6.481010396707109,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 18.44065704819046,
            "drawdown_pct": -6.116704721241817,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 22.839578597366142,
            "drawdown_pct": -2.6298509583374097,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 24.138027225003867,
            "drawdown_pct": -1.6006213090691501,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 29.354360946652235,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 35.97979462256947,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 35.194906034585756,
            "drawdown_pct": -0.5772097171953261,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 39.43001179847042,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 41.03679154106726,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 41.3380297947667,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 56.39812047954328,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H10_c12_p90_cap5",
        "variant": "ridge_a100_H10_c12_p90_cap5",
        "gain_pct": 8.49081890998879,
        "max_drawdown_pct": 0.0,
        "capital_score": 8.49081890998879,
        "stability_score": -6.259181090011209,
        "n_trades": 8,
        "skipped_by_capacity": 2,
        "avg_trade_ret_pct": 1.0281994828858008,
        "median_trade_ret_pct": 1.0154472205372862,
        "positive_month_rate": 1.0,
        "worst_month_pct": 8.497927720629932,
        "month_gain_concentration": 1.0,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 2,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 10,
        "avg_bars_held": 11.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.0,
        "max_open_trades": 5,
        "avg_exposure": 0.6,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 8.497927720629932
        }
      },
      "selection_score": 747.4308557706237
    },
    {
      "name": "ridge_a1_H20_c8_p70_cap1",
      "variant": {
        "name": "ridge_a1_H20_c8_p70_cap1",
        "threshold": 0.03240574640753192,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p70_cap1",
        "variant": "ridge_a1_H20_c8_p70_cap1",
        "gain_pct": 1122.6699944200825,
        "max_drawdown_pct": -21.076805142535203,
        "capital_score": 1091.0547867062796,
        "stability_score": 1069.335060043919,
        "n_trades": 78,
        "skipped_by_capacity": 1893,
        "avg_trade_ret_pct": 3.4775607268524187,
        "median_trade_ret_pct": 3.4561849483114826,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -24.91221125625009,
        "month_gain_concentration": 0.192874386711899,
        "top_asset_trade_share": 0.5897435897435898,
        "long_counts": {
          "SOL": 23,
          "ETH": 8,
          "XRP": 46,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 78,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 63.70370120680917,
          "2024-10-31 00:00:00+00:00": 2.5645156901181565,
          "2024-11-30 00:00:00+00:00": 98.3349034913131,
          "2024-12-31 00:00:00+00:00": 45.2186045885735,
          "2025-01-31 00:00:00+00:00": 21.087157943561806,
          "2025-02-28 00:00:00+00:00": 122.6059698322972,
          "2025-03-31 00:00:00+00:00": 195.6595088785698,
          "2025-04-30 00:00:00+00:00": 207.77063221723563,
          "2025-05-31 00:00:00+00:00": 36.28729011602013,
          "2025-07-31 00:00:00+00:00": -20.62144818064496,
          "2025-08-31 00:00:00+00:00": 18.684819007552846,
          "2025-10-31 00:00:00+00:00": -24.91221125625009,
          "2025-11-30 00:00:00+00:00": 93.52023244530756,
          "2026-01-31 00:00:00+00:00": -1.4141054521595606,
          "2026-02-28 00:00:00+00:00": 7.739042102698818,
          "2026-03-31 00:00:00+00:00": 218.2167569388065
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p70_cap1",
        "variant": "ridge_a1_H20_c8_p70_cap1",
        "gain_pct": 246.13317057666762,
        "max_drawdown_pct": -16.316276552477483,
        "capital_score": 221.6587557479514,
        "stability_score": 221.6587557479514,
        "n_trades": 44,
        "skipped_by_capacity": 643,
        "avg_trade_ret_pct": 3.013932686230151,
        "median_trade_ret_pct": 3.570128841776151,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -2.6018989344477745,
        "month_gain_concentration": 0.24645109485602937,
        "top_asset_trade_share": 0.4772727272727273,
        "long_counts": {
          "XRP": 21,
          "SOL": 15,
          "ETH": 5,
          "BTC": 1,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 44,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 6.233815945143519,
          "2025-02-28 00:00:00+00:00": 29.836642261269006,
          "2025-03-31 00:00:00+00:00": 46.661681673488914,
          "2025-04-30 00:00:00+00:00": 20.56664118368795,
          "2025-05-31 00:00:00+00:00": 7.783134181608972,
          "2025-07-31 00:00:00+00:00": 1.4887730791680838,
          "2025-08-31 00:00:00+00:00": -2.6018989344477745,
          "2025-10-31 00:00:00+00:00": 8.156808564483072,
          "2025-11-30 00:00:00+00:00": 18.897383562062174,
          "2025-12-31 00:00:00+00:00": 5.535690636029045,
          "2026-01-31 00:00:00+00:00": 9.027080028361894,
          "2026-02-28 00:00:00+00:00": 60.15438338150295,
          "2026-03-31 00:00:00+00:00": 29.74040066804389
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.26619343889503,
            "drawdown_pct": -1.2661934388950247,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.1393355622129775,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.0802559078922656,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.7536181311457,
            "drawdown_pct": -12.099036587006228,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 6.233815945143519,
            "drawdown_pct": -7.317921263513149,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 10.608349824650702,
            "drawdown_pct": -3.5014256415797917,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.62280013338814,
            "drawdown_pct": -2.6163838820217333,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 11.62280013338814,
            "drawdown_pct": -2.6163838820217333,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 15.504844845678306,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 30.862645461333273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 30.862645461333273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 36.070458206412525,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 36.070458206412525,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 69.55854257938017,
            "drawdown_pct": -5.52140690752998,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 69.55854257938017,
            "drawdown_pct": -5.52140690752998,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 79.78507661884208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 79.78507661884208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 82.73213987990144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 82.73213987990144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 102.91846472357628,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 102.91846472357628,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 103.29878106358939,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 111.08191524519836,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 106.20881016912483,
            "drawdown_pct": -2.3086322058489928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 112.57068832436644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 112.57068832436644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 109.96878938991867,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 104.10004447864128,
            "drawdown_pct": -3.9848597718231127,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 104.10004447864128,
            "drawdown_pct": -3.9848597718231127,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 113.94703548797142,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 109.03421550393958,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 109.03421550393958,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 118.12559795440174,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 142.55867215249296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 151.58575218085485,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 159.8393829729307,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 210.89496264012973,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 211.7401355623578,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 211.7401355623578,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 241.4805362304017,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p70_cap1",
        "variant": "ridge_a1_H20_c8_p70_cap1",
        "gain_pct": 37.230286243878766,
        "max_drawdown_pct": -2.378518469735913,
        "capital_score": 33.662508539274896,
        "stability_score": 21.992913822078435,
        "n_trades": 5,
        "skipped_by_capacity": 52,
        "avg_trade_ret_pct": 6.877824167325267,
        "median_trade_ret_pct": 3.2806431685935245,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.6667837886878584,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 23.594592120873386,
          "2026-03-31 00:00:00+00:00": 11.791079398382351
        }
      },
      "selection_score": 968.5171507085331
    },
    {
      "name": "ridge_a1_H20_c8_p70_cap2",
      "variant": {
        "name": "ridge_a1_H20_c8_p70_cap2",
        "threshold": 0.03240574640753192,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p70_cap2",
        "variant": "ridge_a1_H20_c8_p70_cap2",
        "gain_pct": 1302.3255209433325,
        "max_drawdown_pct": -15.968136720429825,
        "capital_score": 1278.3733158626878,
        "stability_score": 1252.666984039899,
        "n_trades": 147,
        "skipped_by_capacity": 1824,
        "avg_trade_ret_pct": 1.8670465925044861,
        "median_trade_ret_pct": 1.7389120805297653,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -30.2471481493194,
        "month_gain_concentration": 0.20090981757258905,
        "top_asset_trade_share": 0.5986394557823129,
        "long_counts": {
          "SOL": 43,
          "XRP": 88,
          "ETH": 13,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 147,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9461538461538461,
        "max_open_trades": 2,
        "avg_exposure": 0.9730769230769231,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 56.60908658188387,
          "2024-10-31 00:00:00+00:00": 2.47502804725616,
          "2024-11-30 00:00:00+00:00": 116.91409026148855,
          "2024-12-31 00:00:00+00:00": 81.39376440349281,
          "2025-01-31 00:00:00+00:00": 25.297110761650856,
          "2025-02-28 00:00:00+00:00": 124.33773307108737,
          "2025-03-31 00:00:00+00:00": 225.41485750891553,
          "2025-04-30 00:00:00+00:00": 237.073533511268,
          "2025-05-31 00:00:00+00:00": 41.48867777299154,
          "2025-07-31 00:00:00+00:00": -11.67018061019462,
          "2025-08-31 00:00:00+00:00": 21.512825999464326,
          "2025-10-31 00:00:00+00:00": -30.2471481493194,
          "2025-11-30 00:00:00+00:00": 108.38019174655676,
          "2026-01-31 00:00:00+00:00": -1.6183922270445237,
          "2026-02-28 00:00:00+00:00": 9.31103281696187,
          "2026-03-31 00:00:00+00:00": 264.0466480109908
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p70_cap2",
        "variant": "ridge_a1_H20_c8_p70_cap2",
        "gain_pct": 254.2192461341765,
        "max_drawdown_pct": -11.618361621377392,
        "capital_score": 236.7917037021104,
        "stability_score": 236.7917037021104,
        "n_trades": 81,
        "skipped_by_capacity": 606,
        "avg_trade_ret_pct": 1.6123172392810667,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.9771174379114882,
        "month_gain_concentration": 0.257024155541328,
        "top_asset_trade_share": 0.48148148148148145,
        "long_counts": {
          "XRP": 39,
          "SOL": 27,
          "ETH": 10,
          "BTC": 2,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 81,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.8934426229508197,
        "max_open_trades": 2,
        "avg_exposure": 0.9467213114754098,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.1725526585235144,
          "2025-02-28 00:00:00+00:00": 26.204505888191136,
          "2025-03-31 00:00:00+00:00": 44.29477976942614,
          "2025-04-30 00:00:00+00:00": 34.89596725905744,
          "2025-05-31 00:00:00+00:00": 7.98397684971664,
          "2025-07-31 00:00:00+00:00": 1.5925980918489415,
          "2025-08-31 00:00:00+00:00": 0.9771174379114882,
          "2025-10-31 00:00:00+00:00": 8.265513285691213,
          "2025-11-30 00:00:00+00:00": 15.333582964942707,
          "2025-12-31 00:00:00+00:00": 5.654874524056709,
          "2026-01-31 00:00:00+00:00": 9.254435895035215,
          "2026-02-28 00:00:00+00:00": 64.11259920708858,
          "2026-03-31 00:00:00+00:00": 29.699417578809914
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6330967194475079,
            "drawdown_pct": -0.6330967194475123,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.525833484002135,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -3.926892509651637,
            "drawdown_pct": -11.618361621377392,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": -1.5060911170762523,
            "drawdown_pct": -9.391365963028797,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.1725526585235144,
            "drawdown_pct": -6.927170396709781,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -0.7794155119716777,
            "drawdown_pct": -8.72286691863835,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 5.297603205843714,
            "drawdown_pct": -3.132365218752786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 6.265560061719981,
            "drawdown_pct": -2.2419015391975106,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 6.265560061719981,
            "drawdown_pct": -2.2419015391975106,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 8.590447684307748,
            "drawdown_pct": -0.10314093804666413,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 22.16914047801869,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 22.16914047801869,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 27.37705854671465,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 27.37705854671465,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 60.0172239419953,
            "drawdown_pct": -5.445192071933658,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 60.0172239419953,
            "drawdown_pct": -5.445192071933658,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 68.89199068902283,
            "drawdown_pct": -0.2010574438028656,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 68.89199068902283,
            "drawdown_pct": -0.2010574438028656,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 71.67183831614079,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 71.67183831614079,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 90.91214622609635,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 90.91214622609635,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 106.56780557519824,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 114.55178242491488,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 109.62715873688137,
            "drawdown_pct": -2.2953077491942753,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 116.14438051676382,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 116.14438051676382,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 117.1214979546753,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 111.1088319509492,
            "drawdown_pct": -3.1562461507883777,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 111.1088319509492,
            "drawdown_pct": -3.1562461507883777,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 121.4168160180732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 116.36165675524325,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 116.36165675524325,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 125.38701124036652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 146.37546872936593,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 155.62990462440115,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 164.08499081288784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 219.3084812280356,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 219.74250383148973,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 219.74250383148973,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 249.44192141029964,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p70_cap2",
        "variant": "ridge_a1_H20_c8_p70_cap2",
        "gain_pct": 34.00550618881027,
        "max_drawdown_pct": -2.364375094458726,
        "capital_score": 30.458943547122182,
        "stability_score": 22.60393692878086,
        "n_trades": 9,
        "skipped_by_capacity": 48,
        "avg_trade_ret_pct": 3.402802796361728,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8075335980669862,
        "top_asset_trade_share": 0.5555555555555556,
        "long_counts": {
          "XRP": 5,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 9,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9230769230769231,
        "max_open_trades": 2,
        "avg_exposure": 0.9615384615384616,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 25.021581857059658,
          "2026-03-31 00:00:00+00:00": 5.96360800619118
        }
      },
      "selection_score": 1263.3733158626878
    },
    {
      "name": "ridge_a1_H20_c8_p70_cap3",
      "variant": {
        "name": "ridge_a1_H20_c8_p70_cap3",
        "threshold": 0.03240574640753192,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p70_cap3",
        "variant": "ridge_a1_H20_c8_p70_cap3",
        "gain_pct": 1218.0051491236147,
        "max_drawdown_pct": -15.856728070706428,
        "capital_score": 1194.220057017555,
        "stability_score": 1169.6058579194573,
        "n_trades": 213,
        "skipped_by_capacity": 1758,
        "avg_trade_ret_pct": 1.2419130651454018,
        "median_trade_ret_pct": 1.1622487430175694,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -28.945185013590503,
        "month_gain_concentration": 0.20557526939825801,
        "top_asset_trade_share": 0.6056338028169014,
        "long_counts": {
          "SOL": 61,
          "XRP": 129,
          "ETH": 18,
          "BTC": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8653846153846154,
        "max_open_trades": 3,
        "avg_exposure": 0.9551282051282052,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 47.01545163055266,
          "2024-10-31 00:00:00+00:00": 2.31265456387942,
          "2024-11-30 00:00:00+00:00": 118.71023690769411,
          "2024-12-31 00:00:00+00:00": 75.06663653078465,
          "2025-01-31 00:00:00+00:00": 19.142600140092895,
          "2025-02-28 00:00:00+00:00": 110.63237536676786,
          "2025-03-31 00:00:00+00:00": 219.8649574116139,
          "2025-04-30 00:00:00+00:00": 226.8992553370299,
          "2025-05-31 00:00:00+00:00": 26.144745412991597,
          "2025-07-31 00:00:00+00:00": -7.27826248394183,
          "2025-08-31 00:00:00+00:00": 20.239677837066097,
          "2025-10-31 00:00:00+00:00": -28.945185013590503,
          "2025-11-30 00:00:00+00:00": 102.1939317514707,
          "2026-01-31 00:00:00+00:00": -1.519568103108213,
          "2026-02-28 00:00:00+00:00": 8.885419215276443,
          "2026-03-31 00:00:00+00:00": 252.84865978090647
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p70_cap3",
        "variant": "ridge_a1_H20_c8_p70_cap3",
        "gain_pct": 222.67146863090636,
        "max_drawdown_pct": -7.18673912006802,
        "capital_score": 211.89135995080434,
        "stability_score": 211.89135995080434,
        "n_trades": 114,
        "skipped_by_capacity": 573,
        "avg_trade_ret_pct": 1.0508558933991383,
        "median_trade_ret_pct": 1.093547722864508,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -0.21148439547286557,
        "month_gain_concentration": 0.254849775014151,
        "top_asset_trade_share": 0.4649122807017544,
        "long_counts": {
          "XRP": 53,
          "SOL": 39,
          "ETH": 15,
          "BTC": 3,
          "BNB": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 114,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7295081967213113,
        "max_open_trades": 3,
        "avg_exposure": 0.9098360655737705,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.998525519088446,
          "2025-02-28 00:00:00+00:00": 20.03860375221899,
          "2025-03-31 00:00:00+00:00": 31.753873302469884,
          "2025-04-30 00:00:00+00:00": 36.416623080272274,
          "2025-05-31 00:00:00+00:00": 7.549518777091947,
          "2025-07-31 00:00:00+00:00": 0.9937081708443145,
          "2025-08-31 00:00:00+00:00": -0.21148439547286557,
          "2025-10-31 00:00:00+00:00": 7.7571205638400045,
          "2025-11-30 00:00:00+00:00": 12.755452514753244,
          "2025-12-31 00:00:00+00:00": 4.55190396069807,
          "2026-01-31 00:00:00+00:00": 8.42531588694581,
          "2026-02-28 00:00:00+00:00": 55.19248766874398,
          "2026-03-31 00:00:00+00:00": 29.135579354100855
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.42206447963167193,
            "drawdown_pct": -0.4220644796316675,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.401694541338685,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.2677988273630802,
            "drawdown_pct": -2.72093001972582,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.893102927230828,
            "drawdown_pct": -0.2478731312229865,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.893102927230828,
            "drawdown_pct": -0.2478731312229865,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -1.4729360076745195,
            "drawdown_pct": -7.18673912006802,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.18215395419261426,
            "drawdown_pct": -5.627631498404839,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.998525519088446,
            "drawdown_pct": -3.9165953518218166,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.7039175915940348,
            "drawdown_pct": -5.136126092341264,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.76060901229512,
            "drawdown_pct": -2.256698991163475,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.4732264344423953,
            "drawdown_pct": -2.527415615508133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.4732264344423953,
            "drawdown_pct": -2.527415615508133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 6.197674262186737,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 16.938651841553366,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.938651841553366,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 22.037129271307435,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 22.037129271307435,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 45.201043916640145,
            "drawdown_pct": -5.420410553578914,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 45.201043916640145,
            "drawdown_pct": -5.420410553578914,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 51.2973384774281,
            "drawdown_pct": -1.4494677755449548,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 51.2973384774281,
            "drawdown_pct": -1.4494677755449548,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 53.79100257377732,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 53.79100257377732,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 71.11186704488176,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 71.11186704488176,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 90.2076256540496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 97.75714443114154,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 94.72519882066791,
            "drawdown_pct": -1.5331661564972343,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 98.75085260198586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 98.75085260198586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 98.53936820651299,
            "drawdown_pct": -0.10640678653911495,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 92.80157006499206,
            "drawdown_pct": -3.147930200126503,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 92.80157006499206,
            "drawdown_pct": -3.147930200126503,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 102.25385051424126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 97.64499671402254,
            "drawdown_pct": -2.27874712323175,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 97.64499671402254,
            "drawdown_pct": -2.27874712323175,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 106.296488770353,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 123.60384524580431,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 132.02916113275012,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 139.72475477126895,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 186.9616122258903,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 187.2216488014941,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 187.2216488014941,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 216.35722815559495,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p70_cap3",
        "variant": "ridge_a1_H20_c8_p70_cap3",
        "gain_pct": 33.01172992163279,
        "max_drawdown_pct": -1.5793930352562824,
        "capital_score": 30.642640368748367,
        "stability_score": 20.446974674198835,
        "n_trades": 12,
        "skipped_by_capacity": 45,
        "avg_trade_ret_pct": 2.4521536006794022,
        "median_trade_ret_pct": 1.0846433970016878,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8678266277819813,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 7,
          "ETH": 3,
          "BTC": 1,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 12,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6923076923076925,
        "max_open_trades": 3,
        "avg_exposure": 0.8974358974358974,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 26.38962867956029,
          "2026-03-31 00:00:00+00:00": 4.019243132782847
        }
      },
      "selection_score": 1179.220057017555
    },
    {
      "name": "ridge_a1_H20_c8_p70_cap5",
      "variant": {
        "name": "ridge_a1_H20_c8_p70_cap5",
        "threshold": 0.03240574640753192,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p70_cap5",
        "variant": "ridge_a1_H20_c8_p70_cap5",
        "gain_pct": 958.148801151551,
        "max_drawdown_pct": -15.769177306022343,
        "capital_score": 934.4950351925174,
        "stability_score": 915.8472003443277,
        "n_trades": 337,
        "skipped_by_capacity": 1634,
        "avg_trade_ret_pct": 0.7107145672565127,
        "median_trade_ret_pct": 0.695564832211906,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -23.87780517459919,
        "month_gain_concentration": 0.2127452767491016,
        "top_asset_trade_share": 0.5756676557863502,
        "long_counts": {
          "SOL": 103,
          "XRP": 194,
          "ETH": 24,
          "BNB": 7,
          "BTC": 9
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 337,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.6,
        "max_open_trades": 5,
        "avg_exposure": 0.9199999999999999,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 37.37104587518223,
          "2024-10-31 00:00:00+00:00": 1.1762242717383344,
          "2024-11-30 00:00:00+00:00": 87.7909920161245,
          "2024-12-31 00:00:00+00:00": 67.85529106808733,
          "2025-01-31 00:00:00+00:00": 12.708191544905617,
          "2025-02-28 00:00:00+00:00": 83.79261183384108,
          "2025-03-31 00:00:00+00:00": 181.29092204547175,
          "2025-04-30 00:00:00+00:00": 181.56566047447598,
          "2025-05-31 00:00:00+00:00": 12.81767727284614,
          "2025-07-31 00:00:00+00:00": -3.5385265387582194,
          "2025-08-31 00:00:00+00:00": 16.474636385904432,
          "2025-10-31 00:00:00+00:00": -23.87780517459919,
          "2025-11-30 00:00:00+00:00": 83.854808670348,
          "2026-01-31 00:00:00+00:00": -1.2356799343025386,
          "2026-02-28 00:00:00+00:00": -6.285691935935233,
          "2026-03-31 00:00:00+00:00": 207.1901081704849
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p70_cap5",
        "variant": "ridge_a1_H20_c8_p70_cap5",
        "gain_pct": 187.96432372481593,
        "max_drawdown_pct": -5.03806041053384,
        "capital_score": 180.40723310901518,
        "stability_score": 180.40723310901518,
        "n_trades": 169,
        "skipped_by_capacity": 518,
        "avg_trade_ret_pct": 0.6343769640870021,
        "median_trade_ret_pct": 0.6469698051494714,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.5505435106966274,
        "month_gain_concentration": 0.29152636892659706,
        "top_asset_trade_share": 0.4437869822485207,
        "long_counts": {
          "XRP": 75,
          "SOL": 57,
          "ETH": 25,
          "BNB": 7,
          "BTC": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 169,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.237704918032787,
        "max_open_trades": 5,
        "avg_exposure": 0.8475409836065573,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.6482914934480988,
          "2025-02-28 00:00:00+00:00": 14.02180636535769,
          "2025-03-31 00:00:00+00:00": 18.665261600210712,
          "2025-04-30 00:00:00+00:00": 35.929447055122694,
          "2025-05-31 00:00:00+00:00": 8.154430153457525,
          "2025-07-31 00:00:00+00:00": 0.5505435106966274,
          "2025-08-31 00:00:00+00:00": 1.3885931592196812,
          "2025-10-31 00:00:00+00:00": 7.2750940840206795,
          "2025-11-30 00:00:00+00:00": 11.12993105170446,
          "2025-12-31 00:00:00+00:00": 4.130193827346233,
          "2026-01-31 00:00:00+00:00": 7.365621837705646,
          "2026-02-28 00:00:00+00:00": 52.744837597766065,
          "2026-03-31 00:00:00+00:00": 15.922420857051236
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.25323868777900316,
            "drawdown_pct": -0.2532386877790005,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.036233788448385,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.980916337822194,
            "drawdown_pct": -1.6265688109899368,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.5364694965616366,
            "drawdown_pct": -0.12604197599670464,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.5364694965616366,
            "drawdown_pct": -0.12604197599670464,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 1.5097794501317026,
            "drawdown_pct": -2.081039645987093,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 2.5328962072432972,
            "drawdown_pct": -1.0941147435804988,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.6482914934480988,
            "drawdown_pct": -0.018175583821056218,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.86741504377936,
            "drawdown_pct": -1.5369870310315004,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.293954136578435,
            "drawdown_pct": -0.17152706360413772,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.5695451709595147,
            "drawdown_pct": -0.8649195178251023,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.5695451709595147,
            "drawdown_pct": -0.8649195178251023,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.738541588913833,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 14.384176920226764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 14.384176920226764,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 17.67009785880579,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.67009785880579,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 28.14750842804699,
            "drawdown_pct": -5.03806041053384,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 28.14750842804699,
            "drawdown_pct": -5.03806041053384,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 32.71133650942056,
            "drawdown_pct": -1.656098701902975,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 32.71133650942056,
            "drawdown_pct": -1.656098701902975,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 36.3353594590165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 36.3353594590165,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.58196401798753,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 51.58196401798753,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 72.2648065141392,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 80.41923666759672,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 78.75699640757256,
            "drawdown_pct": -0.9213209692748414,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 80.96978017829335,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 80.96978017829335,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 82.35837333751303,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 76.91206694717022,
            "drawdown_pct": -3.141319560334588,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 76.91206694717022,
            "drawdown_pct": -3.141319560334588,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 85.61366345344575,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 81.39042610349497,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 81.39042610349497,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 89.63346742153371,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 104.8935923005844,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 112.25921413829005,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 119.31466168449379,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 164.86004648259933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 165.0040517360561,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 165.0040517360561,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 180.92647259310735,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p70_cap5",
        "variant": "ridge_a1_H20_c8_p70_cap5",
        "gain_pct": 27.728506525908358,
        "max_drawdown_pct": -0.9491444478500255,
        "capital_score": 26.30478985413332,
        "stability_score": 15.764918139076814,
        "n_trades": 16,
        "skipped_by_capacity": 41,
        "avg_trade_ret_pct": 1.5577135985028878,
        "median_trade_ret_pct": 0.6507860382010127,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9065948686022602,
        "top_asset_trade_share": 0.5625,
        "long_counts": {
          "XRP": 9,
          "ETH": 4,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 16,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.076923076923077,
        "max_open_trades": 5,
        "avg_exposure": 0.8153846153846154,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 22.72858113449965,
          "2026-03-31 00:00:00+00:00": 2.3416921724090543
        }
      },
      "selection_score": 919.4950351925174
    },
    {
      "name": "ridge_a1_H20_c8_p80_cap1",
      "variant": {
        "name": "ridge_a1_H20_c8_p80_cap1",
        "threshold": 0.05287557764585968,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p80_cap1",
        "variant": "ridge_a1_H20_c8_p80_cap1",
        "gain_pct": 867.4007616852468,
        "max_drawdown_pct": -16.316276552477472,
        "capital_score": 842.9263468565306,
        "stability_score": 830.8631487868544,
        "n_trades": 64,
        "skipped_by_capacity": 1250,
        "avg_trade_ret_pct": 3.801370359217375,
        "median_trade_ret_pct": 3.4822851950561193,
        "positive_month_rate": 0.875,
        "worst_month_pct": -15.813198069676218,
        "month_gain_concentration": 0.2024191389679031,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "SOL": 18,
          "ETH": 5,
          "XRP": 40,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 64,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 26.326706584560867,
          "2024-10-31 00:00:00+00:00": 4.157656682096956,
          "2024-11-30 00:00:00+00:00": 93.27524778554115,
          "2024-12-31 00:00:00+00:00": 71.06556808339678,
          "2025-01-31 00:00:00+00:00": 11.855114854705448,
          "2025-02-28 00:00:00+00:00": 71.90554741447352,
          "2025-03-31 00:00:00+00:00": 136.8162193816084,
          "2025-04-30 00:00:00+00:00": 105.33328410611682,
          "2025-05-31 00:00:00+00:00": 64.22426147584781,
          "2025-07-31 00:00:00+00:00": -15.813198069676218,
          "2025-10-31 00:00:00+00:00": 14.328127747099984,
          "2025-11-30 00:00:00+00:00": 32.974846373701325,
          "2026-01-31 00:00:00+00:00": 41.926585607976904,
          "2026-02-28 00:00:00+00:00": 6.1232836816413965,
          "2026-03-31 00:00:00+00:00": 172.65742828277462
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p80_cap1",
        "variant": "ridge_a1_H20_c8_p80_cap1",
        "gain_pct": 125.80937188857274,
        "max_drawdown_pct": -19.67332306666405,
        "capital_score": 96.29938728857667,
        "stability_score": 96.29938728857667,
        "n_trades": 35,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.5197810596186434,
        "median_trade_ret_pct": 3.0851631169511307,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -4.0802559078922656,
        "month_gain_concentration": 0.32354327453255244,
        "top_asset_trade_share": 0.4857142857142857,
        "long_counts": {
          "XRP": 17,
          "SOL": 13,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 35,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -4.0802559078922656,
          "2025-02-28 00:00:00+00:00": 21.05661720901591,
          "2025-03-31 00:00:00+00:00": 14.903683987200154,
          "2025-04-30 00:00:00+00:00": 20.24425223473105,
          "2025-05-31 00:00:00+00:00": 0.2851162714041209,
          "2025-07-31 00:00:00+00:00": 1.0749524989168435,
          "2025-10-31 00:00:00+00:00": 1.7864336127991294,
          "2025-11-30 00:00:00+00:00": 14.569781718994307,
          "2025-12-31 00:00:00+00:00": 3.966640328734826,
          "2026-01-31 00:00:00+00:00": 6.468421385069121,
          "2026-02-28 00:00:00+00:00": 1.4555826550334245,
          "2026-03-31 00:00:00+00:00": 41.04287355240032
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.26619343889503,
            "drawdown_pct": -1.2661934388950247,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.1393355622129775,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -4.0802559078922656,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": -0.13043854972396218,
            "drawdown_pct": -12.870318406970116,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.7855203955755456,
            "drawdown_pct": -12.071203941087848,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.984695205035749,
            "drawdown_pct": -2.3006540249476903,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.976361301123646,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.59033098955291,
            "drawdown_pct": -5.521406907529968,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 29.7531132850566,
            "drawdown_pct": -0.8102697485592669,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 29.7531132850566,
            "drawdown_pct": -0.8102697485592669,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 31.8800452883238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 31.8800452883238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 52.12429752305485,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 52.40941379445897,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 48.89084098285443,
            "drawdown_pct": -2.3086322058489928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 53.484366293375814,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 53.484366293375814,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 51.6056933104679,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 51.6056933104679,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 58.92004692957093,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 55.27079990617494,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 55.27079990617494,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 62.0238868203582,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 62.0238868203582,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 73.80722195390408,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 80.2756433389732,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 86.18984391681127,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 122.77409954640694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p80_cap1",
        "variant": "ridge_a1_H20_c8_p80_cap1",
        "gain_pct": 25.27855469942081,
        "max_drawdown_pct": -2.378518469735913,
        "capital_score": 21.71077699481694,
        "stability_score": 4.083958009077239,
        "n_trades": 4,
        "skipped_by_capacity": 31,
        "avg_trade_ret_pct": 6.212248793936798,
        "median_trade_ret_pct": 2.321566026165436,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.965072759429588,
        "top_asset_trade_share": 0.75,
        "long_counts": {
          "XRP": 3,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.8240939951664927,
          "2026-03-31 00:00:00+00:00": 22.770498125706894
        }
      },
      "selection_score": 727.9263468565306
    },
    {
      "name": "ridge_a1_H20_c8_p80_cap2",
      "variant": {
        "name": "ridge_a1_H20_c8_p80_cap2",
        "threshold": 0.05287557764585968,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p80_cap2",
        "variant": "ridge_a1_H20_c8_p80_cap2",
        "gain_pct": 768.134494011949,
        "max_drawdown_pct": -15.968136720429815,
        "capital_score": 744.1822889313042,
        "stability_score": 741.4000350394753,
        "n_trades": 123,
        "skipped_by_capacity": 1191,
        "avg_trade_ret_pct": 1.8212063703658805,
        "median_trade_ret_pct": 1.7095073059901333,
        "positive_month_rate": 0.875,
        "worst_month_pct": -6.989570964999757,
        "month_gain_concentration": 0.2163472452398866,
        "top_asset_trade_share": 0.6097560975609756,
        "long_counts": {
          "SOL": 36,
          "ETH": 9,
          "XRP": 75,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 123,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9468599033816425,
        "max_open_trades": 2,
        "avg_exposure": 0.9734299516908212,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.733823146962905,
          "2024-10-31 00:00:00+00:00": 3.8353208453220446,
          "2024-11-30 00:00:00+00:00": 90.43909185798458,
          "2024-12-31 00:00:00+00:00": 72.25648095502058,
          "2025-01-31 00:00:00+00:00": 13.605794158666924,
          "2025-02-28 00:00:00+00:00": 66.33024437711595,
          "2025-03-31 00:00:00+00:00": 94.15491257224494,
          "2025-04-30 00:00:00+00:00": 78.24073398564292,
          "2025-05-31 00:00:00+00:00": 72.91979485957688,
          "2025-07-31 00:00:00+00:00": -6.989570964999757,
          "2025-10-31 00:00:00+00:00": 12.884584138277319,
          "2025-11-30 00:00:00+00:00": 29.853876563073072,
          "2026-01-31 00:00:00+00:00": 38.07582071504169,
          "2026-02-28 00:00:00+00:00": 5.764160063095915,
          "2026-03-31 00:00:00+00:00": 163.46276220686116
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p80_cap2",
        "variant": "ridge_a1_H20_c8_p80_cap2",
        "gain_pct": 130.3846880768727,
        "max_drawdown_pct": -10.991169450564763,
        "capital_score": 113.89793390102554,
        "stability_score": 113.89793390102554,
        "n_trades": 65,
        "skipped_by_capacity": 370,
        "avg_trade_ret_pct": 1.3317819421297747,
        "median_trade_ret_pct": 1.3543979151886776,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -2.6936730139691036,
        "month_gain_concentration": 0.33685396366801484,
        "top_asset_trade_share": 0.4461538461538462,
        "long_counts": {
          "XRP": 29,
          "SOL": 25,
          "ETH": 9,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 65,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9263157894736842,
        "max_open_trades": 2,
        "avg_exposure": 0.9631578947368421,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.6936730139691036,
          "2025-02-28 00:00:00+00:00": 20.0426018731671,
          "2025-03-31 00:00:00+00:00": 13.21381144646,
          "2025-04-30 00:00:00+00:00": 20.49947525208799,
          "2025-05-31 00:00:00+00:00": 0.14156284154194054,
          "2025-07-31 00:00:00+00:00": 1.1223717008425638,
          "2025-10-31 00:00:00+00:00": 4.495940450635402,
          "2025-11-30 00:00:00+00:00": 14.518103473920632,
          "2025-12-31 00:00:00+00:00": 4.02502869077648,
          "2026-01-31 00:00:00+00:00": 6.587125821449092,
          "2026-02-28 00:00:00+00:00": 1.5438529458360506,
          "2026-03-31 00:00:00+00:00": 43.781307979850766
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6330967194475079,
            "drawdown_pct": -0.6330967194475123,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.0934104903145823,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.7053866507379212,
            "drawdown_pct": -5.136990735201808,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.583762653491462,
            "drawdown_pct": -1.519538102677842,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.583762653491462,
            "drawdown_pct": -1.519538102677842,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.6936730139691036,
            "drawdown_pct": -9.240097281195903,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -4.57104833043077,
            "drawdown_pct": -10.991169450564763,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.2737421282209311,
            "drawdown_pct": -5.539595746470716,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 2.2047093110315643,
            "drawdown_pct": -4.671260731025917,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 12.287968548165338,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.348928859197997,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 24.398992637751476,
            "drawdown_pct": -5.445192071933668,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 28.448564052938423,
            "drawdown_pct": -2.3671410424610295,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 28.448564052938423,
            "drawdown_pct": -2.3671410424610295,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 30.562740305657996,
            "drawdown_pct": -0.7601703969341678,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 30.562740305657996,
            "drawdown_pct": -0.7601703969341678,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.062215557745986,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 51.20377839928793,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.73318635661454,
            "drawdown_pct": -2.2953077491942753,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 52.32615010013049,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 52.32615010013049,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 53.01476637207293,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 53.01476637207293,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 60.48614385648108,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 56.82209055076589,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 56.82209055076589,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 63.36379937082677,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 63.36379937082677,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 75.365222715463,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 81.9523485369121,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 87.9705129270979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 127.27750946259891,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p80_cap2",
        "variant": "ridge_a1_H20_c8_p80_cap2",
        "gain_pct": 25.87328443459718,
        "max_drawdown_pct": -2.364375094458726,
        "capital_score": 22.32672179290909,
        "stability_score": 10.121267155717213,
        "n_trades": 7,
        "skipped_by_capacity": 28,
        "avg_trade_ret_pct": 3.4630791043010962,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9625038997733895,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 4,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 7,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9090909090909092,
        "max_open_trades": 2,
        "avg_exposure": 0.9545454545454546,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.9382117411406483,
          "2026-03-31 00:00:00+00:00": 24.08337011591901
        }
      },
      "selection_score": 729.1822889313042
    },
    {
      "name": "ridge_a1_H20_c8_p80_cap3",
      "variant": {
        "name": "ridge_a1_H20_c8_p80_cap3",
        "threshold": 0.05287557764585968,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p80_cap3",
        "variant": "ridge_a1_H20_c8_p80_cap3",
        "gain_pct": 619.6774042895313,
        "max_drawdown_pct": -16.057119184950096,
        "capital_score": 595.5917255121061,
        "stability_score": 593.5121800575606,
        "n_trades": 176,
        "skipped_by_capacity": 1138,
        "avg_trade_ret_pct": 1.1486596322455018,
        "median_trade_ret_pct": 1.1166096300956319,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -3.842606251625284,
        "month_gain_concentration": 0.2259981979523973,
        "top_asset_trade_share": 0.6193181818181818,
        "long_counts": {
          "SOL": 52,
          "ETH": 11,
          "XRP": 109,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 176,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8309178743961354,
        "max_open_trades": 3,
        "avg_exposure": 0.9436392914653783,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 9.794475635431425,
          "2024-10-31 00:00:00+00:00": 1.7356240853391682,
          "2024-11-30 00:00:00+00:00": 76.13783503075994,
          "2024-12-31 00:00:00+00:00": 68.17409080652607,
          "2025-01-31 00:00:00+00:00": -1.4719776834482161,
          "2025-02-28 00:00:00+00:00": 55.6257415174762,
          "2025-03-31 00:00:00+00:00": 71.20794010936237,
          "2025-04-30 00:00:00+00:00": 64.13500433557004,
          "2025-05-31 00:00:00+00:00": 53.99670494225995,
          "2025-07-31 00:00:00+00:00": -3.842606251625284,
          "2025-10-31 00:00:00+00:00": 10.685670207578198,
          "2025-11-30 00:00:00+00:00": 24.815882794012566,
          "2026-01-31 00:00:00+00:00": 31.68385398495343,
          "2026-02-28 00:00:00+00:00": 4.8517530004542095,
          "2026-03-31 00:00:00+00:00": 138.0643067063943
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p80_cap3",
        "variant": "ridge_a1_H20_c8_p80_cap3",
        "gain_pct": 122.76336049317035,
        "max_drawdown_pct": -6.531361206096575,
        "capital_score": 112.9663186840255,
        "stability_score": 112.9663186840255,
        "n_trades": 89,
        "skipped_by_capacity": 346,
        "avg_trade_ret_pct": 0.9219292546680866,
        "median_trade_ret_pct": 1.028387705650377,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -0.9366746444321166,
        "month_gain_concentration": 0.3549590105960648,
        "top_asset_trade_share": 0.4606741573033708,
        "long_counts": {
          "XRP": 41,
          "SOL": 32,
          "ETH": 13,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 89,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.778947368421053,
        "max_open_trades": 3,
        "avg_exposure": 0.9263157894736842,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.2437118745733784,
          "2025-02-28 00:00:00+00:00": 14.836095530425567,
          "2025-03-31 00:00:00+00:00": 13.948362762456725,
          "2025-04-30 00:00:00+00:00": 20.41592742188587,
          "2025-05-31 00:00:00+00:00": 0.09336431804300105,
          "2025-07-31 00:00:00+00:00": 0.7514095036724768,
          "2025-10-31 00:00:00+00:00": 3.6115173712921376,
          "2025-11-30 00:00:00+00:00": 14.611747778205228,
          "2025-12-31 00:00:00+00:00": 3.501685752409429,
          "2026-01-31 00:00:00+00:00": 6.481421588767944,
          "2026-02-28 00:00:00+00:00": -0.9366746444321166,
          "2026-03-31 00:00:00+00:00": 43.19507530459816
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.42206447963167193,
            "drawdown_pct": -0.4220644796316675,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0675498178115106,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.1979668148368603,
            "drawdown_pct": -3.4246604901345234,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.770651041615153,
            "drawdown_pct": -0.9694940428935928,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.770651041615153,
            "drawdown_pct": -0.9694940428935928,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.2437118745733784,
            "drawdown_pct": -4.335325968261516,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.0286232245256883,
            "drawdown_pct": -5.549542004742158,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.9754799476215794,
            "drawdown_pct": -2.6826634210683653,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.6930415870136102,
            "drawdown_pct": -2.9522002647900725,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.489010264230814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 15.079807404998945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.13491216850977,
            "drawdown_pct": -5.420410553578936,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 26.9360262189833,
            "drawdown_pct": -2.5007852417841425,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.9360262189833,
            "drawdown_pct": -2.5007852417841425,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 29.02817016745567,
            "drawdown_pct": -0.8938151938537864,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 29.02817016745567,
            "drawdown_pct": -0.8938151938537864,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.44409758934154,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 49.53746190738454,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.244804150135565,
            "drawdown_pct": -1.5331661564972454,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 50.288871411057016,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 50.288871411057016,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 50.12895385246259,
            "drawdown_pct": -0.10640678653912605,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 50.12895385246259,
            "drawdown_pct": -0.10640678653912605,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 57.48916868311733,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 53.900388782349154,
            "drawdown_pct": -2.2787471232317724,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 53.900388782349154,
            "drawdown_pct": -2.2787471232317724,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 60.63705307010338,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 60.63705307010338,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 72.01382231296381,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 78.49524390173175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 84.4153052283774,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 120.7536445618978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p80_cap3",
        "variant": "ridge_a1_H20_c8_p80_cap3",
        "gain_pct": 25.83937318489528,
        "max_drawdown_pct": -1.5793930352563046,
        "capital_score": 23.470283632010823,
        "stability_score": 9.347383511637386,
        "n_trades": 8,
        "skipped_by_capacity": 27,
        "avg_trade_ret_pct": 2.977810283890271,
        "median_trade_ret_pct": 1.1181487216075616,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9749160048149376,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5454545454545454,
        "max_open_trades": 3,
        "avg_exposure": 0.8484848484848485,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.6338836263734322,
          "2026-03-31 00:00:00+00:00": 24.636557613023342
        }
      },
      "selection_score": 580.5917255121061
    },
    {
      "name": "ridge_a1_H20_c8_p80_cap5",
      "variant": {
        "name": "ridge_a1_H20_c8_p80_cap5",
        "threshold": 0.05287557764585968,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p80_cap5",
        "variant": "ridge_a1_H20_c8_p80_cap5",
        "gain_pct": 499.9961472915476,
        "max_drawdown_pct": -17.120469440912544,
        "capital_score": 474.3154431301788,
        "stability_score": 469.30112138936465,
        "n_trades": 267,
        "skipped_by_capacity": 1047,
        "avg_trade_ret_pct": 0.6812843746382308,
        "median_trade_ret_pct": 0.6856498322103691,
        "positive_month_rate": 0.75,
        "worst_month_pct": -9.087355448679347,
        "month_gain_concentration": 0.23295858023376914,
        "top_asset_trade_share": 0.6142322097378277,
        "long_counts": {
          "SOL": 84,
          "ETH": 15,
          "XRP": 164,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 267,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.454106280193237,
        "max_open_trades": 5,
        "avg_exposure": 0.8908212560386473,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 10.208262430455491,
          "2024-10-31 00:00:00+00:00": 0.6127748072259465,
          "2024-11-30 00:00:00+00:00": 61.598431598307414,
          "2024-12-31 00:00:00+00:00": 62.880060914667865,
          "2025-01-31 00:00:00+00:00": -9.087355448679347,
          "2025-02-28 00:00:00+00:00": 44.60555350568296,
          "2025-03-31 00:00:00+00:00": 60.43968123619322,
          "2025-04-30 00:00:00+00:00": 51.16604899213394,
          "2025-05-31 00:00:00+00:00": 44.549063363123366,
          "2025-07-31 00:00:00+00:00": -1.971445027829077,
          "2025-10-31 00:00:00+00:00": 9.178633997098757,
          "2025-11-30 00:00:00+00:00": 21.355562206875618,
          "2026-01-31 00:00:00+00:00": 22.724351888039337,
          "2026-02-28 00:00:00+00:00": -3.587144961126228,
          "2026-03-31 00:00:00+00:00": 118.24011741173615
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p80_cap5",
        "variant": "ridge_a1_H20_c8_p80_cap5",
        "gain_pct": 112.74842357293929,
        "max_drawdown_pct": -5.038060410533829,
        "capital_score": 105.19133295713854,
        "stability_score": 105.19133295713854,
        "n_trades": 132,
        "skipped_by_capacity": 303,
        "avg_trade_ret_pct": 0.5799967256971699,
        "median_trade_ret_pct": 0.6170326233902261,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.05314294675170572,
        "month_gain_concentration": 0.3758021880690468,
        "top_asset_trade_share": 0.4696969696969697,
        "long_counts": {
          "XRP": 62,
          "SOL": 48,
          "ETH": 17,
          "BNB": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 132,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.242105263157895,
        "max_open_trades": 5,
        "avg_exposure": 0.8484210526315791,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.1596527279083375,
          "2025-02-28 00:00:00+00:00": 10.636088565571285,
          "2025-03-31 00:00:00+00:00": 10.791684623040652,
          "2025-04-30 00:00:00+00:00": 17.185146429074493,
          "2025-05-31 00:00:00+00:00": 0.05314294675170572,
          "2025-07-31 00:00:00+00:00": 0.4327766187591635,
          "2025-10-31 00:00:00+00:00": 4.720327803098769,
          "2025-11-30 00:00:00+00:00": 14.793297718942512,
          "2025-12-31 00:00:00+00:00": 1.9150411699550887,
          "2026-01-31 00:00:00+00:00": 5.8843114439141,
          "2026-02-28 00:00:00+00:00": 0.08505849744278748,
          "2026-03-31 00:00:00+00:00": 41.937147711753425
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.25323868777900316,
            "drawdown_pct": -0.2532386877790005,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 1.2430624463357702,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 0.7476947119307056,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.284437078764469,
            "drawdown_pct": -0.5608013734681561,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.284437078764469,
            "drawdown_pct": -0.5608013734681561,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.1596527279083375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.382457636599767,
            "drawdown_pct": -1.5369870310315004,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.702254012225083,
            "drawdown_pct": -0.2677156084715304,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.299077874745592,
            "drawdown_pct": -0.6554572018050986,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.645922373298859,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 13.795741293479622,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 18.148875113111174,
            "drawdown_pct": -5.038060410533829,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 21.570091432502636,
            "drawdown_pct": -2.288264129075246,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 21.570091432502636,
            "drawdown_pct": -2.288264129075246,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 24.587425916520274,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 24.587425916520274,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 41.77257234559477,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 41.82571529234647,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 40.51904523753407,
            "drawdown_pct": -0.9213209692748303,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 42.25849191110564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 42.25849191110564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 43.350050780846516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 43.350050780846516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 50.40086603937564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 46.978819714204405,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 46.978819714204405,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 53.65807236169243,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 53.65807236169243,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 63.687158603102006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 69.5714700470161,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 75.20798678013614,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 111.59367625621232,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p80_cap5",
        "variant": "ridge_a1_H20_c8_p80_cap5",
        "gain_pct": 26.474022388599025,
        "max_drawdown_pct": -0.9491444478500033,
        "capital_score": 25.05030571682402,
        "stability_score": 8.418034323398434,
        "n_trades": 10,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 2.402437549141348,
        "median_trade_ret_pct": 2.6012630754204076,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9852908557370236,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "XRP": 7,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.727272727272727,
        "max_open_trades": 5,
        "avg_exposure": 0.7454545454545454,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.3843546475562363,
          "2026-03-31 00:00:00+00:00": 25.74596542304593
        }
      },
      "selection_score": 459.3154431301788
    },
    {
      "name": "ridge_a1_H20_c8_p90_cap1",
      "variant": {
        "name": "ridge_a1_H20_c8_p90_cap1",
        "threshold": 0.06895036234531982,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p90_cap1",
        "variant": "ridge_a1_H20_c8_p90_cap1",
        "gain_pct": 455.15522447455794,
        "max_drawdown_pct": -16.829862240460926,
        "capital_score": 429.91043111386654,
        "stability_score": 414.28407514972105,
        "n_trades": 48,
        "skipped_by_capacity": 609,
        "avg_trade_ret_pct": 3.8586994420056295,
        "median_trade_ret_pct": 3.9608419289905625,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -17.50135596414546,
        "month_gain_concentration": 0.23056621571791355,
        "top_asset_trade_share": 0.6875,
        "long_counts": {
          "SOL": 12,
          "XRP": 33,
          "BTC": 1,
          "ETH": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 48,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.661116671655009,
          "2024-10-31 00:00:00+00:00": 9.924262420327707,
          "2024-11-30 00:00:00+00:00": 85.05692389312175,
          "2024-12-31 00:00:00+00:00": 65.2462242586839,
          "2025-01-31 00:00:00+00:00": -17.50135596414546,
          "2025-02-28 00:00:00+00:00": 33.04503084713926,
          "2025-03-31 00:00:00+00:00": 53.46083089368466,
          "2025-04-30 00:00:00+00:00": 35.163165089758024,
          "2025-07-31 00:00:00+00:00": 31.007197401794485,
          "2025-10-31 00:00:00+00:00": 8.737675921592768,
          "2025-11-30 00:00:00+00:00": 20.10894418749359,
          "2026-02-28 00:00:00+00:00": 14.493169040009889
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p90_cap1",
        "variant": "ridge_a1_H20_c8_p90_cap1",
        "gain_pct": 81.04390997350441,
        "max_drawdown_pct": -16.316276552477483,
        "capital_score": 56.56949514478819,
        "stability_score": 52.52991613387458,
        "n_trades": 23,
        "skipped_by_capacity": 178,
        "avg_trade_ret_pct": 2.79889440809036,
        "median_trade_ret_pct": 3.0851631169511307,
        "positive_month_rate": 0.75,
        "worst_month_pct": -10.039579010913613,
        "month_gain_concentration": 0.3540733849964608,
        "top_asset_trade_share": 0.5217391304347826,
        "long_counts": {
          "XRP": 12,
          "SOL": 9,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 23,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -10.039579010913613,
          "2025-02-28 00:00:00+00:00": 10.359014141458772,
          "2025-03-31 00:00:00+00:00": 20.97472100739668,
          "2025-04-30 00:00:00+00:00": 4.9837192874152265,
          "2025-07-31 00:00:00+00:00": 14.600710509708122,
          "2025-10-31 00:00:00+00:00": 1.6397125473806398,
          "2025-11-30 00:00:00+00:00": 6.680466579314469,
          "2026-02-28 00:00:00+00:00": -1.9898513693962343
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -10.039579010913613,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -4.843692877949053,
            "drawdown_pct": -11.482916576665758,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -4.843692877949053,
            "drawdown_pct": -11.482916576665758,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": -3.0522375746889026,
            "drawdown_pct": -9.81645427559663,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 7.720489842162721,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 7.720489842162721,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 21.102810204796285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 21.102810204796285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 19.33795099761862,
            "drawdown_pct": -1.45732308291866,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 19.33795099761862,
            "drawdown_pct": -1.45732308291866,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 21.29415613794184,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 21.29415613794184,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 26.277875425357067,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 26.277875425357067,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 26.277875425357067,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 36.66233013109468,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 40.87858593506519,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 39.15420970276159,
            "drawdown_pct": -1.224015857951899,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 45.86783024779254,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 42.51829848244583,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 49.1987650617603,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 50.82055664142459,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p90_cap1",
        "variant": "ridge_a1_H20_c8_p90_cap1",
        "gain_pct": 22.984339353151157,
        "max_drawdown_pct": 0.0,
        "capital_score": 22.984339353151157,
        "stability_score": 9.484339353151158,
        "n_trades": 1,
        "skipped_by_capacity": 15,
        "avg_trade_ret_pct": 22.984339353151153,
        "median_trade_ret_pct": 22.984339353151153,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 1,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 314.91043111386654
    },
    {
      "name": "ridge_a1_H20_c8_p90_cap2",
      "variant": {
        "name": "ridge_a1_H20_c8_p90_cap2",
        "threshold": 0.06895036234531982,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p90_cap2",
        "variant": "ridge_a1_H20_c8_p90_cap2",
        "gain_pct": 388.01258481818223,
        "max_drawdown_pct": -16.48306774454885,
        "capital_score": 363.28798320135894,
        "stability_score": 350.5767698980314,
        "n_trades": 90,
        "skipped_by_capacity": 567,
        "avg_trade_ret_pct": 1.8328455687348564,
        "median_trade_ret_pct": 1.9804209644952813,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.54454663666084,
        "month_gain_concentration": 0.24380342773820066,
        "top_asset_trade_share": 0.6888888888888889,
        "long_counts": {
          "SOL": 21,
          "XRP": 62,
          "BTC": 2,
          "ETH": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 90,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9185185185185185,
        "max_open_trades": 2,
        "avg_exposure": 0.9592592592592593,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 8.34231849302057,
          "2024-10-31 00:00:00+00:00": 3.713384319098097,
          "2024-11-30 00:00:00+00:00": 62.415341236698524,
          "2024-12-31 00:00:00+00:00": 74.88112842296144,
          "2025-01-31 00:00:00+00:00": -14.54454663666084,
          "2025-02-28 00:00:00+00:00": 28.399785215962993,
          "2025-03-31 00:00:00+00:00": 41.61244998786327,
          "2025-04-30 00:00:00+00:00": 22.06979019380924,
          "2025-07-31 00:00:00+00:00": 27.434408873428026,
          "2025-10-31 00:00:00+00:00": 7.627594108451547,
          "2025-11-30 00:00:00+00:00": 17.67331025534969,
          "2026-02-28 00:00:00+00:00": 12.967796673006774
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p90_cap2",
        "variant": "ridge_a1_H20_c8_p90_cap2",
        "gain_pct": 93.2616007503548,
        "max_drawdown_pct": -5.240570656692867,
        "capital_score": 85.4007447653155,
        "stability_score": 83.06353546298992,
        "n_trades": 43,
        "skipped_by_capacity": 158,
        "avg_trade_ret_pct": 1.5879155315734688,
        "median_trade_ret_pct": 1.5425815584755653,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.6493048875123577,
        "month_gain_concentration": 0.3880308568880971,
        "top_asset_trade_share": 0.627906976744186,
        "long_counts": {
          "XRP": 27,
          "SOL": 12,
          "ETH": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 43,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9259259259259258,
        "max_open_trades": 2,
        "avg_exposure": 0.9629629629629629,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.6868552345288919,
          "2025-02-28 00:00:00+00:00": 4.452671481647883,
          "2025-03-31 00:00:00+00:00": 23.208057957757788,
          "2025-04-30 00:00:00+00:00": 5.229166665967426,
          "2025-07-31 00:00:00+00:00": 15.432678341790762,
          "2025-10-31 00:00:00+00:00": 4.327986107984344,
          "2025-11-30 00:00:00+00:00": 7.1592652506656975,
          "2026-02-28 00:00:00+00:00": -2.6493048875123577
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.6868552345288919,
            "drawdown_pct": -5.240570656692867,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -1.3012601389265228,
            "drawdown_pct": -4.868913628489535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -1.3012601389265228,
            "drawdown_pct": -4.868913628489535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.5656321672758224,
            "drawdown_pct": -3.06950369197333,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 10.48718418111666,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 10.48718418111666,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.426293222023943,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.426293222023943,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 22.68747472877196,
            "drawdown_pct": -1.3974686926896296,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 22.68747472877196,
            "drawdown_pct": -1.3974686926896296,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 25.97387420487678,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 25.97387420487678,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 31.203040870844205,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 31.203040870844205,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 31.203040870844205,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 42.21433430002932,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 46.63571921263497,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 47.29861092381802,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 54.4908809983595,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 50.96370532061931,
            "drawdown_pct": -2.283096358145331,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 58.12297057128501,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 59.264684767779755,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p90_cap2",
        "variant": "ridge_a1_H20_c8_p90_cap2",
        "gain_pct": 24.305038991903203,
        "max_drawdown_pct": 0.0,
        "capital_score": 24.305038991903203,
        "stability_score": 10.805038991903205,
        "n_trades": 2,
        "skipped_by_capacity": 14,
        "avg_trade_ret_pct": 11.492169676575577,
        "median_trade_ret_pct": 11.492169676575577,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 348.28798320135894
    },
    {
      "name": "ridge_a1_H20_c8_p90_cap3",
      "variant": {
        "name": "ridge_a1_H20_c8_p90_cap3",
        "threshold": 0.06895036234531982,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p90_cap3",
        "variant": "ridge_a1_H20_c8_p90_cap3",
        "gain_pct": 367.4697966562091,
        "max_drawdown_pct": -16.057119184950086,
        "capital_score": 343.38411787878397,
        "stability_score": 331.3860109369311,
        "n_trades": 130,
        "skipped_by_capacity": 527,
        "avg_trade_ret_pct": 1.2184235151395966,
        "median_trade_ret_pct": 1.326380403594271,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -13.728876172622137,
        "month_gain_concentration": 0.2595316827469641,
        "top_asset_trade_share": 0.6923076923076923,
        "long_counts": {
          "SOL": 30,
          "XRP": 90,
          "BTC": 3,
          "ETH": 7
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 130,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7925925925925927,
        "max_open_trades": 3,
        "avg_exposure": 0.9308641975308644,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 11.407932187876739,
          "2024-10-31 00:00:00+00:00": 1.819687386042716,
          "2024-11-30 00:00:00+00:00": 51.114049578439605,
          "2024-12-31 00:00:00+00:00": 74.83163178122624,
          "2025-01-31 00:00:00+00:00": -13.728876172622137,
          "2025-02-28 00:00:00+00:00": 28.79935319402574,
          "2025-03-31 00:00:00+00:00": 39.06908057849017,
          "2025-04-30 00:00:00+00:00": 18.25908223301576,
          "2025-07-31 00:00:00+00:00": 26.33086438778679,
          "2025-10-31 00:00:00+00:00": 7.28712445682595,
          "2025-11-30 00:00:00+00:00": 16.923264794165902,
          "2026-02-28 00:00:00+00:00": 12.491249613246225
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p90_cap3",
        "variant": "ridge_a1_H20_c8_p90_cap3",
        "gain_pct": 91.04592830239616,
        "max_drawdown_pct": -4.00099921395719,
        "capital_score": 85.04442948146038,
        "stability_score": 82.92373982628797,
        "n_trades": 58,
        "skipped_by_capacity": 143,
        "avg_trade_ret_pct": 1.1422633111751335,
        "median_trade_ret_pct": 1.0938312130017769,
        "positive_month_rate": 0.875,
        "worst_month_pct": -1.7287055849887452,
        "month_gain_concentration": 0.42138452573861324,
        "top_asset_trade_share": 0.6206896551724138,
        "long_counts": {
          "XRP": 36,
          "SOL": 16,
          "ETH": 3,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 58,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6481481481481484,
        "max_open_trades": 3,
        "avg_exposure": 0.882716049382716,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.5432853127764048,
          "2025-02-28 00:00:00+00:00": 3.9970432876942965,
          "2025-03-31 00:00:00+00:00": 23.101288989821228,
          "2025-04-30 00:00:00+00:00": 5.123906237216545,
          "2025-07-31 00:00:00+00:00": 10.552589603055736,
          "2025-10-31 00:00:00+00:00": 3.4680370459435323,
          "2025-11-30 00:00:00+00:00": 7.036197233885076,
          "2026-02-28 00:00:00+00:00": -1.7287055849887452
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.5432853127764048,
            "drawdown_pct": -0.9335412141196597,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 2.4070216148231793,
            "drawdown_pct": -0.46954349211775215,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.4070216148231793,
            "drawdown_pct": -0.46954349211775215,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 4.024858657396862,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.730185384129783,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.730185384129783,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 28.15354598628724,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 28.15354598628724,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 26.388831137348348,
            "drawdown_pct": -1.3770316188736031,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.388831137348348,
            "drawdown_pct": -1.3770316188736031,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.64161759029193,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.64161759029193,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 33.765523827508474,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 33.765523827508474,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 33.765523827508474,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 41.39498252854051,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 44.31811343056421,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 44.16454916366885,
            "drawdown_pct": -0.10640678653912605,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 51.23235337851639,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 47.78615047650774,
            "drawdown_pct": -2.2787471232317724,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 54.82234771039282,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 55.56727053446289,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p90_cap3",
        "variant": "ridge_a1_H20_c8_p90_cap3",
        "gain_pct": 25.827927045013382,
        "max_drawdown_pct": 0.0,
        "capital_score": 25.827927045013382,
        "stability_score": 12.327927045013384,
        "n_trades": 3,
        "skipped_by_capacity": 13,
        "avg_trade_ret_pct": 7.959863332983562,
        "median_trade_ret_pct": 7.661446451050384,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 3,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8,
        "max_open_trades": 3,
        "avg_exposure": 0.9333333333333332,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 328.38411787878397
    },
    {
      "name": "ridge_a1_H20_c8_p90_cap5",
      "variant": {
        "name": "ridge_a1_H20_c8_p90_cap5",
        "threshold": 0.06895036234531982,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a1_H20_c8_p90_cap5",
        "variant": "ridge_a1_H20_c8_p90_cap5",
        "gain_pct": 331.5209425295232,
        "max_drawdown_pct": -15.826737309767614,
        "capital_score": 307.7808365648718,
        "stability_score": 297.31512936969597,
        "n_trades": 202,
        "skipped_by_capacity": 455,
        "avg_trade_ret_pct": 0.7359519774779907,
        "median_trade_ret_pct": 0.7958282421565624,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -12.32214283874012,
        "month_gain_concentration": 0.2922567758453617,
        "top_asset_trade_share": 0.6881188118811881,
        "long_counts": {
          "SOL": 49,
          "BNB": 1,
          "XRP": 139,
          "BTC": 3,
          "ETH": 10
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 202,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.392592592592592,
        "max_open_trades": 5,
        "avg_exposure": 0.8785185185185186,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.360478540594613,
          "2024-10-31 00:00:00+00:00": 0.6747811440930036,
          "2024-11-30 00:00:00+00:00": 38.351700750549156,
          "2024-12-31 00:00:00+00:00": 74.0821504704675,
          "2025-01-31 00:00:00+00:00": -12.32214283874012,
          "2025-02-28 00:00:00+00:00": 29.576294017615027,
          "2025-03-31 00:00:00+00:00": 36.16163710625938,
          "2025-04-30 00:00:00+00:00": 12.436324489465221,
          "2025-07-31 00:00:00+00:00": 23.385445718183405,
          "2025-10-31 00:00:00+00:00": 6.818232070359102,
          "2025-11-30 00:00:00+00:00": 15.863709040527226,
          "2026-02-28 00:00:00+00:00": 2.7723361583061887
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c8_p90_cap5",
        "variant": "ridge_a1_H20_c8_p90_cap5",
        "gain_pct": 71.01934788330479,
        "max_drawdown_pct": -3.9898030090914527,
        "capital_score": 65.0346433696676,
        "stability_score": 63.3203576553819,
        "n_trades": 84,
        "skipped_by_capacity": 117,
        "avg_trade_ret_pct": 0.6513293527946203,
        "median_trade_ret_pct": 0.5793958947328487,
        "positive_month_rate": 0.75,
        "worst_month_pct": -1.9674272514408244,
        "month_gain_concentration": 0.348109776480856,
        "top_asset_trade_share": 0.6071428571428571,
        "long_counts": {
          "XRP": 51,
          "SOL": 24,
          "ETH": 4,
          "BNB": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 84,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.888888888888889,
        "max_open_trades": 5,
        "avg_exposure": 0.7777777777777778,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.9674272514408244,
          "2025-02-28 00:00:00+00:00": 6.561308606994217,
          "2025-03-31 00:00:00+00:00": 13.746447420385408,
          "2025-04-30 00:00:00+00:00": 2.8134535728336942,
          "2025-07-31 00:00:00+00:00": 5.883516987725571,
          "2025-10-31 00:00:00+00:00": 4.215268192659963,
          "2025-11-30 00:00:00+00:00": 6.268834172590232,
          "2026-02-28 00:00:00+00:00": -0.9210408195046966
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.9674272514408244,
            "drawdown_pct": -3.416279609710904,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.4116506074135344,
            "drawdown_pct": -3.853937657451312,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.7167072848581455,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.6883890591864343,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.102023140595449,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.102023140595449,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 18.769326231432302,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 18.769326231432302,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 17.089991402169673,
            "drawdown_pct": -1.4139465824621222,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 17.089991402169673,
            "drawdown_pct": -1.4139465824621222,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 18.3403287759388,
            "drawdown_pct": -0.36120223049641575,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 18.3403287759388,
            "drawdown_pct": -0.36120223049641575,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 21.153782348772495,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 21.153782348772495,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 21.153782348772495,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 25.483967758313852,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 27.037299336498066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 28.012064983285143,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 34.30846610866635,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 31.25256752915803,
            "drawdown_pct": -2.275283657126914,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 37.52140170174826,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 37.91826804956082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c8_p90_cap5",
        "variant": "ridge_a1_H20_c8_p90_cap5",
        "gain_pct": 23.968084276396,
        "max_drawdown_pct": 0.0,
        "capital_score": 23.968084276396,
        "stability_score": 16.468084276396,
        "n_trades": 5,
        "skipped_by_capacity": 11,
        "avg_trade_ret_pct": 4.395287740818259,
        "median_trade_ret_pct": 4.596867870630231,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.2,
        "max_open_trades": 5,
        "avg_exposure": 0.8400000000000001,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 292.7808365648718
    },
    {
      "name": "ridge_a10_H20_c8_p70_cap1",
      "variant": {
        "name": "ridge_a10_H20_c8_p70_cap1",
        "threshold": 0.03240668609283527,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p70_cap1",
        "variant": "ridge_a10_H20_c8_p70_cap1",
        "gain_pct": 1122.6699944200825,
        "max_drawdown_pct": -21.076805142535203,
        "capital_score": 1091.0547867062796,
        "stability_score": 1069.335060043919,
        "n_trades": 78,
        "skipped_by_capacity": 1893,
        "avg_trade_ret_pct": 3.4775607268524187,
        "median_trade_ret_pct": 3.4561849483114826,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -24.91221125625009,
        "month_gain_concentration": 0.192874386711899,
        "top_asset_trade_share": 0.5897435897435898,
        "long_counts": {
          "SOL": 23,
          "ETH": 8,
          "XRP": 46,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 78,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 63.70370120680917,
          "2024-10-31 00:00:00+00:00": 2.5645156901181565,
          "2024-11-30 00:00:00+00:00": 98.3349034913131,
          "2024-12-31 00:00:00+00:00": 45.2186045885735,
          "2025-01-31 00:00:00+00:00": 21.087157943561806,
          "2025-02-28 00:00:00+00:00": 122.6059698322972,
          "2025-03-31 00:00:00+00:00": 195.6595088785698,
          "2025-04-30 00:00:00+00:00": 207.77063221723563,
          "2025-05-31 00:00:00+00:00": 36.28729011602013,
          "2025-07-31 00:00:00+00:00": -20.62144818064496,
          "2025-08-31 00:00:00+00:00": 18.684819007552846,
          "2025-10-31 00:00:00+00:00": -24.91221125625009,
          "2025-11-30 00:00:00+00:00": 93.52023244530756,
          "2026-01-31 00:00:00+00:00": -1.4141054521595606,
          "2026-02-28 00:00:00+00:00": 7.739042102698818,
          "2026-03-31 00:00:00+00:00": 218.2167569388065
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p70_cap1",
        "variant": "ridge_a10_H20_c8_p70_cap1",
        "gain_pct": 246.13317057666762,
        "max_drawdown_pct": -16.316276552477483,
        "capital_score": 221.6587557479514,
        "stability_score": 221.6587557479514,
        "n_trades": 44,
        "skipped_by_capacity": 643,
        "avg_trade_ret_pct": 3.013932686230151,
        "median_trade_ret_pct": 3.570128841776151,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -2.6018989344477745,
        "month_gain_concentration": 0.24645109485602937,
        "top_asset_trade_share": 0.4772727272727273,
        "long_counts": {
          "XRP": 21,
          "SOL": 15,
          "ETH": 5,
          "BTC": 1,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 44,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 6.233815945143519,
          "2025-02-28 00:00:00+00:00": 29.836642261269006,
          "2025-03-31 00:00:00+00:00": 46.661681673488914,
          "2025-04-30 00:00:00+00:00": 20.56664118368795,
          "2025-05-31 00:00:00+00:00": 7.783134181608972,
          "2025-07-31 00:00:00+00:00": 1.4887730791680838,
          "2025-08-31 00:00:00+00:00": -2.6018989344477745,
          "2025-10-31 00:00:00+00:00": 8.156808564483072,
          "2025-11-30 00:00:00+00:00": 18.897383562062174,
          "2025-12-31 00:00:00+00:00": 5.535690636029045,
          "2026-01-31 00:00:00+00:00": 9.027080028361894,
          "2026-02-28 00:00:00+00:00": 60.15438338150295,
          "2026-03-31 00:00:00+00:00": 29.74040066804389
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.26619343889503,
            "drawdown_pct": -1.2661934388950247,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.1393355622129775,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.0802559078922656,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.7536181311457,
            "drawdown_pct": -12.099036587006228,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 6.233815945143519,
            "drawdown_pct": -7.317921263513149,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 10.608349824650702,
            "drawdown_pct": -3.5014256415797917,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.62280013338814,
            "drawdown_pct": -2.6163838820217333,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 11.62280013338814,
            "drawdown_pct": -2.6163838820217333,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 15.504844845678306,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 30.862645461333273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 30.862645461333273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 36.070458206412525,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 36.070458206412525,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 69.55854257938017,
            "drawdown_pct": -5.52140690752998,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 69.55854257938017,
            "drawdown_pct": -5.52140690752998,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 79.78507661884208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 79.78507661884208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 82.73213987990144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 82.73213987990144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 102.91846472357628,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 102.91846472357628,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 103.29878106358939,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 111.08191524519836,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 106.20881016912483,
            "drawdown_pct": -2.3086322058489928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 112.57068832436644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 112.57068832436644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 109.96878938991867,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 104.10004447864128,
            "drawdown_pct": -3.9848597718231127,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 104.10004447864128,
            "drawdown_pct": -3.9848597718231127,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 113.94703548797142,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 109.03421550393958,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 109.03421550393958,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 118.12559795440174,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 142.55867215249296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 151.58575218085485,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 159.8393829729307,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 210.89496264012973,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 211.7401355623578,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 211.7401355623578,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 241.4805362304017,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p70_cap1",
        "variant": "ridge_a10_H20_c8_p70_cap1",
        "gain_pct": 37.230286243878766,
        "max_drawdown_pct": -2.378518469735913,
        "capital_score": 33.662508539274896,
        "stability_score": 21.992913822078435,
        "n_trades": 5,
        "skipped_by_capacity": 52,
        "avg_trade_ret_pct": 6.877824167325267,
        "median_trade_ret_pct": 3.2806431685935245,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.6667837886878584,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 23.594592120873386,
          "2026-03-31 00:00:00+00:00": 11.791079398382351
        }
      },
      "selection_score": 968.5171507085331
    },
    {
      "name": "ridge_a10_H20_c8_p70_cap2",
      "variant": {
        "name": "ridge_a10_H20_c8_p70_cap2",
        "threshold": 0.03240668609283527,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p70_cap2",
        "variant": "ridge_a10_H20_c8_p70_cap2",
        "gain_pct": 1302.3255209433325,
        "max_drawdown_pct": -15.968136720429825,
        "capital_score": 1278.3733158626878,
        "stability_score": 1252.666984039899,
        "n_trades": 147,
        "skipped_by_capacity": 1824,
        "avg_trade_ret_pct": 1.8670465925044861,
        "median_trade_ret_pct": 1.7389120805297653,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -30.2471481493194,
        "month_gain_concentration": 0.20090981757258905,
        "top_asset_trade_share": 0.5986394557823129,
        "long_counts": {
          "SOL": 43,
          "XRP": 88,
          "ETH": 13,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 147,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9461538461538461,
        "max_open_trades": 2,
        "avg_exposure": 0.9730769230769231,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 56.60908658188387,
          "2024-10-31 00:00:00+00:00": 2.47502804725616,
          "2024-11-30 00:00:00+00:00": 116.91409026148855,
          "2024-12-31 00:00:00+00:00": 81.39376440349281,
          "2025-01-31 00:00:00+00:00": 25.297110761650856,
          "2025-02-28 00:00:00+00:00": 124.33773307108737,
          "2025-03-31 00:00:00+00:00": 225.41485750891553,
          "2025-04-30 00:00:00+00:00": 237.073533511268,
          "2025-05-31 00:00:00+00:00": 41.48867777299154,
          "2025-07-31 00:00:00+00:00": -11.67018061019462,
          "2025-08-31 00:00:00+00:00": 21.512825999464326,
          "2025-10-31 00:00:00+00:00": -30.2471481493194,
          "2025-11-30 00:00:00+00:00": 108.38019174655676,
          "2026-01-31 00:00:00+00:00": -1.6183922270445237,
          "2026-02-28 00:00:00+00:00": 9.31103281696187,
          "2026-03-31 00:00:00+00:00": 264.0466480109908
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p70_cap2",
        "variant": "ridge_a10_H20_c8_p70_cap2",
        "gain_pct": 254.2192461341765,
        "max_drawdown_pct": -11.618361621377392,
        "capital_score": 236.7917037021104,
        "stability_score": 236.7917037021104,
        "n_trades": 81,
        "skipped_by_capacity": 606,
        "avg_trade_ret_pct": 1.6123172392810667,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.9771174379114882,
        "month_gain_concentration": 0.257024155541328,
        "top_asset_trade_share": 0.48148148148148145,
        "long_counts": {
          "XRP": 39,
          "SOL": 27,
          "ETH": 10,
          "BTC": 2,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 81,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.8934426229508197,
        "max_open_trades": 2,
        "avg_exposure": 0.9467213114754098,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.1725526585235144,
          "2025-02-28 00:00:00+00:00": 26.204505888191136,
          "2025-03-31 00:00:00+00:00": 44.29477976942614,
          "2025-04-30 00:00:00+00:00": 34.89596725905744,
          "2025-05-31 00:00:00+00:00": 7.98397684971664,
          "2025-07-31 00:00:00+00:00": 1.5925980918489415,
          "2025-08-31 00:00:00+00:00": 0.9771174379114882,
          "2025-10-31 00:00:00+00:00": 8.265513285691213,
          "2025-11-30 00:00:00+00:00": 15.333582964942707,
          "2025-12-31 00:00:00+00:00": 5.654874524056709,
          "2026-01-31 00:00:00+00:00": 9.254435895035215,
          "2026-02-28 00:00:00+00:00": 64.11259920708858,
          "2026-03-31 00:00:00+00:00": 29.699417578809914
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6330967194475079,
            "drawdown_pct": -0.6330967194475123,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.525833484002135,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -3.926892509651637,
            "drawdown_pct": -11.618361621377392,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": -1.5060911170762523,
            "drawdown_pct": -9.391365963028797,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.1725526585235144,
            "drawdown_pct": -6.927170396709781,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -0.7794155119716777,
            "drawdown_pct": -8.72286691863835,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 5.297603205843714,
            "drawdown_pct": -3.132365218752786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 6.265560061719981,
            "drawdown_pct": -2.2419015391975106,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 6.265560061719981,
            "drawdown_pct": -2.2419015391975106,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 8.590447684307748,
            "drawdown_pct": -0.10314093804666413,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 22.16914047801869,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 22.16914047801869,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 27.37705854671465,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 27.37705854671465,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 60.0172239419953,
            "drawdown_pct": -5.445192071933658,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 60.0172239419953,
            "drawdown_pct": -5.445192071933658,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 68.89199068902283,
            "drawdown_pct": -0.2010574438028656,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 68.89199068902283,
            "drawdown_pct": -0.2010574438028656,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 71.67183831614079,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 71.67183831614079,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 90.91214622609635,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 90.91214622609635,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 106.56780557519824,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 114.55178242491488,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 109.62715873688137,
            "drawdown_pct": -2.2953077491942753,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 116.14438051676382,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 116.14438051676382,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 117.1214979546753,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 111.1088319509492,
            "drawdown_pct": -3.1562461507883777,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 111.1088319509492,
            "drawdown_pct": -3.1562461507883777,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 121.4168160180732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 116.36165675524325,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 116.36165675524325,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 125.38701124036652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 146.37546872936593,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 155.62990462440115,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 164.08499081288784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 219.3084812280356,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 219.74250383148973,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 219.74250383148973,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 249.44192141029964,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p70_cap2",
        "variant": "ridge_a10_H20_c8_p70_cap2",
        "gain_pct": 34.00550618881027,
        "max_drawdown_pct": -2.364375094458726,
        "capital_score": 30.458943547122182,
        "stability_score": 22.60393692878086,
        "n_trades": 9,
        "skipped_by_capacity": 48,
        "avg_trade_ret_pct": 3.402802796361728,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8075335980669862,
        "top_asset_trade_share": 0.5555555555555556,
        "long_counts": {
          "XRP": 5,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 9,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9230769230769231,
        "max_open_trades": 2,
        "avg_exposure": 0.9615384615384616,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 25.021581857059658,
          "2026-03-31 00:00:00+00:00": 5.96360800619118
        }
      },
      "selection_score": 1263.3733158626878
    },
    {
      "name": "ridge_a10_H20_c8_p70_cap3",
      "variant": {
        "name": "ridge_a10_H20_c8_p70_cap3",
        "threshold": 0.03240668609283527,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p70_cap3",
        "variant": "ridge_a10_H20_c8_p70_cap3",
        "gain_pct": 1218.0051491236147,
        "max_drawdown_pct": -15.856728070706428,
        "capital_score": 1194.220057017555,
        "stability_score": 1169.6058579194573,
        "n_trades": 213,
        "skipped_by_capacity": 1758,
        "avg_trade_ret_pct": 1.2419130651454018,
        "median_trade_ret_pct": 1.1622487430175694,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -28.945185013590503,
        "month_gain_concentration": 0.20557526939825801,
        "top_asset_trade_share": 0.6056338028169014,
        "long_counts": {
          "SOL": 61,
          "XRP": 129,
          "ETH": 18,
          "BTC": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8653846153846154,
        "max_open_trades": 3,
        "avg_exposure": 0.9551282051282052,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 47.01545163055266,
          "2024-10-31 00:00:00+00:00": 2.31265456387942,
          "2024-11-30 00:00:00+00:00": 118.71023690769411,
          "2024-12-31 00:00:00+00:00": 75.06663653078465,
          "2025-01-31 00:00:00+00:00": 19.142600140092895,
          "2025-02-28 00:00:00+00:00": 110.63237536676786,
          "2025-03-31 00:00:00+00:00": 219.8649574116139,
          "2025-04-30 00:00:00+00:00": 226.8992553370299,
          "2025-05-31 00:00:00+00:00": 26.144745412991597,
          "2025-07-31 00:00:00+00:00": -7.27826248394183,
          "2025-08-31 00:00:00+00:00": 20.239677837066097,
          "2025-10-31 00:00:00+00:00": -28.945185013590503,
          "2025-11-30 00:00:00+00:00": 102.1939317514707,
          "2026-01-31 00:00:00+00:00": -1.519568103108213,
          "2026-02-28 00:00:00+00:00": 8.885419215276443,
          "2026-03-31 00:00:00+00:00": 252.84865978090647
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p70_cap3",
        "variant": "ridge_a10_H20_c8_p70_cap3",
        "gain_pct": 222.67146863090636,
        "max_drawdown_pct": -7.18673912006802,
        "capital_score": 211.89135995080434,
        "stability_score": 211.89135995080434,
        "n_trades": 114,
        "skipped_by_capacity": 573,
        "avg_trade_ret_pct": 1.0508558933991383,
        "median_trade_ret_pct": 1.093547722864508,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -0.21148439547286557,
        "month_gain_concentration": 0.254849775014151,
        "top_asset_trade_share": 0.4649122807017544,
        "long_counts": {
          "XRP": 53,
          "SOL": 39,
          "ETH": 15,
          "BTC": 3,
          "BNB": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 114,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7295081967213113,
        "max_open_trades": 3,
        "avg_exposure": 0.9098360655737705,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.998525519088446,
          "2025-02-28 00:00:00+00:00": 20.03860375221899,
          "2025-03-31 00:00:00+00:00": 31.753873302469884,
          "2025-04-30 00:00:00+00:00": 36.416623080272274,
          "2025-05-31 00:00:00+00:00": 7.549518777091947,
          "2025-07-31 00:00:00+00:00": 0.9937081708443145,
          "2025-08-31 00:00:00+00:00": -0.21148439547286557,
          "2025-10-31 00:00:00+00:00": 7.7571205638400045,
          "2025-11-30 00:00:00+00:00": 12.755452514753244,
          "2025-12-31 00:00:00+00:00": 4.55190396069807,
          "2026-01-31 00:00:00+00:00": 8.42531588694581,
          "2026-02-28 00:00:00+00:00": 55.19248766874398,
          "2026-03-31 00:00:00+00:00": 29.135579354100855
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.42206447963167193,
            "drawdown_pct": -0.4220644796316675,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.401694541338685,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.2677988273630802,
            "drawdown_pct": -2.72093001972582,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.893102927230828,
            "drawdown_pct": -0.2478731312229865,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.893102927230828,
            "drawdown_pct": -0.2478731312229865,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -1.4729360076745195,
            "drawdown_pct": -7.18673912006802,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.18215395419261426,
            "drawdown_pct": -5.627631498404839,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.998525519088446,
            "drawdown_pct": -3.9165953518218166,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.7039175915940348,
            "drawdown_pct": -5.136126092341264,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.76060901229512,
            "drawdown_pct": -2.256698991163475,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.4732264344423953,
            "drawdown_pct": -2.527415615508133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.4732264344423953,
            "drawdown_pct": -2.527415615508133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 6.197674262186737,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 16.938651841553366,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.938651841553366,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 22.037129271307435,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 22.037129271307435,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 45.201043916640145,
            "drawdown_pct": -5.420410553578914,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 45.201043916640145,
            "drawdown_pct": -5.420410553578914,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 51.2973384774281,
            "drawdown_pct": -1.4494677755449548,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 51.2973384774281,
            "drawdown_pct": -1.4494677755449548,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 53.79100257377732,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 53.79100257377732,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 71.11186704488176,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 71.11186704488176,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 90.2076256540496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 97.75714443114154,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 94.72519882066791,
            "drawdown_pct": -1.5331661564972343,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 98.75085260198586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 98.75085260198586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 98.53936820651299,
            "drawdown_pct": -0.10640678653911495,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 92.80157006499206,
            "drawdown_pct": -3.147930200126503,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 92.80157006499206,
            "drawdown_pct": -3.147930200126503,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 102.25385051424126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 97.64499671402254,
            "drawdown_pct": -2.27874712323175,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 97.64499671402254,
            "drawdown_pct": -2.27874712323175,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 106.296488770353,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 123.60384524580431,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 132.02916113275012,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 139.72475477126895,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 186.9616122258903,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 187.2216488014941,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 187.2216488014941,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 216.35722815559495,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p70_cap3",
        "variant": "ridge_a10_H20_c8_p70_cap3",
        "gain_pct": 33.01172992163279,
        "max_drawdown_pct": -1.5793930352562824,
        "capital_score": 30.642640368748367,
        "stability_score": 20.446974674198835,
        "n_trades": 12,
        "skipped_by_capacity": 45,
        "avg_trade_ret_pct": 2.4521536006794022,
        "median_trade_ret_pct": 1.0846433970016878,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8678266277819813,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 7,
          "ETH": 3,
          "BTC": 1,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 12,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6923076923076925,
        "max_open_trades": 3,
        "avg_exposure": 0.8974358974358974,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 26.38962867956029,
          "2026-03-31 00:00:00+00:00": 4.019243132782847
        }
      },
      "selection_score": 1179.220057017555
    },
    {
      "name": "ridge_a10_H20_c8_p70_cap5",
      "variant": {
        "name": "ridge_a10_H20_c8_p70_cap5",
        "threshold": 0.03240668609283527,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p70_cap5",
        "variant": "ridge_a10_H20_c8_p70_cap5",
        "gain_pct": 958.148801151551,
        "max_drawdown_pct": -15.769177306022343,
        "capital_score": 934.4950351925174,
        "stability_score": 915.8472003443277,
        "n_trades": 337,
        "skipped_by_capacity": 1634,
        "avg_trade_ret_pct": 0.7107145672565127,
        "median_trade_ret_pct": 0.695564832211906,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -23.87780517459919,
        "month_gain_concentration": 0.2127452767491016,
        "top_asset_trade_share": 0.5756676557863502,
        "long_counts": {
          "SOL": 103,
          "XRP": 194,
          "ETH": 24,
          "BNB": 7,
          "BTC": 9
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 337,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.6,
        "max_open_trades": 5,
        "avg_exposure": 0.9199999999999999,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 37.37104587518223,
          "2024-10-31 00:00:00+00:00": 1.1762242717383344,
          "2024-11-30 00:00:00+00:00": 87.7909920161245,
          "2024-12-31 00:00:00+00:00": 67.85529106808733,
          "2025-01-31 00:00:00+00:00": 12.708191544905617,
          "2025-02-28 00:00:00+00:00": 83.79261183384108,
          "2025-03-31 00:00:00+00:00": 181.29092204547175,
          "2025-04-30 00:00:00+00:00": 181.56566047447598,
          "2025-05-31 00:00:00+00:00": 12.81767727284614,
          "2025-07-31 00:00:00+00:00": -3.5385265387582194,
          "2025-08-31 00:00:00+00:00": 16.474636385904432,
          "2025-10-31 00:00:00+00:00": -23.87780517459919,
          "2025-11-30 00:00:00+00:00": 83.854808670348,
          "2026-01-31 00:00:00+00:00": -1.2356799343025386,
          "2026-02-28 00:00:00+00:00": -6.285691935935233,
          "2026-03-31 00:00:00+00:00": 207.1901081704849
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p70_cap5",
        "variant": "ridge_a10_H20_c8_p70_cap5",
        "gain_pct": 187.96432372481593,
        "max_drawdown_pct": -5.03806041053384,
        "capital_score": 180.40723310901518,
        "stability_score": 180.40723310901518,
        "n_trades": 169,
        "skipped_by_capacity": 518,
        "avg_trade_ret_pct": 0.6343769640870021,
        "median_trade_ret_pct": 0.6469698051494714,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.5505435106966274,
        "month_gain_concentration": 0.29152636892659706,
        "top_asset_trade_share": 0.4437869822485207,
        "long_counts": {
          "XRP": 75,
          "SOL": 57,
          "ETH": 25,
          "BNB": 7,
          "BTC": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 169,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.237704918032787,
        "max_open_trades": 5,
        "avg_exposure": 0.8475409836065573,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.6482914934480988,
          "2025-02-28 00:00:00+00:00": 14.02180636535769,
          "2025-03-31 00:00:00+00:00": 18.665261600210712,
          "2025-04-30 00:00:00+00:00": 35.929447055122694,
          "2025-05-31 00:00:00+00:00": 8.154430153457525,
          "2025-07-31 00:00:00+00:00": 0.5505435106966274,
          "2025-08-31 00:00:00+00:00": 1.3885931592196812,
          "2025-10-31 00:00:00+00:00": 7.2750940840206795,
          "2025-11-30 00:00:00+00:00": 11.12993105170446,
          "2025-12-31 00:00:00+00:00": 4.130193827346233,
          "2026-01-31 00:00:00+00:00": 7.365621837705646,
          "2026-02-28 00:00:00+00:00": 52.744837597766065,
          "2026-03-31 00:00:00+00:00": 15.922420857051236
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.25323868777900316,
            "drawdown_pct": -0.2532386877790005,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.036233788448385,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.980916337822194,
            "drawdown_pct": -1.6265688109899368,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.5364694965616366,
            "drawdown_pct": -0.12604197599670464,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.5364694965616366,
            "drawdown_pct": -0.12604197599670464,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 1.5097794501317026,
            "drawdown_pct": -2.081039645987093,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 2.5328962072432972,
            "drawdown_pct": -1.0941147435804988,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.6482914934480988,
            "drawdown_pct": -0.018175583821056218,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.86741504377936,
            "drawdown_pct": -1.5369870310315004,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.293954136578435,
            "drawdown_pct": -0.17152706360413772,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.5695451709595147,
            "drawdown_pct": -0.8649195178251023,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.5695451709595147,
            "drawdown_pct": -0.8649195178251023,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.738541588913833,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 14.384176920226764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 14.384176920226764,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 17.67009785880579,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.67009785880579,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 28.14750842804699,
            "drawdown_pct": -5.03806041053384,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 28.14750842804699,
            "drawdown_pct": -5.03806041053384,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 32.71133650942056,
            "drawdown_pct": -1.656098701902975,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 32.71133650942056,
            "drawdown_pct": -1.656098701902975,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 36.3353594590165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 36.3353594590165,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.58196401798753,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 51.58196401798753,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 72.2648065141392,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 80.41923666759672,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 78.75699640757256,
            "drawdown_pct": -0.9213209692748414,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 80.96978017829335,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 80.96978017829335,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 82.35837333751303,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 76.91206694717022,
            "drawdown_pct": -3.141319560334588,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 76.91206694717022,
            "drawdown_pct": -3.141319560334588,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 85.61366345344575,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 81.39042610349497,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 81.39042610349497,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 89.63346742153371,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 104.8935923005844,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 112.25921413829005,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 119.31466168449379,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 164.86004648259933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 165.0040517360561,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 165.0040517360561,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 180.92647259310735,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p70_cap5",
        "variant": "ridge_a10_H20_c8_p70_cap5",
        "gain_pct": 27.728506525908358,
        "max_drawdown_pct": -0.9491444478500255,
        "capital_score": 26.30478985413332,
        "stability_score": 15.764918139076814,
        "n_trades": 16,
        "skipped_by_capacity": 41,
        "avg_trade_ret_pct": 1.5577135985028878,
        "median_trade_ret_pct": 0.6507860382010127,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9065948686022602,
        "top_asset_trade_share": 0.5625,
        "long_counts": {
          "XRP": 9,
          "ETH": 4,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 16,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.076923076923077,
        "max_open_trades": 5,
        "avg_exposure": 0.8153846153846154,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 22.72858113449965,
          "2026-03-31 00:00:00+00:00": 2.3416921724090543
        }
      },
      "selection_score": 919.4950351925174
    },
    {
      "name": "ridge_a10_H20_c8_p80_cap1",
      "variant": {
        "name": "ridge_a10_H20_c8_p80_cap1",
        "threshold": 0.05285246474917103,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p80_cap1",
        "variant": "ridge_a10_H20_c8_p80_cap1",
        "gain_pct": 867.4007616852468,
        "max_drawdown_pct": -16.316276552477472,
        "capital_score": 842.9263468565306,
        "stability_score": 830.8631487868544,
        "n_trades": 64,
        "skipped_by_capacity": 1250,
        "avg_trade_ret_pct": 3.801370359217375,
        "median_trade_ret_pct": 3.4822851950561193,
        "positive_month_rate": 0.875,
        "worst_month_pct": -15.813198069676218,
        "month_gain_concentration": 0.2024191389679031,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "SOL": 18,
          "ETH": 5,
          "XRP": 40,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 64,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 26.326706584560867,
          "2024-10-31 00:00:00+00:00": 4.157656682096956,
          "2024-11-30 00:00:00+00:00": 93.27524778554115,
          "2024-12-31 00:00:00+00:00": 71.06556808339678,
          "2025-01-31 00:00:00+00:00": 11.855114854705448,
          "2025-02-28 00:00:00+00:00": 71.90554741447352,
          "2025-03-31 00:00:00+00:00": 136.8162193816084,
          "2025-04-30 00:00:00+00:00": 105.33328410611682,
          "2025-05-31 00:00:00+00:00": 64.22426147584781,
          "2025-07-31 00:00:00+00:00": -15.813198069676218,
          "2025-10-31 00:00:00+00:00": 14.328127747099984,
          "2025-11-30 00:00:00+00:00": 32.974846373701325,
          "2026-01-31 00:00:00+00:00": 41.926585607976904,
          "2026-02-28 00:00:00+00:00": 6.1232836816413965,
          "2026-03-31 00:00:00+00:00": 172.65742828277462
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p80_cap1",
        "variant": "ridge_a10_H20_c8_p80_cap1",
        "gain_pct": 125.80937188857274,
        "max_drawdown_pct": -19.67332306666405,
        "capital_score": 96.29938728857667,
        "stability_score": 96.29938728857667,
        "n_trades": 35,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.5197810596186434,
        "median_trade_ret_pct": 3.0851631169511307,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -4.0802559078922656,
        "month_gain_concentration": 0.32354327453255244,
        "top_asset_trade_share": 0.4857142857142857,
        "long_counts": {
          "XRP": 17,
          "SOL": 13,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 35,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -4.0802559078922656,
          "2025-02-28 00:00:00+00:00": 21.05661720901591,
          "2025-03-31 00:00:00+00:00": 14.903683987200154,
          "2025-04-30 00:00:00+00:00": 20.24425223473105,
          "2025-05-31 00:00:00+00:00": 0.2851162714041209,
          "2025-07-31 00:00:00+00:00": 1.0749524989168435,
          "2025-10-31 00:00:00+00:00": 1.7864336127991294,
          "2025-11-30 00:00:00+00:00": 14.569781718994307,
          "2025-12-31 00:00:00+00:00": 3.966640328734826,
          "2026-01-31 00:00:00+00:00": 6.468421385069121,
          "2026-02-28 00:00:00+00:00": 1.4555826550334245,
          "2026-03-31 00:00:00+00:00": 41.04287355240032
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.26619343889503,
            "drawdown_pct": -1.2661934388950247,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.1393355622129775,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -4.0802559078922656,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": -0.13043854972396218,
            "drawdown_pct": -12.870318406970116,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.7855203955755456,
            "drawdown_pct": -12.071203941087848,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.984695205035749,
            "drawdown_pct": -2.3006540249476903,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.976361301123646,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.59033098955291,
            "drawdown_pct": -5.521406907529968,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 29.7531132850566,
            "drawdown_pct": -0.8102697485592669,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 29.7531132850566,
            "drawdown_pct": -0.8102697485592669,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 31.8800452883238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 31.8800452883238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 52.12429752305485,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 52.40941379445897,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 48.89084098285443,
            "drawdown_pct": -2.3086322058489928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 53.484366293375814,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 53.484366293375814,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 51.6056933104679,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 51.6056933104679,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 58.92004692957093,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 55.27079990617494,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 55.27079990617494,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 62.0238868203582,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 62.0238868203582,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 73.80722195390408,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 80.2756433389732,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 86.18984391681127,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 122.77409954640694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p80_cap1",
        "variant": "ridge_a10_H20_c8_p80_cap1",
        "gain_pct": 25.27855469942081,
        "max_drawdown_pct": -2.378518469735913,
        "capital_score": 21.71077699481694,
        "stability_score": 4.083958009077239,
        "n_trades": 4,
        "skipped_by_capacity": 31,
        "avg_trade_ret_pct": 6.212248793936798,
        "median_trade_ret_pct": 2.321566026165436,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.965072759429588,
        "top_asset_trade_share": 0.75,
        "long_counts": {
          "XRP": 3,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.8240939951664927,
          "2026-03-31 00:00:00+00:00": 22.770498125706894
        }
      },
      "selection_score": 727.9263468565306
    },
    {
      "name": "ridge_a10_H20_c8_p80_cap2",
      "variant": {
        "name": "ridge_a10_H20_c8_p80_cap2",
        "threshold": 0.05285246474917103,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p80_cap2",
        "variant": "ridge_a10_H20_c8_p80_cap2",
        "gain_pct": 768.134494011949,
        "max_drawdown_pct": -15.968136720429815,
        "capital_score": 744.1822889313042,
        "stability_score": 741.4000350394753,
        "n_trades": 123,
        "skipped_by_capacity": 1191,
        "avg_trade_ret_pct": 1.8212063703658805,
        "median_trade_ret_pct": 1.7095073059901333,
        "positive_month_rate": 0.875,
        "worst_month_pct": -6.989570964999757,
        "month_gain_concentration": 0.2163472452398866,
        "top_asset_trade_share": 0.6097560975609756,
        "long_counts": {
          "SOL": 36,
          "ETH": 9,
          "XRP": 75,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 123,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9468599033816425,
        "max_open_trades": 2,
        "avg_exposure": 0.9734299516908212,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.733823146962905,
          "2024-10-31 00:00:00+00:00": 3.8353208453220446,
          "2024-11-30 00:00:00+00:00": 90.43909185798458,
          "2024-12-31 00:00:00+00:00": 72.25648095502058,
          "2025-01-31 00:00:00+00:00": 13.605794158666924,
          "2025-02-28 00:00:00+00:00": 66.33024437711595,
          "2025-03-31 00:00:00+00:00": 94.15491257224494,
          "2025-04-30 00:00:00+00:00": 78.24073398564292,
          "2025-05-31 00:00:00+00:00": 72.91979485957688,
          "2025-07-31 00:00:00+00:00": -6.989570964999757,
          "2025-10-31 00:00:00+00:00": 12.884584138277319,
          "2025-11-30 00:00:00+00:00": 29.853876563073072,
          "2026-01-31 00:00:00+00:00": 38.07582071504169,
          "2026-02-28 00:00:00+00:00": 5.764160063095915,
          "2026-03-31 00:00:00+00:00": 163.46276220686116
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p80_cap2",
        "variant": "ridge_a10_H20_c8_p80_cap2",
        "gain_pct": 130.3846880768727,
        "max_drawdown_pct": -10.991169450564763,
        "capital_score": 113.89793390102554,
        "stability_score": 113.89793390102554,
        "n_trades": 65,
        "skipped_by_capacity": 370,
        "avg_trade_ret_pct": 1.3317819421297747,
        "median_trade_ret_pct": 1.3543979151886776,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -2.6936730139691036,
        "month_gain_concentration": 0.33685396366801484,
        "top_asset_trade_share": 0.4461538461538462,
        "long_counts": {
          "XRP": 29,
          "SOL": 25,
          "ETH": 9,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 65,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9263157894736842,
        "max_open_trades": 2,
        "avg_exposure": 0.9631578947368421,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.6936730139691036,
          "2025-02-28 00:00:00+00:00": 20.0426018731671,
          "2025-03-31 00:00:00+00:00": 13.21381144646,
          "2025-04-30 00:00:00+00:00": 20.49947525208799,
          "2025-05-31 00:00:00+00:00": 0.14156284154194054,
          "2025-07-31 00:00:00+00:00": 1.1223717008425638,
          "2025-10-31 00:00:00+00:00": 4.495940450635402,
          "2025-11-30 00:00:00+00:00": 14.518103473920632,
          "2025-12-31 00:00:00+00:00": 4.02502869077648,
          "2026-01-31 00:00:00+00:00": 6.587125821449092,
          "2026-02-28 00:00:00+00:00": 1.5438529458360506,
          "2026-03-31 00:00:00+00:00": 43.781307979850766
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6330967194475079,
            "drawdown_pct": -0.6330967194475123,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.0934104903145823,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.7053866507379212,
            "drawdown_pct": -5.136990735201808,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.583762653491462,
            "drawdown_pct": -1.519538102677842,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.583762653491462,
            "drawdown_pct": -1.519538102677842,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.6936730139691036,
            "drawdown_pct": -9.240097281195903,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -4.57104833043077,
            "drawdown_pct": -10.991169450564763,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.2737421282209311,
            "drawdown_pct": -5.539595746470716,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 2.2047093110315643,
            "drawdown_pct": -4.671260731025917,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 12.287968548165338,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.348928859197997,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 24.398992637751476,
            "drawdown_pct": -5.445192071933668,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 28.448564052938423,
            "drawdown_pct": -2.3671410424610295,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 28.448564052938423,
            "drawdown_pct": -2.3671410424610295,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 30.562740305657996,
            "drawdown_pct": -0.7601703969341678,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 30.562740305657996,
            "drawdown_pct": -0.7601703969341678,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.062215557745986,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 51.20377839928793,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.73318635661454,
            "drawdown_pct": -2.2953077491942753,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 52.32615010013049,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 52.32615010013049,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 53.01476637207293,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 53.01476637207293,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 60.48614385648108,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 56.82209055076589,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 56.82209055076589,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 63.36379937082677,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 63.36379937082677,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 75.365222715463,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 81.9523485369121,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 87.9705129270979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 127.27750946259891,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p80_cap2",
        "variant": "ridge_a10_H20_c8_p80_cap2",
        "gain_pct": 25.87328443459718,
        "max_drawdown_pct": -2.364375094458726,
        "capital_score": 22.32672179290909,
        "stability_score": 10.121267155717213,
        "n_trades": 7,
        "skipped_by_capacity": 28,
        "avg_trade_ret_pct": 3.4630791043010962,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9625038997733895,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 4,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 7,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9090909090909092,
        "max_open_trades": 2,
        "avg_exposure": 0.9545454545454546,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.9382117411406483,
          "2026-03-31 00:00:00+00:00": 24.08337011591901
        }
      },
      "selection_score": 729.1822889313042
    },
    {
      "name": "ridge_a10_H20_c8_p80_cap3",
      "variant": {
        "name": "ridge_a10_H20_c8_p80_cap3",
        "threshold": 0.05285246474917103,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p80_cap3",
        "variant": "ridge_a10_H20_c8_p80_cap3",
        "gain_pct": 619.6774042895313,
        "max_drawdown_pct": -16.057119184950096,
        "capital_score": 595.5917255121061,
        "stability_score": 593.5121800575606,
        "n_trades": 176,
        "skipped_by_capacity": 1138,
        "avg_trade_ret_pct": 1.1486596322455018,
        "median_trade_ret_pct": 1.1166096300956319,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -3.842606251625284,
        "month_gain_concentration": 0.2259981979523973,
        "top_asset_trade_share": 0.6193181818181818,
        "long_counts": {
          "SOL": 52,
          "ETH": 11,
          "XRP": 109,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 176,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8309178743961354,
        "max_open_trades": 3,
        "avg_exposure": 0.9436392914653783,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 9.794475635431425,
          "2024-10-31 00:00:00+00:00": 1.7356240853391682,
          "2024-11-30 00:00:00+00:00": 76.13783503075994,
          "2024-12-31 00:00:00+00:00": 68.17409080652607,
          "2025-01-31 00:00:00+00:00": -1.4719776834482161,
          "2025-02-28 00:00:00+00:00": 55.6257415174762,
          "2025-03-31 00:00:00+00:00": 71.20794010936237,
          "2025-04-30 00:00:00+00:00": 64.13500433557004,
          "2025-05-31 00:00:00+00:00": 53.99670494225995,
          "2025-07-31 00:00:00+00:00": -3.842606251625284,
          "2025-10-31 00:00:00+00:00": 10.685670207578198,
          "2025-11-30 00:00:00+00:00": 24.815882794012566,
          "2026-01-31 00:00:00+00:00": 31.68385398495343,
          "2026-02-28 00:00:00+00:00": 4.8517530004542095,
          "2026-03-31 00:00:00+00:00": 138.0643067063943
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p80_cap3",
        "variant": "ridge_a10_H20_c8_p80_cap3",
        "gain_pct": 122.76336049317035,
        "max_drawdown_pct": -6.531361206096575,
        "capital_score": 112.9663186840255,
        "stability_score": 112.9663186840255,
        "n_trades": 89,
        "skipped_by_capacity": 346,
        "avg_trade_ret_pct": 0.9219292546680866,
        "median_trade_ret_pct": 1.028387705650377,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -0.9366746444321166,
        "month_gain_concentration": 0.3549590105960648,
        "top_asset_trade_share": 0.4606741573033708,
        "long_counts": {
          "XRP": 41,
          "SOL": 32,
          "ETH": 13,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 89,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.778947368421053,
        "max_open_trades": 3,
        "avg_exposure": 0.9263157894736842,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.2437118745733784,
          "2025-02-28 00:00:00+00:00": 14.836095530425567,
          "2025-03-31 00:00:00+00:00": 13.948362762456725,
          "2025-04-30 00:00:00+00:00": 20.41592742188587,
          "2025-05-31 00:00:00+00:00": 0.09336431804300105,
          "2025-07-31 00:00:00+00:00": 0.7514095036724768,
          "2025-10-31 00:00:00+00:00": 3.6115173712921376,
          "2025-11-30 00:00:00+00:00": 14.611747778205228,
          "2025-12-31 00:00:00+00:00": 3.501685752409429,
          "2026-01-31 00:00:00+00:00": 6.481421588767944,
          "2026-02-28 00:00:00+00:00": -0.9366746444321166,
          "2026-03-31 00:00:00+00:00": 43.19507530459816
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.42206447963167193,
            "drawdown_pct": -0.4220644796316675,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0675498178115106,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.1979668148368603,
            "drawdown_pct": -3.4246604901345234,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.770651041615153,
            "drawdown_pct": -0.9694940428935928,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.770651041615153,
            "drawdown_pct": -0.9694940428935928,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.2437118745733784,
            "drawdown_pct": -4.335325968261516,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.0286232245256883,
            "drawdown_pct": -5.549542004742158,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.9754799476215794,
            "drawdown_pct": -2.6826634210683653,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.6930415870136102,
            "drawdown_pct": -2.9522002647900725,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.489010264230814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 15.079807404998945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.13491216850977,
            "drawdown_pct": -5.420410553578936,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 26.9360262189833,
            "drawdown_pct": -2.5007852417841425,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.9360262189833,
            "drawdown_pct": -2.5007852417841425,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 29.02817016745567,
            "drawdown_pct": -0.8938151938537864,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 29.02817016745567,
            "drawdown_pct": -0.8938151938537864,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.44409758934154,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 49.53746190738454,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.244804150135565,
            "drawdown_pct": -1.5331661564972454,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 50.288871411057016,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 50.288871411057016,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 50.12895385246259,
            "drawdown_pct": -0.10640678653912605,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 50.12895385246259,
            "drawdown_pct": -0.10640678653912605,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 57.48916868311733,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 53.900388782349154,
            "drawdown_pct": -2.2787471232317724,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 53.900388782349154,
            "drawdown_pct": -2.2787471232317724,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 60.63705307010338,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 60.63705307010338,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 72.01382231296381,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 78.49524390173175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 84.4153052283774,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 120.7536445618978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p80_cap3",
        "variant": "ridge_a10_H20_c8_p80_cap3",
        "gain_pct": 25.83937318489528,
        "max_drawdown_pct": -1.5793930352563046,
        "capital_score": 23.470283632010823,
        "stability_score": 9.347383511637386,
        "n_trades": 8,
        "skipped_by_capacity": 27,
        "avg_trade_ret_pct": 2.977810283890271,
        "median_trade_ret_pct": 1.1181487216075616,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9749160048149376,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5454545454545454,
        "max_open_trades": 3,
        "avg_exposure": 0.8484848484848485,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.6338836263734322,
          "2026-03-31 00:00:00+00:00": 24.636557613023342
        }
      },
      "selection_score": 580.5917255121061
    },
    {
      "name": "ridge_a10_H20_c8_p80_cap5",
      "variant": {
        "name": "ridge_a10_H20_c8_p80_cap5",
        "threshold": 0.05285246474917103,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p80_cap5",
        "variant": "ridge_a10_H20_c8_p80_cap5",
        "gain_pct": 499.9961472915476,
        "max_drawdown_pct": -17.120469440912544,
        "capital_score": 474.3154431301788,
        "stability_score": 469.30112138936465,
        "n_trades": 267,
        "skipped_by_capacity": 1047,
        "avg_trade_ret_pct": 0.6812843746382308,
        "median_trade_ret_pct": 0.6856498322103691,
        "positive_month_rate": 0.75,
        "worst_month_pct": -9.087355448679347,
        "month_gain_concentration": 0.23295858023376914,
        "top_asset_trade_share": 0.6142322097378277,
        "long_counts": {
          "SOL": 84,
          "ETH": 15,
          "XRP": 164,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 267,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.454106280193237,
        "max_open_trades": 5,
        "avg_exposure": 0.8908212560386473,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 10.208262430455491,
          "2024-10-31 00:00:00+00:00": 0.6127748072259465,
          "2024-11-30 00:00:00+00:00": 61.598431598307414,
          "2024-12-31 00:00:00+00:00": 62.880060914667865,
          "2025-01-31 00:00:00+00:00": -9.087355448679347,
          "2025-02-28 00:00:00+00:00": 44.60555350568296,
          "2025-03-31 00:00:00+00:00": 60.43968123619322,
          "2025-04-30 00:00:00+00:00": 51.16604899213394,
          "2025-05-31 00:00:00+00:00": 44.549063363123366,
          "2025-07-31 00:00:00+00:00": -1.971445027829077,
          "2025-10-31 00:00:00+00:00": 9.178633997098757,
          "2025-11-30 00:00:00+00:00": 21.355562206875618,
          "2026-01-31 00:00:00+00:00": 22.724351888039337,
          "2026-02-28 00:00:00+00:00": -3.587144961126228,
          "2026-03-31 00:00:00+00:00": 118.24011741173615
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p80_cap5",
        "variant": "ridge_a10_H20_c8_p80_cap5",
        "gain_pct": 112.74842357293929,
        "max_drawdown_pct": -5.038060410533829,
        "capital_score": 105.19133295713854,
        "stability_score": 105.19133295713854,
        "n_trades": 132,
        "skipped_by_capacity": 303,
        "avg_trade_ret_pct": 0.5799967256971699,
        "median_trade_ret_pct": 0.6170326233902261,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.05314294675170572,
        "month_gain_concentration": 0.3758021880690468,
        "top_asset_trade_share": 0.4696969696969697,
        "long_counts": {
          "XRP": 62,
          "SOL": 48,
          "ETH": 17,
          "BNB": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 132,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.242105263157895,
        "max_open_trades": 5,
        "avg_exposure": 0.8484210526315791,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.1596527279083375,
          "2025-02-28 00:00:00+00:00": 10.636088565571285,
          "2025-03-31 00:00:00+00:00": 10.791684623040652,
          "2025-04-30 00:00:00+00:00": 17.185146429074493,
          "2025-05-31 00:00:00+00:00": 0.05314294675170572,
          "2025-07-31 00:00:00+00:00": 0.4327766187591635,
          "2025-10-31 00:00:00+00:00": 4.720327803098769,
          "2025-11-30 00:00:00+00:00": 14.793297718942512,
          "2025-12-31 00:00:00+00:00": 1.9150411699550887,
          "2026-01-31 00:00:00+00:00": 5.8843114439141,
          "2026-02-28 00:00:00+00:00": 0.08505849744278748,
          "2026-03-31 00:00:00+00:00": 41.937147711753425
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.25323868777900316,
            "drawdown_pct": -0.2532386877790005,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 1.2430624463357702,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 0.7476947119307056,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.284437078764469,
            "drawdown_pct": -0.5608013734681561,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.284437078764469,
            "drawdown_pct": -0.5608013734681561,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.1596527279083375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.382457636599767,
            "drawdown_pct": -1.5369870310315004,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.702254012225083,
            "drawdown_pct": -0.2677156084715304,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.299077874745592,
            "drawdown_pct": -0.6554572018050986,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.645922373298859,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 13.795741293479622,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 18.148875113111174,
            "drawdown_pct": -5.038060410533829,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 21.570091432502636,
            "drawdown_pct": -2.288264129075246,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 21.570091432502636,
            "drawdown_pct": -2.288264129075246,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 24.587425916520274,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 24.587425916520274,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 41.77257234559477,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 41.82571529234647,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 40.51904523753407,
            "drawdown_pct": -0.9213209692748303,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 42.25849191110564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 42.25849191110564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 43.350050780846516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 43.350050780846516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 50.40086603937564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 46.978819714204405,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 46.978819714204405,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 53.65807236169243,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 53.65807236169243,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 63.687158603102006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 69.5714700470161,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 75.20798678013614,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 111.59367625621232,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p80_cap5",
        "variant": "ridge_a10_H20_c8_p80_cap5",
        "gain_pct": 26.474022388599025,
        "max_drawdown_pct": -0.9491444478500033,
        "capital_score": 25.05030571682402,
        "stability_score": 8.418034323398434,
        "n_trades": 10,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 2.402437549141348,
        "median_trade_ret_pct": 2.6012630754204076,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9852908557370236,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "XRP": 7,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.727272727272727,
        "max_open_trades": 5,
        "avg_exposure": 0.7454545454545454,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.3843546475562363,
          "2026-03-31 00:00:00+00:00": 25.74596542304593
        }
      },
      "selection_score": 459.3154431301788
    },
    {
      "name": "ridge_a10_H20_c8_p90_cap1",
      "variant": {
        "name": "ridge_a10_H20_c8_p90_cap1",
        "threshold": 0.06893466520931883,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p90_cap1",
        "variant": "ridge_a10_H20_c8_p90_cap1",
        "gain_pct": 455.15522447455794,
        "max_drawdown_pct": -16.829862240460926,
        "capital_score": 429.91043111386654,
        "stability_score": 414.28407514972105,
        "n_trades": 48,
        "skipped_by_capacity": 609,
        "avg_trade_ret_pct": 3.8586994420056295,
        "median_trade_ret_pct": 3.9608419289905625,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -17.50135596414546,
        "month_gain_concentration": 0.23056621571791355,
        "top_asset_trade_share": 0.6875,
        "long_counts": {
          "SOL": 12,
          "XRP": 33,
          "BTC": 1,
          "ETH": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 48,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.661116671655009,
          "2024-10-31 00:00:00+00:00": 9.924262420327707,
          "2024-11-30 00:00:00+00:00": 85.05692389312175,
          "2024-12-31 00:00:00+00:00": 65.2462242586839,
          "2025-01-31 00:00:00+00:00": -17.50135596414546,
          "2025-02-28 00:00:00+00:00": 33.04503084713926,
          "2025-03-31 00:00:00+00:00": 53.46083089368466,
          "2025-04-30 00:00:00+00:00": 35.163165089758024,
          "2025-07-31 00:00:00+00:00": 31.007197401794485,
          "2025-10-31 00:00:00+00:00": 8.737675921592768,
          "2025-11-30 00:00:00+00:00": 20.10894418749359,
          "2026-02-28 00:00:00+00:00": 14.493169040009889
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p90_cap1",
        "variant": "ridge_a10_H20_c8_p90_cap1",
        "gain_pct": 81.04390997350441,
        "max_drawdown_pct": -16.316276552477483,
        "capital_score": 56.56949514478819,
        "stability_score": 52.52991613387458,
        "n_trades": 23,
        "skipped_by_capacity": 177,
        "avg_trade_ret_pct": 2.79889440809036,
        "median_trade_ret_pct": 3.0851631169511307,
        "positive_month_rate": 0.75,
        "worst_month_pct": -10.039579010913613,
        "month_gain_concentration": 0.3540733849964608,
        "top_asset_trade_share": 0.5217391304347826,
        "long_counts": {
          "XRP": 12,
          "SOL": 9,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 23,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -10.039579010913613,
          "2025-02-28 00:00:00+00:00": 10.359014141458772,
          "2025-03-31 00:00:00+00:00": 20.97472100739668,
          "2025-04-30 00:00:00+00:00": 4.9837192874152265,
          "2025-07-31 00:00:00+00:00": 14.600710509708122,
          "2025-10-31 00:00:00+00:00": 1.6397125473806398,
          "2025-11-30 00:00:00+00:00": 6.680466579314469,
          "2026-02-28 00:00:00+00:00": -1.9898513693962343
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -10.039579010913613,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -4.843692877949053,
            "drawdown_pct": -11.482916576665758,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -4.843692877949053,
            "drawdown_pct": -11.482916576665758,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": -3.0522375746889026,
            "drawdown_pct": -9.81645427559663,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 7.720489842162721,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 7.720489842162721,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 21.102810204796285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 21.102810204796285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 19.33795099761862,
            "drawdown_pct": -1.45732308291866,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 19.33795099761862,
            "drawdown_pct": -1.45732308291866,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 21.29415613794184,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 21.29415613794184,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 26.277875425357067,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 26.277875425357067,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 26.277875425357067,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 36.66233013109468,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 40.87858593506519,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 39.15420970276159,
            "drawdown_pct": -1.224015857951899,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 45.86783024779254,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 42.51829848244583,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 49.1987650617603,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 50.82055664142459,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 47.208913692364064,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p90_cap1",
        "variant": "ridge_a10_H20_c8_p90_cap1",
        "gain_pct": 22.984339353151157,
        "max_drawdown_pct": 0.0,
        "capital_score": 22.984339353151157,
        "stability_score": 9.484339353151158,
        "n_trades": 1,
        "skipped_by_capacity": 15,
        "avg_trade_ret_pct": 22.984339353151153,
        "median_trade_ret_pct": 22.984339353151153,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 1,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 314.91043111386654
    },
    {
      "name": "ridge_a10_H20_c8_p90_cap2",
      "variant": {
        "name": "ridge_a10_H20_c8_p90_cap2",
        "threshold": 0.06893466520931883,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p90_cap2",
        "variant": "ridge_a10_H20_c8_p90_cap2",
        "gain_pct": 388.01258481818223,
        "max_drawdown_pct": -16.48306774454885,
        "capital_score": 363.28798320135894,
        "stability_score": 350.5767698980314,
        "n_trades": 90,
        "skipped_by_capacity": 567,
        "avg_trade_ret_pct": 1.8328455687348564,
        "median_trade_ret_pct": 1.9804209644952813,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.54454663666084,
        "month_gain_concentration": 0.24380342773820066,
        "top_asset_trade_share": 0.6888888888888889,
        "long_counts": {
          "SOL": 21,
          "XRP": 62,
          "BTC": 2,
          "ETH": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 90,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9185185185185185,
        "max_open_trades": 2,
        "avg_exposure": 0.9592592592592593,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 8.34231849302057,
          "2024-10-31 00:00:00+00:00": 3.713384319098097,
          "2024-11-30 00:00:00+00:00": 62.415341236698524,
          "2024-12-31 00:00:00+00:00": 74.88112842296144,
          "2025-01-31 00:00:00+00:00": -14.54454663666084,
          "2025-02-28 00:00:00+00:00": 28.399785215962993,
          "2025-03-31 00:00:00+00:00": 41.61244998786327,
          "2025-04-30 00:00:00+00:00": 22.06979019380924,
          "2025-07-31 00:00:00+00:00": 27.434408873428026,
          "2025-10-31 00:00:00+00:00": 7.627594108451547,
          "2025-11-30 00:00:00+00:00": 17.67331025534969,
          "2026-02-28 00:00:00+00:00": 12.967796673006774
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p90_cap2",
        "variant": "ridge_a10_H20_c8_p90_cap2",
        "gain_pct": 93.2616007503548,
        "max_drawdown_pct": -5.240570656692867,
        "capital_score": 85.4007447653155,
        "stability_score": 83.06353546298992,
        "n_trades": 43,
        "skipped_by_capacity": 157,
        "avg_trade_ret_pct": 1.5879155315734688,
        "median_trade_ret_pct": 1.5425815584755653,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.6493048875123577,
        "month_gain_concentration": 0.3880308568880971,
        "top_asset_trade_share": 0.627906976744186,
        "long_counts": {
          "XRP": 27,
          "SOL": 12,
          "ETH": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 43,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9259259259259258,
        "max_open_trades": 2,
        "avg_exposure": 0.9629629629629629,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.6868552345288919,
          "2025-02-28 00:00:00+00:00": 4.452671481647883,
          "2025-03-31 00:00:00+00:00": 23.208057957757788,
          "2025-04-30 00:00:00+00:00": 5.229166665967426,
          "2025-07-31 00:00:00+00:00": 15.432678341790762,
          "2025-10-31 00:00:00+00:00": 4.327986107984344,
          "2025-11-30 00:00:00+00:00": 7.1592652506656975,
          "2026-02-28 00:00:00+00:00": -2.6493048875123577
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.6868552345288919,
            "drawdown_pct": -5.240570656692867,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -1.3012601389265228,
            "drawdown_pct": -4.868913628489535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -1.3012601389265228,
            "drawdown_pct": -4.868913628489535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.5656321672758224,
            "drawdown_pct": -3.06950369197333,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 10.48718418111666,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 10.48718418111666,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.426293222023943,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.426293222023943,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 22.68747472877196,
            "drawdown_pct": -1.3974686926896296,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 22.68747472877196,
            "drawdown_pct": -1.3974686926896296,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 25.97387420487678,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 25.97387420487678,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 31.203040870844205,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 31.203040870844205,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 31.203040870844205,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 42.21433430002932,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 46.63571921263497,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 47.29861092381802,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 54.4908809983595,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 50.96370532061931,
            "drawdown_pct": -2.283096358145331,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 58.12297057128501,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 59.264684767779755,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 55.47366568377265,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p90_cap2",
        "variant": "ridge_a10_H20_c8_p90_cap2",
        "gain_pct": 24.305038991903203,
        "max_drawdown_pct": 0.0,
        "capital_score": 24.305038991903203,
        "stability_score": 10.805038991903205,
        "n_trades": 2,
        "skipped_by_capacity": 14,
        "avg_trade_ret_pct": 11.492169676575577,
        "median_trade_ret_pct": 11.492169676575577,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 348.28798320135894
    },
    {
      "name": "ridge_a10_H20_c8_p90_cap3",
      "variant": {
        "name": "ridge_a10_H20_c8_p90_cap3",
        "threshold": 0.06893466520931883,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p90_cap3",
        "variant": "ridge_a10_H20_c8_p90_cap3",
        "gain_pct": 367.4697966562091,
        "max_drawdown_pct": -16.057119184950086,
        "capital_score": 343.38411787878397,
        "stability_score": 331.3860109369311,
        "n_trades": 130,
        "skipped_by_capacity": 527,
        "avg_trade_ret_pct": 1.2184235151395966,
        "median_trade_ret_pct": 1.326380403594271,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -13.728876172622137,
        "month_gain_concentration": 0.2595316827469641,
        "top_asset_trade_share": 0.6923076923076923,
        "long_counts": {
          "SOL": 30,
          "XRP": 90,
          "BTC": 3,
          "ETH": 7
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 130,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7925925925925927,
        "max_open_trades": 3,
        "avg_exposure": 0.9308641975308644,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 11.407932187876739,
          "2024-10-31 00:00:00+00:00": 1.819687386042716,
          "2024-11-30 00:00:00+00:00": 51.114049578439605,
          "2024-12-31 00:00:00+00:00": 74.83163178122624,
          "2025-01-31 00:00:00+00:00": -13.728876172622137,
          "2025-02-28 00:00:00+00:00": 28.79935319402574,
          "2025-03-31 00:00:00+00:00": 39.06908057849017,
          "2025-04-30 00:00:00+00:00": 18.25908223301576,
          "2025-07-31 00:00:00+00:00": 26.33086438778679,
          "2025-10-31 00:00:00+00:00": 7.28712445682595,
          "2025-11-30 00:00:00+00:00": 16.923264794165902,
          "2026-02-28 00:00:00+00:00": 12.491249613246225
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p90_cap3",
        "variant": "ridge_a10_H20_c8_p90_cap3",
        "gain_pct": 91.04592830239616,
        "max_drawdown_pct": -4.00099921395719,
        "capital_score": 85.04442948146038,
        "stability_score": 82.92373982628797,
        "n_trades": 58,
        "skipped_by_capacity": 142,
        "avg_trade_ret_pct": 1.1422633111751335,
        "median_trade_ret_pct": 1.0938312130017769,
        "positive_month_rate": 0.875,
        "worst_month_pct": -1.7287055849887452,
        "month_gain_concentration": 0.42138452573861324,
        "top_asset_trade_share": 0.6206896551724138,
        "long_counts": {
          "XRP": 36,
          "SOL": 16,
          "ETH": 3,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 58,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6481481481481484,
        "max_open_trades": 3,
        "avg_exposure": 0.882716049382716,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.5432853127764048,
          "2025-02-28 00:00:00+00:00": 3.9970432876942965,
          "2025-03-31 00:00:00+00:00": 23.101288989821228,
          "2025-04-30 00:00:00+00:00": 5.123906237216545,
          "2025-07-31 00:00:00+00:00": 10.552589603055736,
          "2025-10-31 00:00:00+00:00": 3.4680370459435323,
          "2025-11-30 00:00:00+00:00": 7.036197233885076,
          "2026-02-28 00:00:00+00:00": -1.7287055849887452
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.5432853127764048,
            "drawdown_pct": -0.9335412141196597,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 2.4070216148231793,
            "drawdown_pct": -0.46954349211775215,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.4070216148231793,
            "drawdown_pct": -0.46954349211775215,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 4.024858657396862,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.730185384129783,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.730185384129783,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 28.15354598628724,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 28.15354598628724,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 26.388831137348348,
            "drawdown_pct": -1.3770316188736031,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.388831137348348,
            "drawdown_pct": -1.3770316188736031,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.64161759029193,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.64161759029193,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 33.765523827508474,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 33.765523827508474,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 33.765523827508474,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 41.39498252854051,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 44.31811343056421,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 44.16454916366885,
            "drawdown_pct": -0.10640678653912605,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 51.23235337851639,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 47.78615047650774,
            "drawdown_pct": -2.2787471232317724,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 54.82234771039282,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 55.56727053446289,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 53.093642125404074,
            "drawdown_pct": -1.5900699424502895,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p90_cap3",
        "variant": "ridge_a10_H20_c8_p90_cap3",
        "gain_pct": 25.827927045013382,
        "max_drawdown_pct": 0.0,
        "capital_score": 25.827927045013382,
        "stability_score": 12.327927045013384,
        "n_trades": 3,
        "skipped_by_capacity": 13,
        "avg_trade_ret_pct": 7.959863332983562,
        "median_trade_ret_pct": 7.661446451050384,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 3,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8,
        "max_open_trades": 3,
        "avg_exposure": 0.9333333333333332,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 328.38411787878397
    },
    {
      "name": "ridge_a10_H20_c8_p90_cap5",
      "variant": {
        "name": "ridge_a10_H20_c8_p90_cap5",
        "threshold": 0.06893466520931883,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a10_H20_c8_p90_cap5",
        "variant": "ridge_a10_H20_c8_p90_cap5",
        "gain_pct": 331.5209425295232,
        "max_drawdown_pct": -15.826737309767614,
        "capital_score": 307.7808365648718,
        "stability_score": 297.31512936969597,
        "n_trades": 202,
        "skipped_by_capacity": 455,
        "avg_trade_ret_pct": 0.7359519774779907,
        "median_trade_ret_pct": 0.7958282421565624,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -12.32214283874012,
        "month_gain_concentration": 0.2922567758453617,
        "top_asset_trade_share": 0.6881188118811881,
        "long_counts": {
          "SOL": 49,
          "BNB": 1,
          "XRP": 139,
          "BTC": 3,
          "ETH": 10
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 202,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.392592592592592,
        "max_open_trades": 5,
        "avg_exposure": 0.8785185185185186,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.360478540594613,
          "2024-10-31 00:00:00+00:00": 0.6747811440930036,
          "2024-11-30 00:00:00+00:00": 38.351700750549156,
          "2024-12-31 00:00:00+00:00": 74.0821504704675,
          "2025-01-31 00:00:00+00:00": -12.32214283874012,
          "2025-02-28 00:00:00+00:00": 29.576294017615027,
          "2025-03-31 00:00:00+00:00": 36.16163710625938,
          "2025-04-30 00:00:00+00:00": 12.436324489465221,
          "2025-07-31 00:00:00+00:00": 23.385445718183405,
          "2025-10-31 00:00:00+00:00": 6.818232070359102,
          "2025-11-30 00:00:00+00:00": 15.863709040527226,
          "2026-02-28 00:00:00+00:00": 2.7723361583061887
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c8_p90_cap5",
        "variant": "ridge_a10_H20_c8_p90_cap5",
        "gain_pct": 71.01934788330479,
        "max_drawdown_pct": -3.9898030090914527,
        "capital_score": 65.0346433696676,
        "stability_score": 63.3203576553819,
        "n_trades": 84,
        "skipped_by_capacity": 116,
        "avg_trade_ret_pct": 0.6513293527946203,
        "median_trade_ret_pct": 0.5793958947328487,
        "positive_month_rate": 0.75,
        "worst_month_pct": -1.9674272514408244,
        "month_gain_concentration": 0.348109776480856,
        "top_asset_trade_share": 0.6071428571428571,
        "long_counts": {
          "XRP": 51,
          "SOL": 24,
          "ETH": 4,
          "BNB": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 84,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.888888888888889,
        "max_open_trades": 5,
        "avg_exposure": 0.7777777777777778,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.9674272514408244,
          "2025-02-28 00:00:00+00:00": 6.561308606994217,
          "2025-03-31 00:00:00+00:00": 13.746447420385408,
          "2025-04-30 00:00:00+00:00": 2.8134535728336942,
          "2025-07-31 00:00:00+00:00": 5.883516987725571,
          "2025-10-31 00:00:00+00:00": 4.215268192659963,
          "2025-11-30 00:00:00+00:00": 6.268834172590232,
          "2026-02-28 00:00:00+00:00": -0.9210408195046966
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.9674272514408244,
            "drawdown_pct": -3.416279609710904,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.4116506074135344,
            "drawdown_pct": -3.853937657451312,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.7167072848581455,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.6883890591864343,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.102023140595449,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.102023140595449,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 18.769326231432302,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 18.769326231432302,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 17.089991402169673,
            "drawdown_pct": -1.4139465824621222,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 17.089991402169673,
            "drawdown_pct": -1.4139465824621222,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 18.3403287759388,
            "drawdown_pct": -0.36120223049641575,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 18.3403287759388,
            "drawdown_pct": -0.36120223049641575,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 21.153782348772495,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 21.153782348772495,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 21.153782348772495,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 25.483967758313852,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 27.037299336498066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 28.012064983285143,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 34.30846610866635,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 31.25256752915803,
            "drawdown_pct": -2.275283657126914,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 37.52140170174826,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 37.91826804956082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 36.600360882243564,
            "drawdown_pct": -0.9555711407597367,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c8_p90_cap5",
        "variant": "ridge_a10_H20_c8_p90_cap5",
        "gain_pct": 23.968084276396,
        "max_drawdown_pct": 0.0,
        "capital_score": 23.968084276396,
        "stability_score": 16.468084276396,
        "n_trades": 5,
        "skipped_by_capacity": 11,
        "avg_trade_ret_pct": 4.395287740818259,
        "median_trade_ret_pct": 4.596867870630231,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.2,
        "max_open_trades": 5,
        "avg_exposure": 0.8400000000000001,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 292.7808365648718
    },
    {
      "name": "ridge_a100_H20_c8_p70_cap1",
      "variant": {
        "name": "ridge_a100_H20_c8_p70_cap1",
        "threshold": 0.0324655600715498,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p70_cap1",
        "variant": "ridge_a100_H20_c8_p70_cap1",
        "gain_pct": 1122.6699944200825,
        "max_drawdown_pct": -21.076805142535203,
        "capital_score": 1091.0547867062796,
        "stability_score": 1069.335060043919,
        "n_trades": 78,
        "skipped_by_capacity": 1893,
        "avg_trade_ret_pct": 3.4775607268524187,
        "median_trade_ret_pct": 3.4561849483114826,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -24.91221125625009,
        "month_gain_concentration": 0.192874386711899,
        "top_asset_trade_share": 0.5897435897435898,
        "long_counts": {
          "SOL": 23,
          "ETH": 8,
          "XRP": 46,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 78,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 63.70370120680917,
          "2024-10-31 00:00:00+00:00": 2.5645156901181565,
          "2024-11-30 00:00:00+00:00": 98.3349034913131,
          "2024-12-31 00:00:00+00:00": 45.2186045885735,
          "2025-01-31 00:00:00+00:00": 21.087157943561806,
          "2025-02-28 00:00:00+00:00": 122.6059698322972,
          "2025-03-31 00:00:00+00:00": 195.6595088785698,
          "2025-04-30 00:00:00+00:00": 207.77063221723563,
          "2025-05-31 00:00:00+00:00": 36.28729011602013,
          "2025-07-31 00:00:00+00:00": -20.62144818064496,
          "2025-08-31 00:00:00+00:00": 18.684819007552846,
          "2025-10-31 00:00:00+00:00": -24.91221125625009,
          "2025-11-30 00:00:00+00:00": 93.52023244530756,
          "2026-01-31 00:00:00+00:00": -1.4141054521595606,
          "2026-02-28 00:00:00+00:00": 7.739042102698818,
          "2026-03-31 00:00:00+00:00": 218.2167569388065
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p70_cap1",
        "variant": "ridge_a100_H20_c8_p70_cap1",
        "gain_pct": 246.13317057666762,
        "max_drawdown_pct": -16.316276552477483,
        "capital_score": 221.6587557479514,
        "stability_score": 221.6587557479514,
        "n_trades": 44,
        "skipped_by_capacity": 643,
        "avg_trade_ret_pct": 3.013932686230151,
        "median_trade_ret_pct": 3.570128841776151,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -2.6018989344477745,
        "month_gain_concentration": 0.24645109485602937,
        "top_asset_trade_share": 0.4772727272727273,
        "long_counts": {
          "XRP": 21,
          "SOL": 15,
          "ETH": 5,
          "BTC": 1,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 44,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 6.233815945143519,
          "2025-02-28 00:00:00+00:00": 29.836642261269006,
          "2025-03-31 00:00:00+00:00": 46.661681673488914,
          "2025-04-30 00:00:00+00:00": 20.56664118368795,
          "2025-05-31 00:00:00+00:00": 7.783134181608972,
          "2025-07-31 00:00:00+00:00": 1.4887730791680838,
          "2025-08-31 00:00:00+00:00": -2.6018989344477745,
          "2025-10-31 00:00:00+00:00": 8.156808564483072,
          "2025-11-30 00:00:00+00:00": 18.897383562062174,
          "2025-12-31 00:00:00+00:00": 5.535690636029045,
          "2026-01-31 00:00:00+00:00": 9.027080028361894,
          "2026-02-28 00:00:00+00:00": 60.15438338150295,
          "2026-03-31 00:00:00+00:00": 29.74040066804389
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.26619343889503,
            "drawdown_pct": -1.2661934388950247,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.1393355622129775,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.0802559078922656,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.7536181311457,
            "drawdown_pct": -12.099036587006228,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 6.233815945143519,
            "drawdown_pct": -7.317921263513149,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 10.461009495203896,
            "drawdown_pct": -3.629970473499422,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.9721525437650769,
            "drawdown_pct": -11.035944751617155,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 10.608349824650702,
            "drawdown_pct": -3.5014256415797917,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.62280013338814,
            "drawdown_pct": -2.6163838820217333,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 11.62280013338814,
            "drawdown_pct": -2.6163838820217333,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 15.504844845678306,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 21.871583499161872,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 30.862645461333273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 30.862645461333273,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 36.070458206412525,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 36.070458206412525,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 56.562146259985894,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 65.91594422891083,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 79.46768366187075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 69.55854257938017,
            "drawdown_pct": -5.52140690752998,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 69.55854257938017,
            "drawdown_pct": -5.52140690752998,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 75.04350544208066,
            "drawdown_pct": -2.4651670593384023,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 79.78507661884208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 79.78507661884208,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 82.73213987990144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 82.73213987990144,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 90.2402154455078,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 102.91846472357628,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 102.91846472357628,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 103.29878106358939,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 111.08191524519836,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 106.20881016912483,
            "drawdown_pct": -2.3086322058489928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 112.57068832436644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 112.57068832436644,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 109.96878938991867,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 110.80697773859151,
            "drawdown_pct": -0.8297054498330625,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 104.10004447864128,
            "drawdown_pct": -3.9848597718231127,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 104.10004447864128,
            "drawdown_pct": -3.9848597718231127,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 113.94703548797142,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 109.03421550393958,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 109.03421550393958,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 118.12559795440174,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 126.11430297502159,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 137.02298151646391,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 142.55867215249296,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 151.58575218085485,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 159.8393829729307,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 153.61710733424854,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 210.89496264012973,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 211.7401355623578,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 211.7401355623578,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 241.4805362304017,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p70_cap1",
        "variant": "ridge_a100_H20_c8_p70_cap1",
        "gain_pct": 37.230286243878766,
        "max_drawdown_pct": -2.378518469735913,
        "capital_score": 33.662508539274896,
        "stability_score": 21.992913822078435,
        "n_trades": 5,
        "skipped_by_capacity": 52,
        "avg_trade_ret_pct": 6.877824167325267,
        "median_trade_ret_pct": 3.2806431685935245,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.6667837886878584,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 23.594592120873386,
          "2026-03-31 00:00:00+00:00": 11.791079398382351
        }
      },
      "selection_score": 968.5171507085331
    },
    {
      "name": "ridge_a100_H20_c8_p70_cap2",
      "variant": {
        "name": "ridge_a100_H20_c8_p70_cap2",
        "threshold": 0.0324655600715498,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p70_cap2",
        "variant": "ridge_a100_H20_c8_p70_cap2",
        "gain_pct": 1302.3255209433325,
        "max_drawdown_pct": -15.968136720429825,
        "capital_score": 1278.3733158626878,
        "stability_score": 1252.666984039899,
        "n_trades": 147,
        "skipped_by_capacity": 1824,
        "avg_trade_ret_pct": 1.8670465925044861,
        "median_trade_ret_pct": 1.7389120805297653,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -30.2471481493194,
        "month_gain_concentration": 0.20090981757258905,
        "top_asset_trade_share": 0.5986394557823129,
        "long_counts": {
          "SOL": 43,
          "XRP": 88,
          "ETH": 13,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 147,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9461538461538461,
        "max_open_trades": 2,
        "avg_exposure": 0.9730769230769231,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 56.60908658188387,
          "2024-10-31 00:00:00+00:00": 2.47502804725616,
          "2024-11-30 00:00:00+00:00": 116.91409026148855,
          "2024-12-31 00:00:00+00:00": 81.39376440349281,
          "2025-01-31 00:00:00+00:00": 25.297110761650856,
          "2025-02-28 00:00:00+00:00": 124.33773307108737,
          "2025-03-31 00:00:00+00:00": 225.41485750891553,
          "2025-04-30 00:00:00+00:00": 237.073533511268,
          "2025-05-31 00:00:00+00:00": 41.48867777299154,
          "2025-07-31 00:00:00+00:00": -11.67018061019462,
          "2025-08-31 00:00:00+00:00": 21.512825999464326,
          "2025-10-31 00:00:00+00:00": -30.2471481493194,
          "2025-11-30 00:00:00+00:00": 108.38019174655676,
          "2026-01-31 00:00:00+00:00": -1.6183922270445237,
          "2026-02-28 00:00:00+00:00": 9.31103281696187,
          "2026-03-31 00:00:00+00:00": 264.0466480109908
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p70_cap2",
        "variant": "ridge_a100_H20_c8_p70_cap2",
        "gain_pct": 254.2192461341765,
        "max_drawdown_pct": -11.618361621377392,
        "capital_score": 236.7917037021104,
        "stability_score": 236.7917037021104,
        "n_trades": 81,
        "skipped_by_capacity": 606,
        "avg_trade_ret_pct": 1.6123172392810667,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.9771174379114882,
        "month_gain_concentration": 0.257024155541328,
        "top_asset_trade_share": 0.48148148148148145,
        "long_counts": {
          "XRP": 39,
          "SOL": 27,
          "ETH": 10,
          "BTC": 2,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 81,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.8934426229508197,
        "max_open_trades": 2,
        "avg_exposure": 0.9467213114754098,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.1725526585235144,
          "2025-02-28 00:00:00+00:00": 26.204505888191136,
          "2025-03-31 00:00:00+00:00": 44.29477976942614,
          "2025-04-30 00:00:00+00:00": 34.89596725905744,
          "2025-05-31 00:00:00+00:00": 7.98397684971664,
          "2025-07-31 00:00:00+00:00": 1.5925980918489415,
          "2025-08-31 00:00:00+00:00": 0.9771174379114882,
          "2025-10-31 00:00:00+00:00": 8.265513285691213,
          "2025-11-30 00:00:00+00:00": 15.333582964942707,
          "2025-12-31 00:00:00+00:00": 5.654874524056709,
          "2026-01-31 00:00:00+00:00": 9.254435895035215,
          "2026-02-28 00:00:00+00:00": 64.11259920708858,
          "2026-03-31 00:00:00+00:00": 29.699417578809914
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6330967194475079,
            "drawdown_pct": -0.6330967194475123,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.525833484002135,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 8.702564529043784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.245638416713973,
            "drawdown_pct": -4.100111282231045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -3.926892509651637,
            "drawdown_pct": -11.618361621377392,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": -1.5060911170762523,
            "drawdown_pct": -9.391365963028797,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.1725526585235144,
            "drawdown_pct": -6.927170396709781,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.1854520269416327,
            "drawdown_pct": -5.075420737316694,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -0.7794155119716777,
            "drawdown_pct": -8.72286691863835,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 0.07777687385727461,
            "drawdown_pct": -7.934300071533351,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 5.297603205843714,
            "drawdown_pct": -3.132365218752786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 6.265560061719981,
            "drawdown_pct": -2.2419015391975106,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 6.265560061719981,
            "drawdown_pct": -2.2419015391975106,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 8.590447684307748,
            "drawdown_pct": -0.10314093804666413,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 13.631382087283527,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 22.16914047801869,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 22.16914047801869,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 27.37705854671465,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 27.37705854671465,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 47.28175654631082,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 56.21252713403641,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 69.23224471433568,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 60.0172239419953,
            "drawdown_pct": -5.445192071933658,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 60.0172239419953,
            "drawdown_pct": -5.445192071933658,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 64.40834532263395,
            "drawdown_pct": -2.8504611516821043,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 68.89199068902283,
            "drawdown_pct": -0.2010574438028656,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 68.89199068902283,
            "drawdown_pct": -0.2010574438028656,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 71.67183831614079,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 71.67183831614079,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 78.79792426113718,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 90.91214622609635,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 90.91214622609635,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 106.56780557519824,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 114.55178242491488,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 109.62715873688137,
            "drawdown_pct": -2.2953077491942753,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 116.14438051676382,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 116.14438051676382,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 117.1214979546753,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 117.98910467643731,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 111.1088319509492,
            "drawdown_pct": -3.1562461507883777,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 111.1088319509492,
            "drawdown_pct": -3.1562461507883777,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 121.4168160180732,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 116.36165675524325,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 116.36165675524325,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 125.38701124036652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 129.51433596787237,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 140.72059420530923,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 146.37546872936593,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 155.62990462440115,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 164.08499081288784,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 157.79890647830194,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 219.3084812280356,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 219.74250383148973,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 219.74250383148973,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 249.44192141029964,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p70_cap2",
        "variant": "ridge_a100_H20_c8_p70_cap2",
        "gain_pct": 34.00550618881027,
        "max_drawdown_pct": -2.364375094458726,
        "capital_score": 30.458943547122182,
        "stability_score": 22.60393692878086,
        "n_trades": 9,
        "skipped_by_capacity": 48,
        "avg_trade_ret_pct": 3.402802796361728,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8075335980669862,
        "top_asset_trade_share": 0.5555555555555556,
        "long_counts": {
          "XRP": 5,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 9,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9230769230769231,
        "max_open_trades": 2,
        "avg_exposure": 0.9615384615384616,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 25.021581857059658,
          "2026-03-31 00:00:00+00:00": 5.96360800619118
        }
      },
      "selection_score": 1263.3733158626878
    },
    {
      "name": "ridge_a100_H20_c8_p70_cap3",
      "variant": {
        "name": "ridge_a100_H20_c8_p70_cap3",
        "threshold": 0.0324655600715498,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p70_cap3",
        "variant": "ridge_a100_H20_c8_p70_cap3",
        "gain_pct": 1218.0051491236147,
        "max_drawdown_pct": -15.856728070706428,
        "capital_score": 1194.220057017555,
        "stability_score": 1169.6058579194573,
        "n_trades": 213,
        "skipped_by_capacity": 1758,
        "avg_trade_ret_pct": 1.2419130651454018,
        "median_trade_ret_pct": 1.1622487430175694,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -28.945185013590503,
        "month_gain_concentration": 0.20557526939825801,
        "top_asset_trade_share": 0.6056338028169014,
        "long_counts": {
          "SOL": 61,
          "XRP": 129,
          "ETH": 18,
          "BTC": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8653846153846154,
        "max_open_trades": 3,
        "avg_exposure": 0.9551282051282052,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 47.01545163055266,
          "2024-10-31 00:00:00+00:00": 2.31265456387942,
          "2024-11-30 00:00:00+00:00": 118.71023690769411,
          "2024-12-31 00:00:00+00:00": 75.06663653078465,
          "2025-01-31 00:00:00+00:00": 19.142600140092895,
          "2025-02-28 00:00:00+00:00": 110.63237536676786,
          "2025-03-31 00:00:00+00:00": 219.8649574116139,
          "2025-04-30 00:00:00+00:00": 226.8992553370299,
          "2025-05-31 00:00:00+00:00": 26.144745412991597,
          "2025-07-31 00:00:00+00:00": -7.27826248394183,
          "2025-08-31 00:00:00+00:00": 20.239677837066097,
          "2025-10-31 00:00:00+00:00": -28.945185013590503,
          "2025-11-30 00:00:00+00:00": 102.1939317514707,
          "2026-01-31 00:00:00+00:00": -1.519568103108213,
          "2026-02-28 00:00:00+00:00": 8.885419215276443,
          "2026-03-31 00:00:00+00:00": 252.84865978090647
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p70_cap3",
        "variant": "ridge_a100_H20_c8_p70_cap3",
        "gain_pct": 222.67146863090636,
        "max_drawdown_pct": -7.18673912006802,
        "capital_score": 211.89135995080434,
        "stability_score": 211.89135995080434,
        "n_trades": 114,
        "skipped_by_capacity": 573,
        "avg_trade_ret_pct": 1.0508558933991383,
        "median_trade_ret_pct": 1.093547722864508,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -0.21148439547286557,
        "month_gain_concentration": 0.254849775014151,
        "top_asset_trade_share": 0.4649122807017544,
        "long_counts": {
          "XRP": 53,
          "SOL": 39,
          "ETH": 15,
          "BTC": 3,
          "BNB": 4
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 114,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7295081967213113,
        "max_open_trades": 3,
        "avg_exposure": 0.9098360655737705,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.998525519088446,
          "2025-02-28 00:00:00+00:00": 20.03860375221899,
          "2025-03-31 00:00:00+00:00": 31.753873302469884,
          "2025-04-30 00:00:00+00:00": 36.416623080272274,
          "2025-05-31 00:00:00+00:00": 7.549518777091947,
          "2025-07-31 00:00:00+00:00": 0.9937081708443145,
          "2025-08-31 00:00:00+00:00": -0.21148439547286557,
          "2025-10-31 00:00:00+00:00": 7.7571205638400045,
          "2025-11-30 00:00:00+00:00": 12.755452514753244,
          "2025-12-31 00:00:00+00:00": 4.55190396069807,
          "2026-01-31 00:00:00+00:00": 8.42531588694581,
          "2026-02-28 00:00:00+00:00": 55.19248766874398,
          "2026-03-31 00:00:00+00:00": 29.135579354100855
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.42206447963167193,
            "drawdown_pct": -0.4220644796316675,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.401694541338685,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.156235712680299,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.2677988273630802,
            "drawdown_pct": -2.72093001972582,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.893102927230828,
            "drawdown_pct": -0.2478731312229865,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.893102927230828,
            "drawdown_pct": -0.2478731312229865,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -1.4729360076745195,
            "drawdown_pct": -7.18673912006802,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.18215395419261426,
            "drawdown_pct": -5.627631498404839,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.998525519088446,
            "drawdown_pct": -3.9165953518218166,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.351413973528736,
            "drawdown_pct": -2.6421639014622023,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.7039175915940348,
            "drawdown_pct": -5.136126092341264,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.34290676523443153,
            "drawdown_pct": -6.1222427813898195,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.76060901229512,
            "drawdown_pct": -2.256698991163475,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.4732264344423953,
            "drawdown_pct": -2.527415615508133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.4732264344423953,
            "drawdown_pct": -2.527415615508133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 6.197674262186737,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 9.472307958199963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 16.938651841553366,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.938651841553366,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 22.037129271307435,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 22.037129271307435,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 33.50030028126034,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 41.63616509915457,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 53.522599079261056,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 45.201043916640145,
            "drawdown_pct": -5.420410553578914,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 45.201043916640145,
            "drawdown_pct": -5.420410553578914,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 47.27191397536919,
            "drawdown_pct": -4.071508130646451,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 51.2973384774281,
            "drawdown_pct": -1.4494677755449548,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 51.2973384774281,
            "drawdown_pct": -1.4494677755449548,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 53.79100257377732,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 53.79100257377732,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 60.196887389656496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 71.11186704488176,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 71.11186704488176,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 90.2076256540496,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 97.75714443114154,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 94.72519882066791,
            "drawdown_pct": -1.5331661564972343,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 98.75085260198586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 98.75085260198586,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 98.53936820651299,
            "drawdown_pct": -0.10640678653911495,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 99.06809473806814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 92.80157006499206,
            "drawdown_pct": -3.147930200126503,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 92.80157006499206,
            "drawdown_pct": -3.147930200126503,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 102.25385051424126,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 97.64499671402254,
            "drawdown_pct": -2.27874712323175,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 97.64499671402254,
            "drawdown_pct": -2.27874712323175,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 106.296488770353,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 108.81497935716999,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 119.05194128510624,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 123.60384524580431,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 132.02916113275012,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 139.72475477126895,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 130.8115610037431,
            "drawdown_pct": -3.7180948525863733,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 186.9616122258903,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 187.2216488014941,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 187.2216488014941,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 216.35722815559495,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p70_cap3",
        "variant": "ridge_a100_H20_c8_p70_cap3",
        "gain_pct": 33.01172992163279,
        "max_drawdown_pct": -1.5793930352562824,
        "capital_score": 30.642640368748367,
        "stability_score": 20.446974674198835,
        "n_trades": 12,
        "skipped_by_capacity": 45,
        "avg_trade_ret_pct": 2.4521536006794022,
        "median_trade_ret_pct": 1.0846433970016878,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8678266277819813,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 7,
          "ETH": 3,
          "BTC": 1,
          "SOL": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 12,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6923076923076925,
        "max_open_trades": 3,
        "avg_exposure": 0.8974358974358974,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 26.38962867956029,
          "2026-03-31 00:00:00+00:00": 4.019243132782847
        }
      },
      "selection_score": 1179.220057017555
    },
    {
      "name": "ridge_a100_H20_c8_p70_cap5",
      "variant": {
        "name": "ridge_a100_H20_c8_p70_cap5",
        "threshold": 0.0324655600715498,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p70_cap5",
        "variant": "ridge_a100_H20_c8_p70_cap5",
        "gain_pct": 945.2749396887648,
        "max_drawdown_pct": -15.769177306022364,
        "capital_score": 921.6211737297313,
        "stability_score": 903.1748250363872,
        "n_trades": 337,
        "skipped_by_capacity": 1634,
        "avg_trade_ret_pct": 0.707039418804218,
        "median_trade_ret_pct": 0.695564832211906,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -23.58729824824013,
        "month_gain_concentration": 0.21301466503459862,
        "top_asset_trade_share": 0.5786350148367952,
        "long_counts": {
          "SOL": 103,
          "XRP": 195,
          "ETH": 23,
          "BNB": 7,
          "BTC": 9
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 337,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.6038461538461535,
        "max_open_trades": 5,
        "avg_exposure": 0.9207692307692307,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 35.69973479712749,
          "2024-10-31 00:00:00+00:00": 1.1619138568827054,
          "2024-11-30 00:00:00+00:00": 86.72289170011405,
          "2024-12-31 00:00:00+00:00": 67.02973646198953,
          "2025-01-31 00:00:00+00:00": 12.553578604633287,
          "2025-02-28 00:00:00+00:00": 82.77315741005867,
          "2025-03-31 00:00:00+00:00": 179.08526419060803,
          "2025-04-30 00:00:00+00:00": 179.35666004201903,
          "2025-05-31 00:00:00+00:00": 12.661732285425046,
          "2025-07-31 00:00:00+00:00": -3.495475409850087,
          "2025-08-31 00:00:00+00:00": 16.27419937151558,
          "2025-10-31 00:00:00+00:00": -23.58729824824013,
          "2025-11-30 00:00:00+00:00": 82.8345975349805,
          "2026-01-31 00:00:00+00:00": -1.2206461580800578,
          "2026-02-28 00:00:00+00:00": -6.2092176942283,
          "2026-03-31 00:00:00+00:00": 204.66935046028038
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p70_cap5",
        "variant": "ridge_a100_H20_c8_p70_cap5",
        "gain_pct": 187.96432372481593,
        "max_drawdown_pct": -5.03806041053384,
        "capital_score": 180.40723310901518,
        "stability_score": 180.40723310901518,
        "n_trades": 169,
        "skipped_by_capacity": 518,
        "avg_trade_ret_pct": 0.6343769640870021,
        "median_trade_ret_pct": 0.6469698051494714,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.5505435106966274,
        "month_gain_concentration": 0.29152636892659706,
        "top_asset_trade_share": 0.4437869822485207,
        "long_counts": {
          "XRP": 75,
          "SOL": 57,
          "ETH": 25,
          "BNB": 7,
          "BTC": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 169,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.237704918032787,
        "max_open_trades": 5,
        "avg_exposure": 0.8475409836065573,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.6482914934480988,
          "2025-02-28 00:00:00+00:00": 14.02180636535769,
          "2025-03-31 00:00:00+00:00": 18.665261600210712,
          "2025-04-30 00:00:00+00:00": 35.929447055122694,
          "2025-05-31 00:00:00+00:00": 8.154430153457525,
          "2025-07-31 00:00:00+00:00": 0.5505435106966274,
          "2025-08-31 00:00:00+00:00": 1.3885931592196812,
          "2025-10-31 00:00:00+00:00": 7.2750940840206795,
          "2025-11-30 00:00:00+00:00": 11.12993105170446,
          "2025-12-31 00:00:00+00:00": 4.130193827346233,
          "2026-01-31 00:00:00+00:00": 7.365621837705646,
          "2026-02-28 00:00:00+00:00": 52.744837597766065,
          "2026-03-31 00:00:00+00:00": 15.922420857051236
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.25323868777900316,
            "drawdown_pct": -0.2532386877790005,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.036233788448385,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 3.667133600210491,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.980916337822194,
            "drawdown_pct": -1.6265688109899368,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.5364694965616366,
            "drawdown_pct": -0.12604197599670464,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.5364694965616366,
            "drawdown_pct": -0.12604197599670464,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 1.5097794501317026,
            "drawdown_pct": -2.081039645987093,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 2.5328962072432972,
            "drawdown_pct": -1.0941147435804988,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.6482914934480988,
            "drawdown_pct": -0.018175583821056218,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.473153869665708,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.86741504377936,
            "drawdown_pct": -1.5369870310315004,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.5927791263757882,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.293954136578435,
            "drawdown_pct": -0.17152706360413772,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.5695451709595147,
            "drawdown_pct": -0.8649195178251023,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.5695451709595147,
            "drawdown_pct": -0.8649195178251023,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.738541588913833,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 7.689121642034294,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 14.384176920226764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 14.384176920226764,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 17.67009785880579,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.67009785880579,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 23.647355715563165,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.62323024699768,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 34.94617841847662,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 28.14750842804699,
            "drawdown_pct": -5.03806041053384,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 28.14750842804699,
            "drawdown_pct": -5.03806041053384,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 29.243854678227336,
            "drawdown_pct": -4.22562817789921,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 32.71133650942056,
            "drawdown_pct": -1.656098701902975,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 32.71133650942056,
            "drawdown_pct": -1.656098701902975,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 36.3353594590165,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 36.3353594590165,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 40.72361301906159,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.58196401798753,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 51.58196401798753,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 72.2648065141392,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 80.41923666759672,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 78.75699640757256,
            "drawdown_pct": -0.9213209692748414,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 80.96978017829335,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 80.96978017829335,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 82.35837333751303,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 82.64967697693461,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 76.91206694717022,
            "drawdown_pct": -3.141319560334588,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 76.91206694717022,
            "drawdown_pct": -3.141319560334588,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 85.61366345344575,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 81.39042610349497,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 81.39042610349497,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 89.63346742153371,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 91.02250735767603,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 100.76339847323817,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 104.8935923005844,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 112.25921413829005,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 119.31466168449379,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 112.3656851727039,
            "drawdown_pct": -3.1684961043720317,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 164.86004648259933,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 165.0040517360561,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 165.0040517360561,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 180.92647259310735,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p70_cap5",
        "variant": "ridge_a100_H20_c8_p70_cap5",
        "gain_pct": 27.728506525908358,
        "max_drawdown_pct": -0.9491444478500255,
        "capital_score": 26.30478985413332,
        "stability_score": 15.764918139076814,
        "n_trades": 16,
        "skipped_by_capacity": 41,
        "avg_trade_ret_pct": 1.5577135985028878,
        "median_trade_ret_pct": 0.6507860382010127,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9065948686022602,
        "top_asset_trade_share": 0.5625,
        "long_counts": {
          "XRP": 9,
          "ETH": 4,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 16,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.076923076923077,
        "max_open_trades": 5,
        "avg_exposure": 0.8153846153846154,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 22.72858113449965,
          "2026-03-31 00:00:00+00:00": 2.3416921724090543
        }
      },
      "selection_score": 906.6211737297313
    },
    {
      "name": "ridge_a100_H20_c8_p80_cap1",
      "variant": {
        "name": "ridge_a100_H20_c8_p80_cap1",
        "threshold": 0.05270825013277534,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p80_cap1",
        "variant": "ridge_a100_H20_c8_p80_cap1",
        "gain_pct": 920.7248264122288,
        "max_drawdown_pct": -16.316276552477472,
        "capital_score": 896.2504115835126,
        "stability_score": 883.6040362953271,
        "n_trades": 65,
        "skipped_by_capacity": 1249,
        "avg_trade_ret_pct": 3.8276892248319254,
        "median_trade_ret_pct": 3.4867462290527085,
        "positive_month_rate": 0.875,
        "worst_month_pct": -16.68483682664703,
        "month_gain_concentration": 0.2011869405110633,
        "top_asset_trade_share": 0.6153846153846154,
        "long_counts": {
          "SOL": 19,
          "ETH": 5,
          "XRP": 40,
          "BTC": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 65,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 26.326706584560867,
          "2024-10-31 00:00:00+00:00": 4.157656682096956,
          "2024-11-30 00:00:00+00:00": 93.27524778554115,
          "2024-12-31 00:00:00+00:00": 71.06556808339678,
          "2025-01-31 00:00:00+00:00": 11.855114854705448,
          "2025-02-28 00:00:00+00:00": 92.77356479810595,
          "2025-03-31 00:00:00+00:00": 144.35766159144987,
          "2025-04-30 00:00:00+00:00": 111.13935650345036,
          "2025-05-31 00:00:00+00:00": 67.76436482455176,
          "2025-07-31 00:00:00+00:00": -16.68483682664703,
          "2025-10-31 00:00:00+00:00": 15.117907992953633,
          "2025-11-30 00:00:00+00:00": 34.79245176748918,
          "2026-01-31 00:00:00+00:00": 44.23761951790118,
          "2026-02-28 00:00:00+00:00": 6.460804994745104,
          "2026-03-31 00:00:00+00:00": 182.1744725585164
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p80_cap1",
        "variant": "ridge_a100_H20_c8_p80_cap1",
        "gain_pct": 125.80937188857274,
        "max_drawdown_pct": -19.67332306666405,
        "capital_score": 96.29938728857667,
        "stability_score": 96.29938728857667,
        "n_trades": 35,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.5197810596186434,
        "median_trade_ret_pct": 3.0851631169511307,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -4.0802559078922656,
        "month_gain_concentration": 0.32354327453255244,
        "top_asset_trade_share": 0.4857142857142857,
        "long_counts": {
          "XRP": 17,
          "SOL": 13,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 35,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -4.0802559078922656,
          "2025-02-28 00:00:00+00:00": 21.05661720901591,
          "2025-03-31 00:00:00+00:00": 14.903683987200154,
          "2025-04-30 00:00:00+00:00": 20.24425223473105,
          "2025-05-31 00:00:00+00:00": 0.2851162714041209,
          "2025-07-31 00:00:00+00:00": 1.0749524989168435,
          "2025-10-31 00:00:00+00:00": 1.7864336127991294,
          "2025-11-30 00:00:00+00:00": 14.569781718994307,
          "2025-12-31 00:00:00+00:00": 3.966640328734826,
          "2026-01-31 00:00:00+00:00": 6.468421385069121,
          "2026-02-28 00:00:00+00:00": 1.4555826550334245,
          "2026-03-31 00:00:00+00:00": 41.04287355240032
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.26619343889503,
            "drawdown_pct": -1.2661934388950247,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.1393355622129775,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.621744994722107,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.845528152911072,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -4.0802559078922656,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.2634738414457871,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -7.9281612027373995,
            "drawdown_pct": -19.67332306666405,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": -0.13043854972396218,
            "drawdown_pct": -12.870318406970116,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.7855203955755456,
            "drawdown_pct": -12.071203941087848,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.290663574742453,
            "drawdown_pct": -9.013195027222242,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.984695205035749,
            "drawdown_pct": -2.3006540249476903,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.976361301123646,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 14.117325982840384,
            "drawdown_pct": -2.444113739290843,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.935260186583804,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.813051871538818,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.59033098955291,
            "drawdown_pct": -5.521406907529968,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 26.331062725477466,
            "drawdown_pct": -3.426255317751292,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 29.7531132850566,
            "drawdown_pct": -0.8102697485592669,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 29.7531132850566,
            "drawdown_pct": -0.8102697485592669,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 31.8800452883238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 31.8800452883238,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 37.29871628003383,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 52.12429752305485,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 52.40941379445897,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 48.89084098285443,
            "drawdown_pct": -2.3086322058489928,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 53.484366293375814,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 53.484366293375814,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 51.6056933104679,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 51.6056933104679,
            "drawdown_pct": -1.22401585795191,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 58.92004692957093,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 55.27079990617494,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 55.27079990617494,
            "drawdown_pct": -2.296278596628676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 62.0238868203582,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 62.0238868203582,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 69.84058162516925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 73.80722195390408,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 80.2756433389732,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 86.18984391681127,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 81.73122599400662,
            "drawdown_pct": -2.394662259235114,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 122.77409954640694,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p80_cap1",
        "variant": "ridge_a100_H20_c8_p80_cap1",
        "gain_pct": 25.27855469942081,
        "max_drawdown_pct": -2.378518469735913,
        "capital_score": 21.71077699481694,
        "stability_score": 4.083958009077239,
        "n_trades": 4,
        "skipped_by_capacity": 31,
        "avg_trade_ret_pct": 6.212248793936798,
        "median_trade_ret_pct": 2.321566026165436,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.965072759429588,
        "top_asset_trade_share": 0.75,
        "long_counts": {
          "XRP": 3,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.8240939951664927,
          "2026-03-31 00:00:00+00:00": 22.770498125706894
        }
      },
      "selection_score": 781.2504115835126
    },
    {
      "name": "ridge_a100_H20_c8_p80_cap2",
      "variant": {
        "name": "ridge_a100_H20_c8_p80_cap2",
        "threshold": 0.05270825013277534,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p80_cap2",
        "variant": "ridge_a100_H20_c8_p80_cap2",
        "gain_pct": 792.0607000807629,
        "max_drawdown_pct": -15.968136720429815,
        "capital_score": 768.1084950001182,
        "stability_score": 765.2811267921933,
        "n_trades": 124,
        "skipped_by_capacity": 1190,
        "avg_trade_ret_pct": 1.8287454182829426,
        "median_trade_ret_pct": 1.7133900868859253,
        "positive_month_rate": 0.875,
        "worst_month_pct": -7.182206917602343,
        "month_gain_concentration": 0.21558195816119086,
        "top_asset_trade_share": 0.6048387096774194,
        "long_counts": {
          "SOL": 37,
          "ETH": 9,
          "XRP": 75,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 124,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9425837320574162,
        "max_open_trades": 2,
        "avg_exposure": 0.9712918660287081,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.733823146962905,
          "2024-10-31 00:00:00+00:00": 3.8353208453220446,
          "2024-11-30 00:00:00+00:00": 90.43909185798458,
          "2024-12-31 00:00:00+00:00": 72.25648095502058,
          "2025-01-31 00:00:00+00:00": 13.605794158666924,
          "2025-02-28 00:00:00+00:00": 76.25755121479864,
          "2025-03-31 00:00:00+00:00": 96.74986745093406,
          "2025-04-30 00:00:00+00:00": 80.3970864140145,
          "2025-05-31 00:00:00+00:00": 74.92949963497756,
          "2025-07-31 00:00:00+00:00": -7.182206917602343,
          "2025-10-31 00:00:00+00:00": 13.239689501939097,
          "2025-11-30 00:00:00+00:00": 30.676663824180537,
          "2026-01-31 00:00:00+00:00": 39.1252087291698,
          "2026-02-28 00:00:00+00:00": 5.923023099220586,
          "2026-03-31 00:00:00+00:00": 167.96787490554516
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p80_cap2",
        "variant": "ridge_a100_H20_c8_p80_cap2",
        "gain_pct": 130.3846880768727,
        "max_drawdown_pct": -10.991169450564763,
        "capital_score": 113.89793390102554,
        "stability_score": 113.89793390102554,
        "n_trades": 65,
        "skipped_by_capacity": 370,
        "avg_trade_ret_pct": 1.3317819421297747,
        "median_trade_ret_pct": 1.3543979151886776,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -2.6936730139691036,
        "month_gain_concentration": 0.33685396366801484,
        "top_asset_trade_share": 0.4461538461538462,
        "long_counts": {
          "XRP": 29,
          "SOL": 25,
          "ETH": 9,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 65,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9263157894736842,
        "max_open_trades": 2,
        "avg_exposure": 0.9631578947368421,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.6936730139691036,
          "2025-02-28 00:00:00+00:00": 20.0426018731671,
          "2025-03-31 00:00:00+00:00": 13.21381144646,
          "2025-04-30 00:00:00+00:00": 20.49947525208799,
          "2025-05-31 00:00:00+00:00": 0.14156284154194054,
          "2025-07-31 00:00:00+00:00": 1.1223717008425638,
          "2025-10-31 00:00:00+00:00": 4.495940450635402,
          "2025-11-30 00:00:00+00:00": 14.518103473920632,
          "2025-12-31 00:00:00+00:00": 4.02502869077648,
          "2026-01-31 00:00:00+00:00": 6.587125821449092,
          "2026-02-28 00:00:00+00:00": 1.5438529458360506,
          "2026-03-31 00:00:00+00:00": 43.781307979850766
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6330967194475079,
            "drawdown_pct": -0.6330967194475123,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.0934104903145823,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.212903574290053,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.7053866507379212,
            "drawdown_pct": -5.136990735201808,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.583762653491462,
            "drawdown_pct": -1.519538102677842,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.583762653491462,
            "drawdown_pct": -1.519538102677842,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.6936730139691036,
            "drawdown_pct": -9.240097281195903,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.7576949350689972,
            "drawdown_pct": -7.434364935220749,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -4.57104833043077,
            "drawdown_pct": -10.991169450564763,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -3.746612844781481,
            "drawdown_pct": -10.222199057856363,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.2737421282209311,
            "drawdown_pct": -5.539595746470716,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 2.2047093110315643,
            "drawdown_pct": -4.671260731025917,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.440753270235177,
            "drawdown_pct": -2.5856498720175036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 12.287968548165338,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.348928859197997,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 14.498312724891804,
            "drawdown_pct": -2.4291795093643542,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 21.441183231098336,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 31.56284208455,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 24.398992637751476,
            "drawdown_pct": -5.445192071933668,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 25.038587021548636,
            "drawdown_pct": -4.95904083525992,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 28.448564052938423,
            "drawdown_pct": -2.3671410424610295,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 28.448564052938423,
            "drawdown_pct": -2.3671410424610295,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 30.562740305657996,
            "drawdown_pct": -0.7601703969341678,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 30.562740305657996,
            "drawdown_pct": -0.7601703969341678,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.982390481005865,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 51.062215557745986,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 51.20377839928793,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.73318635661454,
            "drawdown_pct": -2.2953077491942753,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 52.32615010013049,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 52.32615010013049,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 53.01476637207293,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 53.01476637207293,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 60.48614385648108,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 56.82209055076589,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 56.82209055076589,
            "drawdown_pct": -2.28309635814532,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 63.36379937082677,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 63.36379937082677,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 71.34019402468653,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 75.365222715463,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 81.9523485369121,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 87.9705129270979,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 83.49620148274815,
            "drawdown_pct": -2.3803262408955916,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 127.27750946259891,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p80_cap2",
        "variant": "ridge_a100_H20_c8_p80_cap2",
        "gain_pct": 25.87328443459718,
        "max_drawdown_pct": -2.364375094458726,
        "capital_score": 22.32672179290909,
        "stability_score": 10.121267155717213,
        "n_trades": 7,
        "skipped_by_capacity": 28,
        "avg_trade_ret_pct": 3.4630791043010962,
        "median_trade_ret_pct": 1.6403215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9625038997733895,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 4,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 7,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9090909090909092,
        "max_open_trades": 2,
        "avg_exposure": 0.9545454545454546,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.9382117411406483,
          "2026-03-31 00:00:00+00:00": 24.08337011591901
        }
      },
      "selection_score": 753.1084950001182
    },
    {
      "name": "ridge_a100_H20_c8_p80_cap3",
      "variant": {
        "name": "ridge_a100_H20_c8_p80_cap3",
        "threshold": 0.05270825013277534,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p80_cap3",
        "variant": "ridge_a100_H20_c8_p80_cap3",
        "gain_pct": 632.9005089251009,
        "max_drawdown_pct": -16.057119184950096,
        "capital_score": 608.8148301476757,
        "stability_score": 606.8402538764892,
        "n_trades": 177,
        "skipped_by_capacity": 1137,
        "avg_trade_ret_pct": 1.1525506260824636,
        "median_trade_ret_pct": 1.1396715373267556,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -3.9132089747838563,
        "month_gain_concentration": 0.22534248341399912,
        "top_asset_trade_share": 0.615819209039548,
        "long_counts": {
          "SOL": 53,
          "ETH": 11,
          "XRP": 109,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 177,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8229665071770333,
        "max_open_trades": 3,
        "avg_exposure": 0.9409888357256778,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 9.794475635431425,
          "2024-10-31 00:00:00+00:00": 1.7356240853391682,
          "2024-11-30 00:00:00+00:00": 76.13783503075994,
          "2024-12-31 00:00:00+00:00": 68.17409080652607,
          "2025-01-31 00:00:00+00:00": -1.4719776834482161,
          "2025-02-28 00:00:00+00:00": 61.32149733151928,
          "2025-03-31 00:00:00+00:00": 72.51629026366373,
          "2025-04-30 00:00:00+00:00": 65.31339880519937,
          "2025-05-31 00:00:00+00:00": 54.98882179235386,
          "2025-07-31 00:00:00+00:00": -3.9132089747838563,
          "2025-10-31 00:00:00+00:00": 10.882005029838524,
          "2025-11-30 00:00:00+00:00": 25.271841273260975,
          "2026-01-31 00:00:00+00:00": 32.266002200256594,
          "2026-02-28 00:00:00+00:00": 4.940897438237926,
          "2026-03-31 00:00:00+00:00": 140.60105270277347
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p80_cap3",
        "variant": "ridge_a100_H20_c8_p80_cap3",
        "gain_pct": 122.76336049317035,
        "max_drawdown_pct": -6.531361206096575,
        "capital_score": 112.9663186840255,
        "stability_score": 112.9663186840255,
        "n_trades": 89,
        "skipped_by_capacity": 346,
        "avg_trade_ret_pct": 0.9219292546680866,
        "median_trade_ret_pct": 1.028387705650377,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -0.9366746444321166,
        "month_gain_concentration": 0.3549590105960648,
        "top_asset_trade_share": 0.4606741573033708,
        "long_counts": {
          "XRP": 41,
          "SOL": 32,
          "ETH": 13,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 89,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.778947368421053,
        "max_open_trades": 3,
        "avg_exposure": 0.9263157894736842,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.2437118745733784,
          "2025-02-28 00:00:00+00:00": 14.836095530425567,
          "2025-03-31 00:00:00+00:00": 13.948362762456725,
          "2025-04-30 00:00:00+00:00": 20.41592742188587,
          "2025-05-31 00:00:00+00:00": 0.09336431804300105,
          "2025-07-31 00:00:00+00:00": 0.7514095036724768,
          "2025-10-31 00:00:00+00:00": 3.6115173712921376,
          "2025-11-30 00:00:00+00:00": 14.611747778205228,
          "2025-12-31 00:00:00+00:00": 3.501685752409429,
          "2026-01-31 00:00:00+00:00": 6.481421588767944,
          "2026-02-28 00:00:00+00:00": -0.9366746444321166,
          "2026-03-31 00:00:00+00:00": 43.19507530459816
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.42206447963167193,
            "drawdown_pct": -0.4220644796316675,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0675498178115106,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.786550405550656,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.1979668148368603,
            "drawdown_pct": -3.4246604901345234,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.770651041615153,
            "drawdown_pct": -0.9694940428935928,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.770651041615153,
            "drawdown_pct": -0.9694940428935928,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.2437118745733784,
            "drawdown_pct": -4.335325968261516,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 1.5733248247132252,
            "drawdown_pct": -3.0664484787421897,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.0286232245256883,
            "drawdown_pct": -5.549542004742158,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -2.0574376968443175,
            "drawdown_pct": -6.531361206096575,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.9754799476215794,
            "drawdown_pct": -2.6826634210683653,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.6930415870136102,
            "drawdown_pct": -2.9522002647900725,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.370617185992245,
            "drawdown_pct": -0.39693378391467693,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.489010264230814,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 15.079807404998945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.21232483039195,
            "drawdown_pct": -1.622771724004357,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.11178624432928,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.191844656150863,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.13491216850977,
            "drawdown_pct": -5.420410553578936,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 23.55876000083289,
            "drawdown_pct": -5.09485419216279,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 26.9360262189833,
            "drawdown_pct": -2.5007852417841425,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.9360262189833,
            "drawdown_pct": -2.5007852417841425,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 29.02817016745567,
            "drawdown_pct": -0.8938151938537864,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 29.02817016745567,
            "drawdown_pct": -0.8938151938537864,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 34.40260418676621,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.44409758934154,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 49.53746190738454,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.244804150135565,
            "drawdown_pct": -1.5331661564972454,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 50.288871411057016,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 50.288871411057016,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 50.12895385246259,
            "drawdown_pct": -0.10640678653912605,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 50.12895385246259,
            "drawdown_pct": -0.10640678653912605,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 57.48916868311733,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 53.900388782349154,
            "drawdown_pct": -2.2787471232317724,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 53.900388782349154,
            "drawdown_pct": -2.2787471232317724,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 60.63705307010338,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 60.63705307010338,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 68.51213656055438,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 72.01382231296381,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 78.49524390173175,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 84.4153052283774,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 77.55856925729964,
            "drawdown_pct": -3.7180948525863844,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 120.7536445618978,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p80_cap3",
        "variant": "ridge_a100_H20_c8_p80_cap3",
        "gain_pct": 25.83937318489528,
        "max_drawdown_pct": -1.5793930352563046,
        "capital_score": 23.470283632010823,
        "stability_score": 9.347383511637386,
        "n_trades": 8,
        "skipped_by_capacity": 27,
        "avg_trade_ret_pct": 2.977810283890271,
        "median_trade_ret_pct": 1.1181487216075616,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9749160048149376,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5454545454545454,
        "max_open_trades": 3,
        "avg_exposure": 0.8484848484848485,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.6338836263734322,
          "2026-03-31 00:00:00+00:00": 24.636557613023342
        }
      },
      "selection_score": 593.8148301476757
    },
    {
      "name": "ridge_a100_H20_c8_p80_cap5",
      "variant": {
        "name": "ridge_a100_H20_c8_p80_cap5",
        "threshold": 0.05270825013277534,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p80_cap5",
        "variant": "ridge_a100_H20_c8_p80_cap5",
        "gain_pct": 506.61062076754104,
        "max_drawdown_pct": -17.120469440912544,
        "capital_score": 480.92991660617224,
        "stability_score": 475.98435220226906,
        "n_trades": 268,
        "skipped_by_capacity": 1046,
        "avg_trade_ret_pct": 0.6828557737061204,
        "median_trade_ret_pct": 0.6862794896615281,
        "positive_month_rate": 0.75,
        "worst_month_pct": -9.087355448679347,
        "month_gain_concentration": 0.23250447684936354,
        "top_asset_trade_share": 0.6119402985074627,
        "long_counts": {
          "SOL": 85,
          "ETH": 15,
          "XRP": 164,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 268,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.440191387559809,
        "max_open_trades": 5,
        "avg_exposure": 0.8880382775119617,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 10.208262430455491,
          "2024-10-31 00:00:00+00:00": 0.6127748072259465,
          "2024-11-30 00:00:00+00:00": 61.598431598307414,
          "2024-12-31 00:00:00+00:00": 62.880060914667865,
          "2025-01-31 00:00:00+00:00": -9.087355448679347,
          "2025-02-28 00:00:00+00:00": 47.59110047210726,
          "2025-03-31 00:00:00+00:00": 61.10597996200829,
          "2025-04-30 00:00:00+00:00": 51.73011340397653,
          "2025-05-31 00:00:00+00:00": 45.04018084667041,
          "2025-07-31 00:00:00+00:00": -1.9931786187942748,
          "2025-10-31 00:00:00+00:00": 9.27982103203857,
          "2025-11-30 00:00:00+00:00": 21.590990051570884,
          "2026-01-31 00:00:00+00:00": 22.974869534696097,
          "2026-02-28 00:00:00+00:00": -3.6266903403875403,
          "2026-03-31 00:00:00+00:00": 119.54361931578802
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p80_cap5",
        "variant": "ridge_a100_H20_c8_p80_cap5",
        "gain_pct": 112.74842357293929,
        "max_drawdown_pct": -5.038060410533829,
        "capital_score": 105.19133295713854,
        "stability_score": 105.19133295713854,
        "n_trades": 132,
        "skipped_by_capacity": 303,
        "avg_trade_ret_pct": 0.5799967256971699,
        "median_trade_ret_pct": 0.6170326233902261,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.05314294675170572,
        "month_gain_concentration": 0.3758021880690468,
        "top_asset_trade_share": 0.4696969696969697,
        "long_counts": {
          "XRP": 62,
          "SOL": 48,
          "ETH": 17,
          "BNB": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 132,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.242105263157895,
        "max_open_trades": 5,
        "avg_exposure": 0.8484210526315791,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.1596527279083375,
          "2025-02-28 00:00:00+00:00": 10.636088565571285,
          "2025-03-31 00:00:00+00:00": 10.791684623040652,
          "2025-04-30 00:00:00+00:00": 17.185146429074493,
          "2025-05-31 00:00:00+00:00": 0.05314294675170572,
          "2025-07-31 00:00:00+00:00": 0.4327766187591635,
          "2025-10-31 00:00:00+00:00": 4.720327803098769,
          "2025-11-30 00:00:00+00:00": 14.793297718942512,
          "2025-12-31 00:00:00+00:00": 1.9150411699550887,
          "2026-01-31 00:00:00+00:00": 5.8843114439141,
          "2026-02-28 00:00:00+00:00": 0.08505849744278748,
          "2026-03-31 00:00:00+00:00": 41.937147711753425
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.25323868777900316,
            "drawdown_pct": -0.2532386877790005,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 1.2430624463357702,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 2.8612845754304743,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 0.7476947119307056,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.284437078764469,
            "drawdown_pct": -0.5608013734681561,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.284437078764469,
            "drawdown_pct": -0.5608013734681561,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.1596527279083375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.9806263788276652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.382457636599767,
            "drawdown_pct": -1.5369870310315004,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.113830853666414,
            "drawdown_pct": -2.7570477549508032,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.702254012225083,
            "drawdown_pct": -0.2677156084715304,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.299077874745592,
            "drawdown_pct": -0.6554572018050986,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 5.111140710313066,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.645922373298859,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 13.795741293479622,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.685941477231125,
            "drawdown_pct": -0.9752560189280945,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 15.304451590161904,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.41708291120146,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 18.148875113111174,
            "drawdown_pct": -5.038060410533829,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 18.39370805527112,
            "drawdown_pct": -4.841276386643245,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 21.570091432502636,
            "drawdown_pct": -2.288264129075246,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 21.570091432502636,
            "drawdown_pct": -2.288264129075246,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 24.587425916520274,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 24.587425916520274,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 28.597546383319468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 41.77257234559477,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 41.82571529234647,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 40.51904523753407,
            "drawdown_pct": -0.9213209692748303,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 42.25849191110564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 42.25849191110564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 43.350050780846516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 43.350050780846516,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 50.40086603937564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 46.978819714204405,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 46.978819714204405,
            "drawdown_pct": -2.275283657126903,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 53.65807236169243,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 53.65807236169243,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 61.77211743314692,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 63.687158603102006,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 69.5714700470161,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 75.20798678013614,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 69.6565285444589,
            "drawdown_pct": -3.1684961043720095,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 111.59367625621232,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p80_cap5",
        "variant": "ridge_a100_H20_c8_p80_cap5",
        "gain_pct": 26.474022388599025,
        "max_drawdown_pct": -0.9491444478500033,
        "capital_score": 25.05030571682402,
        "stability_score": 8.418034323398434,
        "n_trades": 10,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 2.402437549141348,
        "median_trade_ret_pct": 2.6012630754204076,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9852908557370236,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "XRP": 7,
          "ETH": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.727272727272727,
        "max_open_trades": 5,
        "avg_exposure": 0.7454545454545454,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.3843546475562363,
          "2026-03-31 00:00:00+00:00": 25.74596542304593
        }
      },
      "selection_score": 465.92991660617224
    },
    {
      "name": "ridge_a100_H20_c8_p90_cap1",
      "variant": {
        "name": "ridge_a100_H20_c8_p90_cap1",
        "threshold": 0.06876575819588147,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p90_cap1",
        "variant": "ridge_a100_H20_c8_p90_cap1",
        "gain_pct": 455.15522447455794,
        "max_drawdown_pct": -16.829862240460926,
        "capital_score": 429.91043111386654,
        "stability_score": 414.28407514972105,
        "n_trades": 48,
        "skipped_by_capacity": 609,
        "avg_trade_ret_pct": 3.8586994420056295,
        "median_trade_ret_pct": 3.9608419289905625,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -17.50135596414546,
        "month_gain_concentration": 0.23056621571791355,
        "top_asset_trade_share": 0.6875,
        "long_counts": {
          "SOL": 12,
          "XRP": 33,
          "BTC": 1,
          "ETH": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 48,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.661116671655009,
          "2024-10-31 00:00:00+00:00": 9.924262420327707,
          "2024-11-30 00:00:00+00:00": 85.05692389312175,
          "2024-12-31 00:00:00+00:00": 65.2462242586839,
          "2025-01-31 00:00:00+00:00": -17.50135596414546,
          "2025-02-28 00:00:00+00:00": 33.04503084713926,
          "2025-03-31 00:00:00+00:00": 53.46083089368466,
          "2025-04-30 00:00:00+00:00": 35.163165089758024,
          "2025-07-31 00:00:00+00:00": 31.007197401794485,
          "2025-10-31 00:00:00+00:00": 8.737675921592768,
          "2025-11-30 00:00:00+00:00": 20.10894418749359,
          "2026-02-28 00:00:00+00:00": 14.493169040009889
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p90_cap1",
        "variant": "ridge_a100_H20_c8_p90_cap1",
        "gain_pct": 84.6931300785084,
        "max_drawdown_pct": -16.316276552477483,
        "capital_score": 60.21871524979218,
        "stability_score": 55.72261449974814,
        "n_trades": 23,
        "skipped_by_capacity": 175,
        "avg_trade_ret_pct": 2.8879681307131837,
        "median_trade_ret_pct": 3.4778241610595306,
        "positive_month_rate": 0.75,
        "worst_month_pct": -10.039579010913613,
        "month_gain_concentration": 0.37624448608921046,
        "top_asset_trade_share": 0.5652173913043478,
        "long_counts": {
          "XRP": 13,
          "SOL": 8,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 23,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -10.039579010913613,
          "2025-02-28 00:00:00+00:00": 10.359014141458772,
          "2025-03-31 00:00:00+00:00": 23.41959238287042,
          "2025-04-30 00:00:00+00:00": 5.084173860142869,
          "2025-07-31 00:00:00+00:00": 14.895010419311092,
          "2025-10-31 00:00:00+00:00": 1.6727634906308424,
          "2025-11-30 00:00:00+00:00": 6.8151217188085695,
          "2026-02-28 00:00:00+00:00": -2.029959902316392
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.500499837940339,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -3.5440815960009218,
            "drawdown_pct": -10.273981470403616,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -10.039579010913613,
            "drawdown_pct": -16.316276552477483,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -6.459926825943157,
            "drawdown_pct": -12.986383026059588,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -4.843692877949053,
            "drawdown_pct": -11.482916576665758,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -4.843692877949053,
            "drawdown_pct": -11.482916576665758,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": -3.0522375746889026,
            "drawdown_pct": -9.81645427559663,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 0.31943513054515904,
            "drawdown_pct": -6.680029133093157,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 7.720489842162721,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 7.720489842162721,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 14.156245375457573,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 21.102810204796285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 21.102810204796285,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 16.19058526857249,
            "drawdown_pct": -4.056243556955252,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 19.33795099761862,
            "drawdown_pct": -1.45732308291866,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 23.73902751341558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 23.73902751341558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 28.823201373558447,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 28.823201373558447,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 28.823201373558447,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 39.4169708300503,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 43.71821179286954,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 41.95907808975991,
            "drawdown_pct": -1.224015857951899,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 48.80802204375766,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 45.39097528350038,
            "drawdown_pct": -2.2962785966286647,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 52.20609700230895,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 53.86057830039297,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 50.17613709999256,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 50.17613709999256,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 50.17613709999256,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 50.17613709999256,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 50.17613709999256,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 50.17613709999256,
            "drawdown_pct": -2.394662259235125,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p90_cap1",
        "variant": "ridge_a100_H20_c8_p90_cap1",
        "gain_pct": 22.984339353151157,
        "max_drawdown_pct": 0.0,
        "capital_score": 22.984339353151157,
        "stability_score": 9.484339353151158,
        "n_trades": 1,
        "skipped_by_capacity": 15,
        "avg_trade_ret_pct": 22.984339353151153,
        "median_trade_ret_pct": 22.984339353151153,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 1,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 314.91043111386654
    },
    {
      "name": "ridge_a100_H20_c8_p90_cap2",
      "variant": {
        "name": "ridge_a100_H20_c8_p90_cap2",
        "threshold": 0.06876575819588147,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p90_cap2",
        "variant": "ridge_a100_H20_c8_p90_cap2",
        "gain_pct": 388.01258481818223,
        "max_drawdown_pct": -16.48306774454885,
        "capital_score": 363.28798320135894,
        "stability_score": 350.5767698980314,
        "n_trades": 90,
        "skipped_by_capacity": 567,
        "avg_trade_ret_pct": 1.8328455687348564,
        "median_trade_ret_pct": 1.9804209644952813,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.54454663666084,
        "month_gain_concentration": 0.24380342773820066,
        "top_asset_trade_share": 0.6888888888888889,
        "long_counts": {
          "SOL": 21,
          "XRP": 62,
          "BTC": 2,
          "ETH": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 90,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9185185185185185,
        "max_open_trades": 2,
        "avg_exposure": 0.9592592592592593,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 8.34231849302057,
          "2024-10-31 00:00:00+00:00": 3.713384319098097,
          "2024-11-30 00:00:00+00:00": 62.415341236698524,
          "2024-12-31 00:00:00+00:00": 74.88112842296144,
          "2025-01-31 00:00:00+00:00": -14.54454663666084,
          "2025-02-28 00:00:00+00:00": 28.399785215962993,
          "2025-03-31 00:00:00+00:00": 41.61244998786327,
          "2025-04-30 00:00:00+00:00": 22.06979019380924,
          "2025-07-31 00:00:00+00:00": 27.434408873428026,
          "2025-10-31 00:00:00+00:00": 7.627594108451547,
          "2025-11-30 00:00:00+00:00": 17.67331025534969,
          "2026-02-28 00:00:00+00:00": 12.967796673006774
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p90_cap2",
        "variant": "ridge_a100_H20_c8_p90_cap2",
        "gain_pct": 91.69049146940606,
        "max_drawdown_pct": -5.240570656692867,
        "capital_score": 83.82963548436675,
        "stability_score": 81.04392119865246,
        "n_trades": 42,
        "skipped_by_capacity": 156,
        "avg_trade_ret_pct": 1.6062085844644656,
        "median_trade_ret_pct": 1.6407468195026653,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.627767512882997,
        "month_gain_concentration": 0.37905506584325516,
        "top_asset_trade_share": 0.6428571428571429,
        "long_counts": {
          "XRP": 27,
          "SOL": 11,
          "ETH": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 42,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9245283018867925,
        "max_open_trades": 2,
        "avg_exposure": 0.9622641509433962,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.6868552345288919,
          "2025-02-28 00:00:00+00:00": 4.452671481647883,
          "2025-03-31 00:00:00+00:00": 22.183960453898166,
          "2025-04-30 00:00:00+00:00": 5.186656450546309,
          "2025-07-31 00:00:00+00:00": 15.307219253805641,
          "2025-10-31 00:00:00+00:00": 4.292801989071563,
          "2025-11-30 00:00:00+00:00": 7.1010644076817755,
          "2026-02-28 00:00:00+00:00": -2.627767512882997
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.7502499189701695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.5793908071160558,
            "drawdown_pct": -5.1369907352018185,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.6868552345288919,
            "drawdown_pct": -5.240570656692867,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.2691541949608194,
            "drawdown_pct": -3.355264904641786,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -1.3012601389265228,
            "drawdown_pct": -4.868913628489535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -1.3012601389265228,
            "drawdown_pct": -4.868913628489535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.5656321672758224,
            "drawdown_pct": -3.06950369197333,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 2.765816247118991,
            "drawdown_pct": -0.9488494462616015,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 10.48718418111666,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 10.48718418111666,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 17.186830613531882,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.426293222023943,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.426293222023943,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 19.43043971285769,
            "drawdown_pct": -4.015110777471886,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 22.68747472877196,
            "drawdown_pct": -1.3974686926896296,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 24.949776701017157,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 24.949776701017157,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 30.136433151563466,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 30.136433151563466,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 30.136433151563466,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 41.058210891989546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 45.44365240536911,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 46.1011551757814,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 53.23495609648512,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 49.73645439444067,
            "drawdown_pct": -2.283096358145331,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 56.837518802122446,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 57.969951497463626,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 54.20975128923945,
            "drawdown_pct": -2.3803262408956027,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 54.20975128923945,
            "drawdown_pct": -2.3803262408956027,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 54.20975128923945,
            "drawdown_pct": -2.3803262408956027,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 54.20975128923945,
            "drawdown_pct": -2.3803262408956027,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 54.20975128923945,
            "drawdown_pct": -2.3803262408956027,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 54.20975128923945,
            "drawdown_pct": -2.3803262408956027,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p90_cap2",
        "variant": "ridge_a100_H20_c8_p90_cap2",
        "gain_pct": 24.305038991903203,
        "max_drawdown_pct": 0.0,
        "capital_score": 24.305038991903203,
        "stability_score": 10.805038991903205,
        "n_trades": 2,
        "skipped_by_capacity": 14,
        "avg_trade_ret_pct": 11.492169676575577,
        "median_trade_ret_pct": 11.492169676575577,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 348.28798320135894
    },
    {
      "name": "ridge_a100_H20_c8_p90_cap3",
      "variant": {
        "name": "ridge_a100_H20_c8_p90_cap3",
        "threshold": 0.06876575819588147,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p90_cap3",
        "variant": "ridge_a100_H20_c8_p90_cap3",
        "gain_pct": 367.4697966562091,
        "max_drawdown_pct": -16.057119184950086,
        "capital_score": 343.38411787878397,
        "stability_score": 331.3860109369311,
        "n_trades": 130,
        "skipped_by_capacity": 527,
        "avg_trade_ret_pct": 1.2184235151395966,
        "median_trade_ret_pct": 1.326380403594271,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -13.728876172622137,
        "month_gain_concentration": 0.2595316827469641,
        "top_asset_trade_share": 0.6923076923076923,
        "long_counts": {
          "SOL": 30,
          "XRP": 90,
          "BTC": 3,
          "ETH": 7
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 130,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7925925925925927,
        "max_open_trades": 3,
        "avg_exposure": 0.9308641975308644,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 11.407932187876739,
          "2024-10-31 00:00:00+00:00": 1.819687386042716,
          "2024-11-30 00:00:00+00:00": 51.114049578439605,
          "2024-12-31 00:00:00+00:00": 74.83163178122624,
          "2025-01-31 00:00:00+00:00": -13.728876172622137,
          "2025-02-28 00:00:00+00:00": 28.79935319402574,
          "2025-03-31 00:00:00+00:00": 39.06908057849017,
          "2025-04-30 00:00:00+00:00": 18.25908223301576,
          "2025-07-31 00:00:00+00:00": 26.33086438778679,
          "2025-10-31 00:00:00+00:00": 7.28712445682595,
          "2025-11-30 00:00:00+00:00": 16.923264794165902,
          "2026-02-28 00:00:00+00:00": 12.491249613246225
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p90_cap3",
        "variant": "ridge_a100_H20_c8_p90_cap3",
        "gain_pct": 90.00771687747621,
        "max_drawdown_pct": -4.00099921395719,
        "capital_score": 84.00621805654043,
        "stability_score": 81.5588496354878,
        "n_trades": 57,
        "skipped_by_capacity": 141,
        "avg_trade_ret_pct": 1.1527169679776028,
        "median_trade_ret_pct": 1.1592747203531768,
        "positive_month_rate": 0.875,
        "worst_month_pct": -1.7193111848850435,
        "month_gain_concentration": 0.41500175424998353,
        "top_asset_trade_share": 0.631578947368421,
        "long_counts": {
          "XRP": 36,
          "SOL": 15,
          "ETH": 3,
          "BNB": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 57,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.660377358490566,
        "max_open_trades": 3,
        "avg_exposure": 0.8867924528301887,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.5432853127764048,
          "2025-02-28 00:00:00+00:00": 3.9970432876942965,
          "2025-03-31 00:00:00+00:00": 22.4022047523858,
          "2025-04-30 00:00:00+00:00": 5.0960611109531015,
          "2025-07-31 00:00:00+00:00": 10.495243083369445,
          "2025-10-31 00:00:00+00:00": 3.449190500952284,
          "2025-11-30 00:00:00+00:00": 6.997960039189962,
          "2026-02-28 00:00:00+00:00": -1.7193111848850435
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.5001666126467796,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.0101160956586028,
            "drawdown_pct": -3.4246604901345346,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.5432853127764048,
            "drawdown_pct": -0.9335412141196597,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.8901355503308963,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 2.4070216148231793,
            "drawdown_pct": -0.46954349211775215,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.4070216148231793,
            "drawdown_pct": -0.46954349211775215,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 4.024858657396862,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.540328600470701,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.730185384129783,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.730185384129783,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.661206603182563,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 28.15354598628724,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 28.15354598628724,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 23.02612361871762,
            "drawdown_pct": -4.00099921395719,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.388831137348348,
            "drawdown_pct": -1.3770316188736031,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 27.9425333528565,
            "drawdown_pct": -0.16465610202727188,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 27.9425333528565,
            "drawdown_pct": -0.16465610202727188,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 33.0385944638096,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 33.0385944638096,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 33.0385944638096,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 40.626591976635495,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 43.53383754717905,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 43.38110780304882,
            "drawdown_pct": -0.10640678653911495,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 50.41050305964137,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 46.98302804813133,
            "drawdown_pct": -2.2787471232317946,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 53.98098808732129,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 54.72186273620383,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 52.26167690243625,
            "drawdown_pct": -1.5900699424503006,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 52.26167690243625,
            "drawdown_pct": -1.5900699424503006,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 52.26167690243625,
            "drawdown_pct": -1.5900699424503006,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 52.26167690243625,
            "drawdown_pct": -1.5900699424503006,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 52.26167690243625,
            "drawdown_pct": -1.5900699424503006,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 52.26167690243625,
            "drawdown_pct": -1.5900699424503006,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p90_cap3",
        "variant": "ridge_a100_H20_c8_p90_cap3",
        "gain_pct": 25.827927045013382,
        "max_drawdown_pct": 0.0,
        "capital_score": 25.827927045013382,
        "stability_score": 12.327927045013384,
        "n_trades": 3,
        "skipped_by_capacity": 13,
        "avg_trade_ret_pct": 7.959863332983562,
        "median_trade_ret_pct": 7.661446451050384,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 3
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 3,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8,
        "max_open_trades": 3,
        "avg_exposure": 0.9333333333333332,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 328.38411787878397
    },
    {
      "name": "ridge_a100_H20_c8_p90_cap5",
      "variant": {
        "name": "ridge_a100_H20_c8_p90_cap5",
        "threshold": 0.06876575819588147,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 8,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c8",
        "n_train": 12794,
        "target_mean": 0.014920496257193131
      },
      "val": {
        "label": "Validation ridge_a100_H20_c8_p90_cap5",
        "variant": "ridge_a100_H20_c8_p90_cap5",
        "gain_pct": 331.5209425295232,
        "max_drawdown_pct": -15.826737309767614,
        "capital_score": 307.7808365648718,
        "stability_score": 297.31512936969597,
        "n_trades": 202,
        "skipped_by_capacity": 455,
        "avg_trade_ret_pct": 0.7359519774779907,
        "median_trade_ret_pct": 0.7958282421565624,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -12.32214283874012,
        "month_gain_concentration": 0.2922567758453617,
        "top_asset_trade_share": 0.6881188118811881,
        "long_counts": {
          "SOL": 49,
          "BNB": 1,
          "XRP": 139,
          "BTC": 3,
          "ETH": 10
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 202,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.392592592592592,
        "max_open_trades": 5,
        "avg_exposure": 0.8785185185185186,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.360478540594613,
          "2024-10-31 00:00:00+00:00": 0.6747811440930036,
          "2024-11-30 00:00:00+00:00": 38.351700750549156,
          "2024-12-31 00:00:00+00:00": 74.0821504704675,
          "2025-01-31 00:00:00+00:00": -12.32214283874012,
          "2025-02-28 00:00:00+00:00": 29.576294017615027,
          "2025-03-31 00:00:00+00:00": 36.16163710625938,
          "2025-04-30 00:00:00+00:00": 12.436324489465221,
          "2025-07-31 00:00:00+00:00": 23.385445718183405,
          "2025-10-31 00:00:00+00:00": 6.818232070359102,
          "2025-11-30 00:00:00+00:00": 15.863709040527226,
          "2026-02-28 00:00:00+00:00": 2.7723361583061887
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c8_p90_cap5",
        "variant": "ridge_a100_H20_c8_p90_cap5",
        "gain_pct": 70.46050517875824,
        "max_drawdown_pct": -3.9898030090914527,
        "capital_score": 64.47580066512106,
        "stability_score": 62.54206572536202,
        "n_trades": 83,
        "skipped_by_capacity": 115,
        "avg_trade_ret_pct": 0.6552267796468371,
        "median_trade_ret_pct": 0.6170326233902261,
        "positive_month_rate": 0.75,
        "worst_month_pct": -1.9674272514408244,
        "month_gain_concentration": 0.34221141631751223,
        "top_asset_trade_share": 0.6144578313253012,
        "long_counts": {
          "XRP": 51,
          "SOL": 23,
          "ETH": 4,
          "BNB": 5
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 83,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.9245283018867925,
        "max_open_trades": 5,
        "avg_exposure": 0.7849056603773585,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.9674272514408244,
          "2025-02-28 00:00:00+00:00": 6.561308606994217,
          "2025-03-31 00:00:00+00:00": 13.359744803350509,
          "2025-04-30 00:00:00+00:00": 2.8042600048355837,
          "2025-07-31 00:00:00+00:00": 5.864291323574946,
          "2025-10-31 00:00:00+00:00": 4.201493892229465,
          "2025-11-30 00:00:00+00:00": 6.248349401207776,
          "2026-02-28 00:00:00+00:00": -0.9180311194389503
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.5000999675880706,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -0.5855203250341532,
            "drawdown_pct": -2.0547962940807185,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.9674272514408244,
            "drawdown_pct": -3.416279609710904,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.1872563509951135,
            "drawdown_pct": -2.64763908551946,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.4116506074135344,
            "drawdown_pct": -3.853937657451312,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.7167072848581455,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.6883890591864343,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.593881355553393,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.102023140595449,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.102023140595449,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 10.757818196768625,
            "drawdown_pct": -1.1990907087742309,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 18.769326231432302,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 18.769326231432302,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 14.030664079572972,
            "drawdown_pct": -3.9898030090914527,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 17.089991402169673,
            "drawdown_pct": -1.4139465824621222,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 17.9536261589039,
            "drawdown_pct": -0.6867935504988321,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 17.9536261589039,
            "drawdown_pct": -0.6867935504988321,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 20.757886163739485,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 20.757886163739485,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 20.757886163739485,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 25.07392175599172,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 26.62217748731443,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 27.593757876543876,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 33.86958414956263,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 30.823671379543896,
            "drawdown_pct": -2.275283657126892,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 37.07202078075167,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 37.46759028194481,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 36.15398966131272,
            "drawdown_pct": -0.9555711407597256,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 36.15398966131272,
            "drawdown_pct": -0.9555711407597256,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 36.15398966131272,
            "drawdown_pct": -0.9555711407597256,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 36.15398966131272,
            "drawdown_pct": -0.9555711407597256,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 36.15398966131272,
            "drawdown_pct": -0.9555711407597256,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 36.15398966131272,
            "drawdown_pct": -0.9555711407597256,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c8_p90_cap5",
        "variant": "ridge_a100_H20_c8_p90_cap5",
        "gain_pct": 23.968084276396,
        "max_drawdown_pct": 0.0,
        "capital_score": 23.968084276396,
        "stability_score": 16.468084276396,
        "n_trades": 5,
        "skipped_by_capacity": 11,
        "avg_trade_ret_pct": 4.395287740818259,
        "median_trade_ret_pct": 4.596867870630231,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 8.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.2,
        "max_open_trades": 5,
        "avg_exposure": 0.8400000000000001,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 292.7808365648718
    },
    {
      "name": "ridge_a1_H20_c12_p70_cap1",
      "variant": {
        "name": "ridge_a1_H20_c12_p70_cap1",
        "threshold": 0.032005746407531364,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p70_cap1",
        "variant": "ridge_a1_H20_c12_p70_cap1",
        "gain_pct": 1086.1987815028795,
        "max_drawdown_pct": -21.242526275681694,
        "capital_score": 1054.334992089357,
        "stability_score": 1032.3410623214932,
        "n_trades": 78,
        "skipped_by_capacity": 1893,
        "avg_trade_ret_pct": 3.437560726852419,
        "median_trade_ret_pct": 3.4161849483114826,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -24.93783266203377,
        "month_gain_concentration": 0.19283873932811027,
        "top_asset_trade_share": 0.5897435897435898,
        "long_counts": {
          "SOL": 23,
          "ETH": 8,
          "XRP": 46,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 78,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 63.406794305723935,
          "2024-10-31 00:00:00+00:00": 2.361691949256084,
          "2024-11-30 00:00:00+00:00": 96.82095412973575,
          "2024-12-31 00:00:00+00:00": 43.41576028194021,
          "2025-01-31 00:00:00+00:00": 19.659077231393553,
          "2025-02-28 00:00:00+00:00": 118.93424123205057,
          "2025-03-31 00:00:00+00:00": 189.6118371964556,
          "2025-04-30 00:00:00+00:00": 201.0633441304292,
          "2025-05-31 00:00:00+00:00": 35.03551087157973,
          "2025-07-31 00:00:00+00:00": -20.44036242773302,
          "2025-08-31 00:00:00+00:00": 17.857907644766897,
          "2025-10-31 00:00:00+00:00": -24.93783266203377,
          "2025-11-30 00:00:00+00:00": 90.2638042616677,
          "2026-01-31 00:00:00+00:00": -1.7477704164024317,
          "2026-02-28 00:00:00+00:00": 6.7713525118133475,
          "2026-03-31 00:00:00+00:00": 211.483503015613
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p70_cap1",
        "variant": "ridge_a1_H20_c12_p70_cap1",
        "gain_pct": 240.25145198711328,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 215.66726604423735,
        "stability_score": 215.66726604423735,
        "n_trades": 44,
        "skipped_by_capacity": 643,
        "avg_trade_ret_pct": 2.9739326862301505,
        "median_trade_ret_pct": 3.5301288417761514,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -2.6577441400129374,
        "month_gain_concentration": 0.24657390589383818,
        "top_asset_trade_share": 0.4772727272727273,
        "long_counts": {
          "XRP": 21,
          "SOL": 15,
          "ETH": 5,
          "BTC": 1,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 44,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 5.938574724734124,
          "2025-02-28 00:00:00+00:00": 29.332834157163788,
          "2025-03-31 00:00:00+00:00": 45.89979879257339,
          "2025-04-30 00:00:00+00:00": 20.157542802750612,
          "2025-05-31 00:00:00+00:00": 7.627181607492503,
          "2025-07-31 00:00:00+00:00": 1.3059980400619793,
          "2025-08-31 00:00:00+00:00": -2.6577441400129374,
          "2025-10-31 00:00:00+00:00": 7.6369975957951794,
          "2025-11-30 00:00:00+00:00": 18.468025985313005,
          "2025-12-31 00:00:00+00:00": 5.364813544021445,
          "2026-01-31 00:00:00+00:00": 8.801765483513833,
          "2026-02-28 00:00:00+00:00": 58.80002094744481,
          "2026-03-31 00:00:00+00:00": 29.1345872778993
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.306193438895022,
            "drawdown_pct": -1.3061934388950203,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.056857839653375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.274078038375492,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.5117379685713388,
            "drawdown_pct": -12.209349489276022,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 5.938574724734124,
            "drawdown_pct": -7.469350573049849,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 10.170101990584797,
            "drawdown_pct": -3.7733789499240444,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.136464845423149,
            "drawdown_pct": -2.929322072883611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 11.136464845423149,
            "drawdown_pct": -2.929322072883611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 14.957141085626546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 30.144243379378736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 30.144243379378736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 35.27140888189791,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 35.27140888189791,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 68.30706247884461,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 68.30706247884461,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 78.319496220069,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 78.319496220069,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 81.1712076744713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 81.1712076744713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 101.03238204709263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 101.03238204709263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 101.32875047722192,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 108.95593208471442,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 104.04832576774086,
            "drawdown_pct": -2.3486322058489995,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 110.2619301247764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 110.2619301247764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 107.60418598476346,
            "drawdown_pct": -1.2640158579519056,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 101.63779344129037,
            "drawdown_pct": -4.101615864730334,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 101.63779344129037,
            "drawdown_pct": -4.101615864730334,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 111.285335807797,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 106.34912172950442,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 106.34912172950442,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 115.24118358055864,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 139.0740231098931,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 147.87578859340692,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 155.90855840305647,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 205.96642150503084,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 206.67580954085173,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 206.67580954085173,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 235.81039681875103,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p70_cap1",
        "variant": "ridge_a1_H20_c12_p70_cap1",
        "gain_pct": 36.97205775940381,
        "max_drawdown_pct": -2.4185184697359086,
        "capital_score": 33.344280054799945,
        "stability_score": 21.67787598670045,
        "n_trades": 5,
        "skipped_by_capacity": 52,
        "avg_trade_ret_pct": 6.837824167325265,
        "median_trade_ret_pct": 3.2406431685935244,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.6666561627239799,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 23.45580438384846,
          "2026-03-31 00:00:00+00:00": 11.72845655211475
        }
      },
      "selection_score": 930.6373081595852
    },
    {
      "name": "ridge_a1_H20_c12_p70_cap2",
      "variant": {
        "name": "ridge_a1_H20_c12_p70_cap2",
        "threshold": 0.032005746407531364,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p70_cap2",
        "variant": "ridge_a1_H20_c12_p70_cap2",
        "gain_pct": 1262.3855433647618,
        "max_drawdown_pct": -16.038331602416676,
        "capital_score": 1238.3280459611367,
        "stability_score": 1212.7997902326065,
        "n_trades": 147,
        "skipped_by_capacity": 1824,
        "avg_trade_ret_pct": 1.8470465925044866,
        "median_trade_ret_pct": 1.7189120805297653,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -30.06907205506093,
        "month_gain_concentration": 0.2008382936797898,
        "top_asset_trade_share": 0.5986394557823129,
        "long_counts": {
          "SOL": 43,
          "XRP": 88,
          "ETH": 13,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 147,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9461538461538461,
        "max_open_trades": 2,
        "avg_exposure": 0.9730769230769231,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 56.309708961094145,
          "2024-10-31 00:00:00+00:00": 2.3120567729754953,
          "2024-11-30 00:00:00+00:00": 115.34031499932627,
          "2024-12-31 00:00:00+00:00": 79.18184742511323,
          "2025-01-31 00:00:00+00:00": 23.717333882375385,
          "2025-02-28 00:00:00+00:00": 120.57762625920009,
          "2025-03-31 00:00:00+00:00": 218.6210404172151,
          "2025-04-30 00:00:00+00:00": 229.9289620087627,
          "2025-05-31 00:00:00+00:00": 40.09554177194775,
          "2025-07-31 00:00:00+00:00": -11.579748279255796,
          "2025-08-31 00:00:00+00:00": 20.584391320792065,
          "2025-10-31 00:00:00+00:00": -30.06907205506093,
          "2025-11-30 00:00:00+00:00": 104.74729169561112,
          "2026-01-31 00:00:00+00:00": -2.002922238469864,
          "2026-02-28 00:00:00+00:00": 8.200435486130118,
          "2026-03-31 00:00:00+00:00": 256.2410669719584
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p70_cap2",
        "variant": "ridge_a1_H20_c12_p70_cap2",
        "gain_pct": 248.61197099661763,
        "max_drawdown_pct": -11.691284206757292,
        "capital_score": 231.0750446864817,
        "stability_score": 231.0750446864817,
        "n_trades": 81,
        "skipped_by_capacity": 606,
        "avg_trade_ret_pct": 1.5923172392810676,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.8815642782487032,
        "month_gain_concentration": 0.25734749386528655,
        "top_asset_trade_share": 0.48148148148148145,
        "long_counts": {
          "XRP": 39,
          "SOL": 27,
          "ETH": 10,
          "BTC": 2,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 81,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.8934426229508197,
        "max_open_trades": 2,
        "avg_exposure": 0.9467213114754098,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.9705156405194941,
          "2025-02-28 00:00:00+00:00": 25.777071661695487,
          "2025-03-31 00:00:00+00:00": 43.60806904998506,
          "2025-04-30 00:00:00+00:00": 34.389964550488855,
          "2025-05-31 00:00:00+00:00": 7.830090491494701,
          "2025-07-31 00:00:00+00:00": 1.406959165004423,
          "2025-08-31 00:00:00+00:00": 0.8815642782487032,
          "2025-10-31 00:00:00+00:00": 7.7354984462776315,
          "2025-11-30 00:00:00+00:00": 15.00443427004717,
          "2025-12-31 00:00:00+00:00": 5.4855231440361365,
          "2026-01-31 00:00:00+00:00": 9.031978905331243,
          "2026-02-28 00:00:00+00:00": 62.804869716944324,
          "2026-03-31 00:00:00+00:00": 29.12040581870758
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6530967194475039,
            "drawdown_pct": -0.653096719447499,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.464039111780295,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.081361763465409,
            "drawdown_pct": -11.691284206757292,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": -1.6836363363810989,
            "drawdown_pct": -9.483787757855778,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.9705156405194941,
            "drawdown_pct": -7.0402089403354795,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.0175645292138285,
            "drawdown_pct": -8.870560266323036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.983082703871048,
            "drawdown_pct": -3.3459879743848675,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 5.905966698897089,
            "drawdown_pct": -2.496323071658535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 5.905966698897089,
            "drawdown_pct": -2.496323071658535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 8.180167175676957,
            "drawdown_pct": -0.40255144131531306,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 21.61304144954906,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 21.61304144954906,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 26.74758730221498,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 26.74758730221498,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 58.97885610481441,
            "drawdown_pct": -5.4840837905521855,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 58.97885610481441,
            "drawdown_pct": -5.4840837905521855,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 67.66363504674155,
            "drawdown_pct": -0.32081957489084045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 67.66363504674155,
            "drawdown_pct": -0.32081957489084045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 70.35565635220004,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 70.35565635220004,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 89.30090522476695,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 89.30090522476695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 104.7456209026889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 112.5757113941836,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 107.6124043543858,
            "drawdown_pct": -2.3348420227531252,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 113.98267055918802,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 113.98267055918802,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 114.86423483743673,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 108.74581360757253,
            "drawdown_pct": -3.1956058404221888,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 108.74581360757253,
            "drawdown_pct": -3.1956058404221888,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 118.85291243846521,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 113.76976224854599,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 113.76976224854599,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 122.59973328371436,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 143.08969069779766,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 152.1216696031289,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 160.3582263486365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 214.5618809471518,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 214.92653932007323,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 214.92653932007323,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 244.0469451387808,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p70_cap2",
        "variant": "ridge_a1_H20_c12_p70_cap2",
        "gain_pct": 33.771982232344925,
        "max_drawdown_pct": -2.4038953907647764,
        "capital_score": 30.16613914619776,
        "stability_score": 22.31283764476143,
        "n_trades": 9,
        "skipped_by_capacity": 48,
        "avg_trade_ret_pct": 3.382802796361727,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8074653933907866,
        "top_asset_trade_share": 0.5555555555555556,
        "long_counts": {
          "XRP": 5,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 9,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9230769230769231,
        "max_open_trades": 2,
        "avg_exposure": 0.9615384615384616,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 24.876922833021837,
          "2026-03-31 00:00:00+00:00": 5.9317322952880716
        }
      },
      "selection_score": 1223.3280459611367
    },
    {
      "name": "ridge_a1_H20_c12_p70_cap3",
      "variant": {
        "name": "ridge_a1_H20_c12_p70_cap3",
        "threshold": 0.032005746407531364,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p70_cap3",
        "variant": "ridge_a1_H20_c12_p70_cap3",
        "gain_pct": 1181.527415583594,
        "max_drawdown_pct": -15.925985308244417,
        "capital_score": 1157.6384376212272,
        "stability_score": 1133.245135056296,
        "n_trades": 213,
        "skipped_by_capacity": 1758,
        "avg_trade_ret_pct": 1.2285797318120688,
        "median_trade_ret_pct": 1.1489154096842362,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -28.724288480424093,
        "month_gain_concentration": 0.20553718555326292,
        "top_asset_trade_share": 0.6056338028169014,
        "long_counts": {
          "SOL": 61,
          "XRP": 129,
          "ETH": 18,
          "BTC": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8653846153846154,
        "max_open_trades": 3,
        "avg_exposure": 0.9551282051282052,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 46.748646605131256,
          "2024-10-31 00:00:00+00:00": 2.1696955547033383,
          "2024-11-30 00:00:00+00:00": 117.19565993952409,
          "2024-12-31 00:00:00+00:00": 72.99745486042542,
          "2025-01-31 00:00:00+00:00": 17.73059785602669,
          "2025-02-28 00:00:00+00:00": 107.26176941941509,
          "2025-03-31 00:00:00+00:00": 213.37505011726688,
          "2025-04-30 00:00:00+00:00": 220.37471621452835,
          "2025-05-31 00:00:00+00:00": 25.282465614003172,
          "2025-07-31 00:00:00+00:00": -7.227023573090605,
          "2025-08-31 00:00:00+00:00": 19.380694253605157,
          "2025-10-31 00:00:00+00:00": -28.724288480424093,
          "2025-11-30 00:00:00+00:00": 98.84884288148328,
          "2026-01-31 00:00:00+00:00": -1.8821405382021794,
          "2026-02-28 00:00:00+00:00": 7.844705437704761,
          "2026-03-31 00:00:00+00:00": 245.57224045772057
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p70_cap3",
        "variant": "ridge_a1_H20_c12_p70_cap3",
        "gain_pct": 217.85218067477786,
        "max_drawdown_pct": -7.261910472759759,
        "capital_score": 206.9593149656382,
        "stability_score": 206.9593149656382,
        "n_trades": 114,
        "skipped_by_capacity": 573,
        "avg_trade_ret_pct": 1.037522560065805,
        "median_trade_ret_pct": 1.0802143895311749,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -0.2882034699221663,
        "month_gain_concentration": 0.2551914186940759,
        "top_asset_trade_share": 0.4649122807017544,
        "long_counts": {
          "XRP": 53,
          "SOL": 39,
          "ETH": 15,
          "BTC": 3,
          "BNB": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 114,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7295081967213113,
        "max_open_trades": 3,
        "avg_exposure": 0.9098360655737705,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.8220990882151682,
          "2025-02-28 00:00:00+00:00": 19.666150536968473,
          "2025-03-31 00:00:00+00:00": 31.187558917965276,
          "2025-04-30 00:00:00+00:00": 35.931331448814745,
          "2025-05-31 00:00:00+00:00": 7.408578042553302,
          "2025-07-31 00:00:00+00:00": 0.8800389705849341,
          "2025-08-31 00:00:00+00:00": -0.2882034699221663,
          "2025-10-31 00:00:00+00:00": 7.301649624541767,
          "2025-11-30 00:00:00+00:00": 12.494110567278994,
          "2025-12-31 00:00:00+00:00": 4.409120599203703,
          "2026-01-31 00:00:00+00:00": 8.229618435203491,
          "2026-02-28 00:00:00+00:00": 54.111890422694586,
          "2026-03-31 00:00:00+00:00": 28.60217168398384
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.43539781296500735,
            "drawdown_pct": -0.43539781296501046,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.3470140302870846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.1718779963584893,
            "drawdown_pct": -2.747235445279217,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.780987318485586,
            "drawdown_pct": -0.2878143362507468,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.780987318485586,
            "drawdown_pct": -0.2878143362507468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -1.6175745529965155,
            "drawdown_pct": -7.261910472759759,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.021968066383266205,
            "drawdown_pct": -5.7164306827573,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.8220990882151682,
            "drawdown_pct": -4.0195756692230304,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.5027473921380761,
            "drawdown_pct": -5.2632343323713915,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.4847202473810484,
            "drawdown_pct": -2.4523413872051703,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.1567892285491297,
            "drawdown_pct": -2.761458549594875,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.1567892285491297,
            "drawdown_pct": -2.761458549594875,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.830926604897854,
            "drawdown_pct": -0.2407401358213046,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 16.458622788169137,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.458622788169137,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 21.48824962518364,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 21.48824962518364,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 44.32013074006906,
            "drawdown_pct": -5.458946492769745,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 44.32013074006906,
            "drawdown_pct": -5.458946492769745,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 50.25999635001705,
            "drawdown_pct": -1.5678666442678013,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 50.25999635001705,
            "drawdown_pct": -1.5678666442678013,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 52.67580854314892,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 52.67580854314892,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 69.73761470893257,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 69.73761470893257,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 88.60713999196366,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 96.01571803451696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 92.95860625806648,
            "drawdown_pct": -1.5596258336345037,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 96.8957570051019,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 96.8957570051019,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 96.60755353517973,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 90.79758461202627,
            "drawdown_pct": -3.1870810085571133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 90.79758461202627,
            "drawdown_pct": -3.1870810085571133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 100.07283461374996,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 95.4348825443665,
            "drawdown_pct": -2.3181318335081524,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 95.4348825443665,
            "drawdown_pct": -2.3181318335081524,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 103.9092031597215,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 120.8124343262042,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 129.0420527614077,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 136.54495531410245,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 182.9352798620962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 183.15394318410227,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 183.15394318410227,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 211.75611486808612,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p70_cap3",
        "variant": "ridge_a1_H20_c12_p70_cap3",
        "gain_pct": 32.80396685938376,
        "max_drawdown_pct": -1.6058465002812161,
        "capital_score": 30.395197108961938,
        "stability_score": 20.198774793951547,
        "n_trades": 12,
        "skipped_by_capacity": 45,
        "avg_trade_ret_pct": 2.43882026734607,
        "median_trade_ret_pct": 1.0713100636683546,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8678568926004157,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 7,
          "ETH": 3,
          "BTC": 1,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 12,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6923076923076925,
        "max_open_trades": 3,
        "avg_exposure": 0.8974358974358974,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 26.258683880551857,
          "2026-03-31 00:00:00+00:00": 3.9982445421415065
        }
      },
      "selection_score": 1142.6384376212272
    },
    {
      "name": "ridge_a1_H20_c12_p70_cap5",
      "variant": {
        "name": "ridge_a1_H20_c12_p70_cap5",
        "threshold": 0.032005746407531364,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p70_cap5",
        "variant": "ridge_a1_H20_c12_p70_cap5",
        "gain_pct": 930.1926199740019,
        "max_drawdown_pct": -15.837703670770775,
        "capital_score": 906.4360644678458,
        "stability_score": 887.9892068094803,
        "n_trades": 337,
        "skipped_by_capacity": 1634,
        "avg_trade_ret_pct": 0.7027145672565125,
        "median_trade_ret_pct": 0.6875648322119061,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -23.676827984774945,
        "month_gain_concentration": 0.21267222826607518,
        "top_asset_trade_share": 0.5756676557863502,
        "long_counts": {
          "SOL": 103,
          "XRP": 194,
          "ETH": 24,
          "BNB": 7,
          "BTC": 9
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 337,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.6,
        "max_open_trades": 5,
        "avg_exposure": 0.9199999999999999,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 37.13292157033132,
          "2024-10-31 00:00:00+00:00": 1.063671796169558,
          "2024-11-30 00:00:00+00:00": 86.60424739721668,
          "2024-12-31 00:00:00+00:00": 66.09417231218524,
          "2025-01-31 00:00:00+00:00": 11.597096058498494,
          "2025-02-28 00:00:00+00:00": 81.24283707376424,
          "2025-03-31 00:00:00+00:00": 176.10436888003164,
          "2025-04-30 00:00:00+00:00": 176.6059542537257,
          "2025-05-31 00:00:00+00:00": 12.407890477765136,
          "2025-07-31 00:00:00+00:00": -3.5175612972085446,
          "2025-08-31 00:00:00+00:00": 15.793586682427417,
          "2025-10-31 00:00:00+00:00": -23.676827984774945,
          "2025-11-30 00:00:00+00:00": 81.21121896114391,
          "2026-01-31 00:00:00+00:00": -1.5323510191678906,
          "2026-02-28 00:00:00+00:00": -6.7778990122410505,
          "2026-03-31 00:00:00+00:00": 201.47044367016053
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p70_cap5",
        "variant": "ridge_a1_H20_c12_p70_cap5",
        "gain_pct": 184.1208113672983,
        "max_drawdown_pct": -5.0764337617667525,
        "capital_score": 176.50616072464817,
        "stability_score": 176.50616072464817,
        "n_trades": 169,
        "skipped_by_capacity": 518,
        "avg_trade_ret_pct": 0.626376964087002,
        "median_trade_ret_pct": 0.6389698051494714,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4888584749332665,
        "month_gain_concentration": 0.29223219211998674,
        "top_asset_trade_share": 0.4437869822485207,
        "long_counts": {
          "XRP": 75,
          "SOL": 57,
          "ETH": 25,
          "BNB": 7,
          "BTC": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 169,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.237704918032787,
        "max_open_trades": 5,
        "avg_exposure": 0.8475409836065573,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.5242702976004665,
          "2025-02-28 00:00:00+00:00": 13.70570621225994,
          "2025-03-31 00:00:00+00:00": 18.249737709904494,
          "2025-04-30 00:00:00+00:00": 35.51548959017239,
          "2025-05-31 00:00:00+00:00": 8.023366233821946,
          "2025-07-31 00:00:00+00:00": 0.4888584749332665,
          "2025-08-31 00:00:00+00:00": 1.3051402027646475,
          "2025-10-31 00:00:00+00:00": 6.883355765783705,
          "2025-11-30 00:00:00+00:00": 10.921752350512634,
          "2025-12-31 00:00:00+00:00": 4.005311986935595,
          "2026-01-31 00:00:00+00:00": 7.200638280048679,
          "2026-02-28 00:00:00+00:00": 51.8090404451348,
          "2026-03-31 00:00:00+00:00": 15.654578147763232
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.26123868777901293,
            "drawdown_pct": -0.2612386877790085,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0037495458466594,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.9239767460909576,
            "drawdown_pct": -1.6424387641891691,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.4705074657462376,
            "drawdown_pct": -0.15002260444204607,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.4705074657462376,
            "drawdown_pct": -0.15002260444204607,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 1.4043729238335487,
            "drawdown_pct": -2.1438611615251846,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 2.4183149390545537,
            "drawdown_pct": -1.1653979280889293,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.5242702976004665,
            "drawdown_pct": -0.09814098448243103,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.727826373566714,
            "drawdown_pct": -1.5449870310315084,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.077576434832579,
            "drawdown_pct": -0.2513778456921023,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.321542988616315,
            "drawdown_pct": -0.9759651885753784,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.321542988616315,
            "drawdown_pct": -0.9759651885753784,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.443332625096318,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 14.001682073527618,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 14.001682073527618,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 17.229976509860407,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.229976509860407,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 27.475131878077505,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 27.475131878077505,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 31.930916361425034,
            "drawdown_pct": -1.7584614850024827,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 31.930916361425034,
            "drawdown_pct": -1.7584614850024827,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 35.4797142197649,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 35.4797142197649,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 50.523479423056955,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 50.523479423056955,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 70.9952038099373,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 79.01857004375924,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 77.34072484573358,
            "drawdown_pct": -0.9372464530442493,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 79.5074285186925,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 79.5074285186925,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 80.81256872145715,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 75.31379513820517,
            "drawdown_pct": -3.1803048618749608,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 75.31379513820517,
            "drawdown_pct": -3.1803048618749608,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 83.8639190374067,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 79.60830114376762,
            "drawdown_pct": -2.3145475827551,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 79.60830114376762,
            "drawdown_pct": -2.3145475827551,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 87.69592448724086,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 102.62298882468909,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 109.82362710473777,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 116.71197602513274,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 161.51140387640925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 161.63266754987256,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 161.63266754987256,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 177.2872456976358,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p70_cap5",
        "variant": "ridge_a1_H20_c12_p70_cap5",
        "gain_pct": 27.567565255004524,
        "max_drawdown_pct": -0.9650676952589698,
        "capital_score": 26.119963712116068,
        "stability_score": 15.578515282837673,
        "n_trades": 16,
        "skipped_by_capacity": 41,
        "avg_trade_ret_pct": 1.5497135985028876,
        "median_trade_ret_pct": 0.6427860382010128,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9066579371711359,
        "top_asset_trade_share": 0.5625,
        "long_counts": {
          "XRP": 9,
          "ETH": 4,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 16,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.076923076923077,
        "max_open_trades": 5,
        "avg_exposure": 0.8153846153846154,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 22.632402339539354,
          "2026-03-31 00:00:00+00:00": 2.3300464646422228
        }
      },
      "selection_score": 891.4360644678458
    },
    {
      "name": "ridge_a1_H20_c12_p80_cap1",
      "variant": {
        "name": "ridge_a1_H20_c12_p80_cap1",
        "threshold": 0.05247557764585923,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p80_cap1",
        "variant": "ridge_a1_H20_c12_p80_cap1",
        "gain_pct": 843.7434801681081,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 819.1592942252322,
        "stability_score": 807.1672298577471,
        "n_trades": 64,
        "skipped_by_capacity": 1250,
        "avg_trade_ret_pct": 3.7613703592173753,
        "median_trade_ret_pct": 3.4422851950561197,
        "positive_month_rate": 0.875,
        "worst_month_pct": -15.742064367485114,
        "month_gain_concentration": 0.20263730358080265,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "SOL": 18,
          "ETH": 5,
          "XRP": 40,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 64,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 26.186490872389044,
          "2024-10-31 00:00:00+00:00": 4.050398151531283,
          "2024-11-30 00:00:00+00:00": 92.07350173665895,
          "2024-12-31 00:00:00+00:00": 69.46465417308221,
          "2025-01-31 00:00:00+00:00": 10.765427205369178,
          "2025-02-28 00:00:00+00:00": 69.77114579715521,
          "2025-03-31 00:00:00+00:00": 132.9881083517053,
          "2025-04-30 00:00:00+00:00": 102.33927875610141,
          "2025-05-31 00:00:00+00:00": 62.62619562392604,
          "2025-07-31 00:00:00+00:00": -15.742064367485114,
          "2025-10-31 00:00:00+00:00": 13.753197019202958,
          "2025-11-30 00:00:00+00:00": 31.974284821322954,
          "2026-01-31 00:00:00+00:00": 40.69853440433462,
          "2026-02-28 00:00:00+00:00": 5.387309348646568,
          "2026-03-31 00:00:00+00:00": 168.25693993820107
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p80_cap1",
        "variant": "ridge_a1_H20_c12_p80_cap1",
        "gain_pct": 122.73632738438718,
        "max_drawdown_pct": -19.809203781979445,
        "capital_score": 93.02252171141802,
        "stability_score": 93.02252171141802,
        "n_trades": 35,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.4797810596186434,
        "median_trade_ret_pct": 3.0451631169511306,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -4.274078038375492,
        "month_gain_concentration": 0.3258721028211439,
        "top_asset_trade_share": 0.4857142857142857,
        "long_counts": {
          "XRP": 17,
          "SOL": 13,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 35,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -4.274078038375492,
          "2025-02-28 00:00:00+00:00": 20.696308329401404,
          "2025-03-31 00:00:00+00:00": 14.471906289429072,
          "2025-04-30 00:00:00+00:00": 19.980411038848217,
          "2025-05-31 00:00:00+00:00": 0.22242413072498834,
          "2025-07-31 00:00:00+00:00": 0.9443730407463988,
          "2025-10-31 00:00:00+00:00": 1.5857614277407777,
          "2025-11-30 00:00:00+00:00": 14.287031907140431,
          "2025-12-31 00:00:00+00:00": 3.854482431918484,
          "2026-01-31 00:00:00+00:00": 6.3238452087263965,
          "2026-02-28 00:00:00+00:00": 1.294878605975157,
          "2026-03-31 00:00:00+00:00": 40.44176744510793
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.306193438895022,
            "drawdown_pct": -1.3061934388950203,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.056857839653375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -4.274078038375492,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": -0.45047695744897,
            "drawdown_pct": -13.04978341265386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.422726929513189,
            "drawdown_pct": -12.287095006162762,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.49690593869478,
            "drawdown_pct": -2.6144995587310094,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.42223029102591,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 22.81055715586993,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 28.833807495100103,
            "drawdown_pct": -0.9296610621081447,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 28.833807495100103,
            "drawdown_pct": -0.9296610621081447,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 30.894136580454983,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 30.894136580454983,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 50.8745476193032,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 51.09697175002819,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.54825960944447,
            "drawdown_pct": -2.3486322058489884,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 52.04134479077459,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 52.04134479077459,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 50.119518081975855,
            "drawdown_pct": -1.2640158579519167,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 50.119518081975855,
            "drawdown_pct": -1.2640158579519167,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 57.302122027486234,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 53.627106218515365,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 53.627106218515365,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 60.24725424262101,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 60.24725424262101,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 71.76862055757428,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 78.09246576630068,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 83.86380709193605,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 119.82911181738376,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p80_cap1",
        "variant": "ridge_a1_H20_c12_p80_cap1",
        "gain_pct": 25.088493673153366,
        "max_drawdown_pct": -2.4185184697359086,
        "capital_score": 21.460715968549504,
        "stability_score": 3.753429291354033,
        "n_trades": 4,
        "skipped_by_capacity": 31,
        "avg_trade_ret_pct": 6.172248793936797,
        "median_trade_ret_pct": 2.281566026165436,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9682914670878189,
        "top_asset_trade_share": 0.75,
        "long_counts": {
          "XRP": 3,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.7437491452869409,
          "2026-03-31 00:00:00+00:00": 22.71205523856152
        }
      },
      "selection_score": 704.1592942252322
    },
    {
      "name": "ridge_a1_H20_c12_p80_cap2",
      "variant": {
        "name": "ridge_a1_H20_c12_p80_cap2",
        "threshold": 0.05247557764585923,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p80_cap2",
        "variant": "ridge_a1_H20_c12_p80_cap2",
        "gain_pct": 747.3902038089299,
        "max_drawdown_pct": -16.038331602416676,
        "capital_score": 723.3327064053049,
        "stability_score": 720.5788883014303,
        "n_trades": 123,
        "skipped_by_capacity": 1191,
        "avg_trade_ret_pct": 1.801206370365881,
        "median_trade_ret_pct": 1.6895073059901333,
        "positive_month_rate": 0.875,
        "worst_month_pct": -6.961135177045321,
        "month_gain_concentration": 0.21667175488881651,
        "top_asset_trade_share": 0.6097560975609756,
        "long_counts": {
          "SOL": 36,
          "ETH": 9,
          "XRP": 75,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 123,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9468599033816425,
        "max_open_trades": 2,
        "avg_exposure": 0.9734299516908212,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.622997216482105,
          "2024-10-31 00:00:00+00:00": 3.7384080639964026,
          "2024-11-30 00:00:00+00:00": 89.30769093620928,
          "2024-12-31 00:00:00+00:00": 70.75086762729993,
          "2025-01-31 00:00:00+00:00": 12.540536055469943,
          "2025-02-28 00:00:00+00:00": 64.32612858899677,
          "2025-03-31 00:00:00+00:00": 91.20118723026593,
          "2025-04-30 00:00:00+00:00": 76.1036390100324,
          "2025-05-31 00:00:00+00:00": 71.19060452338749,
          "2025-07-31 00:00:00+00:00": -6.961135177045321,
          "2025-10-31 00:00:00+00:00": 12.374252623256552,
          "2025-11-30 00:00:00+00:00": 28.963540233767958,
          "2026-01-31 00:00:00+00:00": 36.98006082696509,
          "2026-02-28 00:00:00+00:00": 5.100588986544608,
          "2026-03-31 00:00:00+00:00": 159.37938494951425
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p80_cap2",
        "variant": "ridge_a1_H20_c12_p80_cap2",
        "gain_pct": 127.44537510201297,
        "max_drawdown_pct": -11.10008288763934,
        "capital_score": 110.79525077055396,
        "stability_score": 110.79525077055396,
        "n_trades": 65,
        "skipped_by_capacity": 370,
        "avg_trade_ret_pct": 1.3117819421297747,
        "median_trade_ret_pct": 1.3343979151886776,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -2.830453752596256,
        "month_gain_concentration": 0.33916432227868637,
        "top_asset_trade_share": 0.4461538461538462,
        "long_counts": {
          "XRP": 29,
          "SOL": 25,
          "ETH": 9,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 65,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9263157894736842,
        "max_open_trades": 2,
        "avg_exposure": 0.9631578947368421,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.830453752596256,
          "2025-02-28 00:00:00+00:00": 19.714404363644178,
          "2025-03-31 00:00:00+00:00": 12.800471346015499,
          "2025-04-30 00:00:00+00:00": 20.245851000551994,
          "2025-05-31 00:00:00+00:00": 0.11051602526129045,
          "2025-07-31 00:00:00+00:00": 0.9930638914457006,
          "2025-10-31 00:00:00+00:00": 4.272180967007387,
          "2025-11-30 00:00:00+00:00": 14.24501505266781,
          "2025-12-31 00:00:00+00:00": 3.91439347373057,
          "2026-01-31 00:00:00+00:00": 6.44509527233302,
          "2026-02-28 00:00:00+00:00": 1.381713788715274,
          "2026-03-31 00:00:00+00:00": 43.17475773927907
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6530967194475039,
            "drawdown_pct": -0.653096719447499,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.0527910596746892,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.624332304089208,
            "drawdown_pct": -5.156990735201816,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.479292559521895,
            "drawdown_pct": -1.5592693732803142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.479292559521895,
            "drawdown_pct": -1.5592693732803142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.830453752596256,
            "drawdown_pct": -9.31451192788877,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -4.743693937327222,
            "drawdown_pct": -11.10008288763934,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.0310628333077716,
            "drawdown_pct": -5.710671734998963,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.9192054605569098,
            "drawdown_pct": -4.881794265254813,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.886818357395143,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.883950611047922,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.70932858855963,
            "drawdown_pct": -5.484083790552163,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 27.635102114271035,
            "drawdown_pct": -2.4847296929524365,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 27.635102114271035,
            "drawdown_pct": -2.4847296929524365,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 29.68442195706342,
            "drawdown_pct": -0.9190163812916707,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 29.68442195706342,
            "drawdown_pct": -0.9190163812916707,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.930272957615415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 50.040788982876705,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 46.537573590434164,
            "drawdown_pct": -2.3348420227531252,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 51.033852874322406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 51.033852874322406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 51.65608106295252,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 51.65608106295252,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 58.998997182413945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 55.30603384132979,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 55.30603384132979,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 61.72110286690781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 61.72110286690781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 73.46544236772817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 79.9105376400612,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 85.7880306565074,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 124.46700916805554,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p80_cap2",
        "variant": "ridge_a1_H20_c12_p80_cap2",
        "gain_pct": 25.70266454443184,
        "max_drawdown_pct": -2.4038953907647764,
        "capital_score": 22.096821458284676,
        "stability_score": 9.815872912189395,
        "n_trades": 7,
        "skipped_by_capacity": 28,
        "avg_trade_ret_pct": 3.4430791043010966,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9655236561295256,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 4,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 7,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9090909090909092,
        "max_open_trades": 2,
        "avg_exposure": 0.9545454545454546,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.8576653460305153,
          "2026-03-31 00:00:00+00:00": 24.01925748699132
        }
      },
      "selection_score": 708.3327064053049
    },
    {
      "name": "ridge_a1_H20_c12_p80_cap3",
      "variant": {
        "name": "ridge_a1_H20_c12_p80_cap3",
        "threshold": 0.05247557764585923,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p80_cap3",
        "variant": "ridge_a1_H20_c12_p80_cap3",
        "gain_pct": 603.1651348371917,
        "max_drawdown_pct": -16.215679627577263,
        "capital_score": 578.8416153958258,
        "stability_score": 576.7620699412803,
        "n_trades": 176,
        "skipped_by_capacity": 1138,
        "avg_trade_ret_pct": 1.1353262989121684,
        "median_trade_ret_pct": 1.1032762967622987,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -3.830531010607615,
        "month_gain_concentration": 0.22620458468100632,
        "top_asset_trade_share": 0.6193181818181818,
        "long_counts": {
          "SOL": 52,
          "ETH": 11,
          "XRP": 109,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 176,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8309178743961354,
        "max_open_trades": 3,
        "avg_exposure": 0.9436392914653783,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 9.693388827003957,
          "2024-10-31 00:00:00+00:00": 1.6599882482941695,
          "2024-11-30 00:00:00+00:00": 75.15743101697721,
          "2024-12-31 00:00:00+00:00": 66.85017698670734,
          "2025-01-31 00:00:00+00:00": -2.1624434409921207,
          "2025-02-28 00:00:00+00:00": 53.96196892573744,
          "2025-03-31 00:00:00+00:00": 68.9083852681855,
          "2025-04-30 00:00:00+00:00": 62.47763489352303,
          "2025-05-31 00:00:00+00:00": 52.74221372779698,
          "2025-07-31 00:00:00+00:00": -3.830531010607615,
          "2025-10-31 00:00:00+00:00": 10.27232713367107,
          "2025-11-30 00:00:00+00:00": 24.098967010953345,
          "2026-01-31 00:00:00+00:00": 30.801563168719667,
          "2026-02-28 00:00:00+00:00": 4.30433503784991,
          "2026-03-31 00:00:00+00:00": 134.74377174762878
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p80_cap3",
        "variant": "ridge_a1_H20_c12_p80_cap3",
        "gain_pct": 120.15830241064222,
        "max_drawdown_pct": -6.644335085614794,
        "capital_score": 110.19179978222003,
        "stability_score": 110.19179978222003,
        "n_trades": 89,
        "skipped_by_capacity": 346,
        "avg_trade_ret_pct": 0.9085959213347532,
        "median_trade_ret_pct": 1.0150543723170435,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -1.0677287573923024,
        "month_gain_concentration": 0.35739118453681135,
        "top_asset_trade_share": 0.4606741573033708,
        "long_counts": {
          "XRP": 41,
          "SOL": 32,
          "ETH": 13,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 89,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.778947368421053,
        "max_open_trades": 3,
        "avg_exposure": 0.9263157894736842,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.13683391696378067,
          "2025-02-28 00:00:00+00:00": 14.531479887644295,
          "2025-03-31 00:00:00+00:00": 13.575089988901155,
          "2025-04-30 00:00:00+00:00": 20.17583160068989,
          "2025-05-31 00:00:00+00:00": 0.07293481004876412,
          "2025-07-31 00:00:00+00:00": 0.6666756008997936,
          "2025-10-31 00:00:00+00:00": 3.4016408709378823,
          "2025-11-30 00:00:00+00:00": 14.352945699202593,
          "2025-12-31 00:00:00+00:00": 3.4007864311084006,
          "2026-01-31 00:00:00+00:00": 6.3475638912426575,
          "2026-02-28 00:00:00+00:00": -1.0677287573923024,
          "2026-03-31 00:00:00+00:00": 42.63596245137785
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.43539781296500735,
            "drawdown_pct": -0.43539781296501046,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0406078486382313,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.1441488694863011,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.7019790342459515,
            "drawdown_pct": -0.9960412742724634,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.7019790342459515,
            "drawdown_pct": -0.9960412742724634,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.13683391696378067,
            "drawdown_pct": -4.399674293909173,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.1606810905953893,
            "drawdown_pct": -5.638407859562511,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.7719369090753645,
            "drawdown_pct": -2.8386465232639213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.4494335010426767,
            "drawdown_pct": -3.1465395296956578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.134337812502935,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 14.668313804608076,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 22.51585226567373,
            "drawdown_pct": -5.4589464927697335,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 26.214189201300044,
            "drawdown_pct": -2.6050735967087957,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.214189201300044,
            "drawdown_pct": -2.6050735967087957,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.24340379350923,
            "drawdown_pct": -1.039202064234035,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.24340379350923,
            "drawdown_pct": -1.039202064234035,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 48.41923539419912,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 48.492170204247884,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 46.17624795681792,
            "drawdown_pct": -1.5596258336345037,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 49.15884580514768,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 49.15884580514768,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 48.94051658574497,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 48.94051658574497,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 56.180967399248544,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 52.56048667608556,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 52.56048667608556,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 59.17571554667498,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 59.17571554667498,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 70.31421880639655,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 76.66178269763921,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 82.44882540174245,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 118.23001639162476,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p80_cap3",
        "variant": "ridge_a1_H20_c12_p80_cap3",
        "gain_pct": 25.708925820983808,
        "max_drawdown_pct": -1.605846500281205,
        "capital_score": 23.300156070562,
        "stability_score": 9.126835209479278,
        "n_trades": 8,
        "skipped_by_capacity": 27,
        "avg_trade_ret_pct": 2.964476950556938,
        "median_trade_ret_pct": 1.1048153882742284,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9769328344433089,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5454545454545454,
        "max_open_trades": 3,
        "avg_exposure": 0.8484848484848485,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.5803052009299563,
          "2026-03-31 00:00:00+00:00": 24.576890619413376
        }
      },
      "selection_score": 563.8416153958258
    },
    {
      "name": "ridge_a1_H20_c12_p80_cap5",
      "variant": {
        "name": "ridge_a1_H20_c12_p80_cap5",
        "threshold": 0.05247557764585923,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p80_cap5",
        "variant": "ridge_a1_H20_c12_p80_cap5",
        "gain_pct": 487.3985675840245,
        "max_drawdown_pct": -17.26747395499697,
        "capital_score": 461.497356651529,
        "stability_score": 456.00660100321954,
        "n_trades": 267,
        "skipped_by_capacity": 1047,
        "avg_trade_ret_pct": 0.6732843746382308,
        "median_trade_ret_pct": 0.6776498322103692,
        "positive_month_rate": 0.75,
        "worst_month_pct": -9.563789356174652,
        "month_gain_concentration": 0.23306791879249109,
        "top_asset_trade_share": 0.6142322097378277,
        "long_counts": {
          "SOL": 84,
          "ETH": 15,
          "XRP": 164,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 267,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.454106280193237,
        "max_open_trades": 5,
        "avg_exposure": 0.8908212560386473,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 10.129784966836112,
          "2024-10-31 00:00:00+00:00": 0.5592406892149882,
          "2024-11-30 00:00:00+00:00": 60.802364605125874,
          "2024-12-31 00:00:00+00:00": 61.7435948075661,
          "2025-01-31 00:00:00+00:00": -9.563789356174652,
          "2025-02-28 00:00:00+00:00": 43.29547335805523,
          "2025-03-31 00:00:00+00:00": 58.59417917034614,
          "2025-04-30 00:00:00+00:00": 49.95982409628408,
          "2025-05-31 00:00:00+00:00": 43.580920646078425,
          "2025-07-31 00:00:00+00:00": -1.9686309976065104,
          "2025-10-31 00:00:00+00:00": 8.839005685866937,
          "2025-11-30 00:00:00+00:00": 20.774823215181755,
          "2026-01-31 00:00:00+00:00": 22.13768155745737,
          "2026-02-28 00:00:00+00:00": -3.8892793529025766,
          "2026-03-31 00:00:00+00:00": 115.60733427442779
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p80_cap5",
        "variant": "ridge_a1_H20_c12_p80_cap5",
        "gain_pct": 110.52607064271626,
        "max_drawdown_pct": -5.0764337617667525,
        "capital_score": 102.91142000006613,
        "stability_score": 102.91142000006613,
        "n_trades": 132,
        "skipped_by_capacity": 303,
        "avg_trade_ret_pct": 0.5719967256971701,
        "median_trade_ret_pct": 0.6090326233902261,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -0.05015286670246155,
        "month_gain_concentration": 0.3785747257218236,
        "top_asset_trade_share": 0.4696969696969697,
        "long_counts": {
          "XRP": 62,
          "SOL": 48,
          "ETH": 17,
          "BNB": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 132,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.242105263157895,
        "max_open_trades": 5,
        "avg_exposure": 0.8484210526315791,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.0774020346501914,
          "2025-02-28 00:00:00+00:00": 10.383142794378458,
          "2025-03-31 00:00:00+00:00": 10.472913468890198,
          "2025-04-30 00:00:00+00:00": 16.994877214873398,
          "2025-05-31 00:00:00+00:00": 0.041552220723218625,
          "2025-07-31 00:00:00+00:00": 0.38495628868042786,
          "2025-10-31 00:00:00+00:00": 4.515564716884285,
          "2025-11-30 00:00:00+00:00": 14.554566502350355,
          "2025-12-31 00:00:00+00:00": 1.8343270357703432,
          "2026-01-31 00:00:00+00:00": 5.766228945927196,
          "2026-02-28 00:00:00+00:00": -0.05015286670246155,
          "2026-03-31 00:00:00+00:00": 41.441421665365084
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.26123868777901293,
            "drawdown_pct": -0.2612386877790085,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 1.2269633374333893,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 0.7155156708165151,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.2437099574156605,
            "drawdown_pct": -0.5767583767645745,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.2437099574156605,
            "drawdown_pct": -0.5767583767645745,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.0774020346501914,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.284396005052656,
            "drawdown_pct": -1.5449870310315084,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.536744911487972,
            "drawdown_pct": -0.339524295359972,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.0929327295165336,
            "drawdown_pct": -0.7667207773104034,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.343609583922358,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 13.460544829028649,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 17.64109213116035,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 20.980109773073423,
            "drawdown_pct": -2.3822096895404377,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 20.980109773073423,
            "drawdown_pct": -2.3822096895404377,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 23.933458297918847,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 23.933458297918847,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 40.928335512792245,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 40.96988773351546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 39.648652460872626,
            "drawdown_pct": -0.9372464530442493,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 41.35484402219589,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 41.35484402219589,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 42.38258917631734,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 42.38258917631734,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 49.32664499113167,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 45.870408739080176,
            "drawdown_pct": -2.3145475827550777,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 45.870408739080176,
            "drawdown_pct": -2.3145475827550777,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 52.43884079554644,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 52.43884079554644,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 62.259302277200874,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 68.02553122312807,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 73.5416806795564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 109.41680002179069,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p80_cap5",
        "variant": "ridge_a1_H20_c12_p80_cap5",
        "gain_pct": 26.37520151013942,
        "max_drawdown_pct": -0.9650676952589698,
        "capital_score": 24.927599967250963,
        "stability_score": 8.265773064890091,
        "n_trades": 10,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 2.3944375491413483,
        "median_trade_ret_pct": 2.593263075420407,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.986473076094435,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "XRP": 7,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.727272727272727,
        "max_open_trades": 5,
        "avg_exposure": 0.7454545454545454,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.3522657673993308,
          "2026-03-31 00:00:00+00:00": 25.68955792131149
        }
      },
      "selection_score": 446.497356651529
    },
    {
      "name": "ridge_a1_H20_c12_p90_cap1",
      "variant": {
        "name": "ridge_a1_H20_c12_p90_cap1",
        "threshold": 0.06855036234531926,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p90_cap1",
        "variant": "ridge_a1_H20_c12_p90_cap1",
        "gain_pct": 444.94136318195547,
        "max_drawdown_pct": -16.936038073764525,
        "capital_score": 419.53730607130865,
        "stability_score": 403.4426914760942,
        "n_trades": 48,
        "skipped_by_capacity": 609,
        "avg_trade_ret_pct": 3.818699442005629,
        "median_trade_ret_pct": 3.920841928990563,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -17.969614595214438,
        "month_gain_concentration": 0.23270959489561727,
        "top_asset_trade_share": 0.6875,
        "long_counts": {
          "SOL": 12,
          "XRP": 33,
          "BTC": 1,
          "ETH": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 48,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.576200503258718,
          "2024-10-31 00:00:00+00:00": 9.82267471941104,
          "2024-11-30 00:00:00+00:00": 84.05748696954576,
          "2024-12-31 00:00:00+00:00": 64.14179840258805,
          "2025-01-31 00:00:00+00:00": -17.969614595214438,
          "2025-02-28 00:00:00+00:00": 32.016663650029585,
          "2025-03-31 00:00:00+00:00": 51.972030157762845,
          "2025-04-30 00:00:00+00:00": 34.3377980282649,
          "2025-07-31 00:00:00+00:00": 30.357086779725705,
          "2025-10-31 00:00:00+00:00": 8.432589178171838,
          "2025-11-30 00:00:00+00:00": 19.60460595362713,
          "2026-02-28 00:00:00+00:00": 13.893017434893125
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p90_cap1",
        "variant": "ridge_a1_H20_c12_p90_cap1",
        "gain_pct": 79.42484428537017,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 54.840658342494244,
        "stability_score": 50.688965450232494,
        "n_trades": 23,
        "skipped_by_capacity": 178,
        "avg_trade_ret_pct": 2.758894408090361,
        "median_trade_ret_pct": 3.0451631169511306,
        "positive_month_rate": 0.75,
        "worst_month_pct": -10.15169289226175,
        "month_gain_concentration": 0.3546503586732011,
        "top_asset_trade_share": 0.5217391304347826,
        "long_counts": {
          "XRP": 12,
          "SOL": 9,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 23,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -10.15169289226175,
          "2025-02-28 00:00:00+00:00": 10.1901861600184,
          "2025-03-31 00:00:00+00:00": 20.634801583112946,
          "2025-04-30 00:00:00+00:00": 4.9099400976911625,
          "2025-07-31 00:00:00+00:00": 14.41426642723637,
          "2025-10-31 00:00:00+00:00": 1.4601465013830932,
          "2025-11-30 00:00:00+00:00": 6.574166108460986,
          "2026-02-28 00:00:00+00:00": -2.091915305164548
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -10.15169289226175,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -5.036197497849159,
            "drawdown_pct": -11.629107769492597,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -5.036197497849159,
            "drawdown_pct": -11.629107769492597,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": -3.286351893877722,
            "drawdown_pct": -10.000746086259827,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 7.378806128667776,
            "drawdown_pct": -0.07602208197037275,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 7.378806128667776,
            "drawdown_pct": -0.07602208197037275,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 20.627612816502207,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 20.627612816502207,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 18.77384613832905,
            "drawdown_pct": -1.5367681038280123,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 18.77384613832905,
            "drawdown_pct": -1.5367681038280123,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 20.673294850869596,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 20.673294850869596,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 25.583234948560758,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 25.583234948560758,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 25.583234948560758,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 35.8603326358045,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 39.99750137579713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 38.22791075767063,
            "drawdown_pct": -1.2640158579518945,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 44.84155000906728,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 41.45764787718022,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 48.03181398564121,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 49.581708073665425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p90_cap1",
        "variant": "ridge_a1_H20_c12_p90_cap1",
        "gain_pct": 22.94433935315115,
        "max_drawdown_pct": 0.0,
        "capital_score": 22.94433935315115,
        "stability_score": 9.444339353151152,
        "n_trades": 1,
        "skipped_by_capacity": 15,
        "avg_trade_ret_pct": 22.944339353151154,
        "median_trade_ret_pct": 22.944339353151154,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 1,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 304.53730607130865
    },
    {
      "name": "ridge_a1_H20_c12_p90_cap2",
      "variant": {
        "name": "ridge_a1_H20_c12_p90_cap2",
        "threshold": 0.06855036234531926,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p90_cap2",
        "variant": "ridge_a1_H20_c12_p90_cap2",
        "gain_pct": 379.45212998392606,
        "max_drawdown_pct": -16.586310736452468,
        "capital_score": 354.57266387924733,
        "stability_score": 341.41620036892283,
        "n_trades": 90,
        "skipped_by_capacity": 567,
        "avg_trade_ret_pct": 1.8128455687348568,
        "median_trade_ret_pct": 1.9604209644952815,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.989796843657842,
        "month_gain_concentration": 0.245348521370293,
        "top_asset_trade_share": 0.6888888888888889,
        "long_counts": {
          "SOL": 21,
          "XRP": 62,
          "BTC": 2,
          "ETH": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 90,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9185185185185185,
        "max_open_trades": 2,
        "avg_exposure": 0.9592592592592593,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 8.27903538356287,
          "2024-10-31 00:00:00+00:00": 3.6447553794391467,
          "2024-11-30 00:00:00+00:00": 61.626192877787446,
          "2024-12-31 00:00:00+00:00": 73.80925641174687,
          "2025-01-31 00:00:00+00:00": -14.989796843657842,
          "2025-02-28 00:00:00+00:00": 27.486100670958848,
          "2025-03-31 00:00:00+00:00": 40.489843199495624,
          "2025-04-30 00:00:00+00:00": 21.55705745308194,
          "2025-07-31 00:00:00+00:00": 26.88181214972957,
          "2025-10-31 00:00:00+00:00": 7.367344397972317,
          "2025-11-30 00:00:00+00:00": 17.244223338842687,
          "2026-02-28 00:00:00+00:00": 12.448702088979474
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p90_cap2",
        "variant": "ridge_a1_H20_c12_p90_cap2",
        "gain_pct": 91.6308874260954,
        "max_drawdown_pct": -5.298483050067981,
        "capital_score": 83.68316285099343,
        "stability_score": 81.34595354866785,
        "n_trades": 43,
        "skipped_by_capacity": 158,
        "avg_trade_ret_pct": 1.567915531573468,
        "median_trade_ret_pct": 1.5225815584755653,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.7539675866541415,
        "month_gain_concentration": 0.3892067796083866,
        "top_asset_trade_share": 0.627906976744186,
        "long_counts": {
          "XRP": 27,
          "SOL": 12,
          "ETH": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 43,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9259259259259258,
        "max_open_trades": 2,
        "avg_exposure": 0.9629629629629629,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.7658797907796213,
          "2025-02-28 00:00:00+00:00": 4.306314827030377,
          "2025-03-31 00:00:00+00:00": 22.860827832096447,
          "2025-04-30 00:00:00+00:00": 5.154211626212913,
          "2025-07-31 00:00:00+00:00": 15.243003958764234,
          "2025-10-31 00:00:00+00:00": 4.12409186955739,
          "2025-11-30 00:00:00+00:00": 7.048522184453873,
          "2026-02-28 00:00:00+00:00": -2.7539675866541415
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.7658797907796213,
            "drawdown_pct": -5.298483050067981,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -1.4396877125614083,
            "drawdown_pct": -4.984021185305276,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -1.4396877125614083,
            "drawdown_pct": -4.984021185305276,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.3847949375443136,
            "drawdown_pct": -3.2251488683765706,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 10.202343770900953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 10.202343770900953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.009166599329745,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.009166599329745,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 22.17802702498186,
            "drawdown_pct": -1.4766163055221937,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 22.17802702498186,
            "drawdown_pct": -1.4766163055221937,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 25.401262868347203,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 25.401262868347203,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 30.555474494560116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 30.555474494560116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 30.555474494560116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 41.458056317383694,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 45.79847845332435,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 46.39913798379746,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 53.487522324483734,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 49.92257032288174,
            "drawdown_pct": -2.3226331024260305,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 56.97109250733561,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 58.041481126281184,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p90_cap2",
        "variant": "ridge_a1_H20_c12_p90_cap2",
        "gain_pct": 24.260446124032583,
        "max_drawdown_pct": 0.0,
        "capital_score": 24.260446124032583,
        "stability_score": 10.760446124032585,
        "n_trades": 2,
        "skipped_by_capacity": 14,
        "avg_trade_ret_pct": 11.472169676575577,
        "median_trade_ret_pct": 11.472169676575577,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 339.57266387924733
    },
    {
      "name": "ridge_a1_H20_c12_p90_cap3",
      "variant": {
        "name": "ridge_a1_H20_c12_p90_cap3",
        "threshold": 0.06855036234531926,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p90_cap3",
        "variant": "ridge_a1_H20_c12_p90_cap3",
        "gain_pct": 359.52826829711336,
        "max_drawdown_pct": -16.215679627577238,
        "capital_score": 335.2047488557475,
        "stability_score": 322.804281877056,
        "n_trades": 130,
        "skipped_by_capacity": 527,
        "avg_trade_ret_pct": 1.2050901818062631,
        "median_trade_ret_pct": 1.3130470702609376,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.131236209460695,
        "month_gain_concentration": 0.2612464883448061,
        "top_asset_trade_share": 0.6923076923076923,
        "long_counts": {
          "SOL": 30,
          "XRP": 90,
          "BTC": 3,
          "ETH": 7
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 130,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7925925925925927,
        "max_open_trades": 3,
        "avg_exposure": 0.9308641975308644,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 11.350100922227426,
          "2024-10-31 00:00:00+00:00": 1.7586318660796394,
          "2024-11-30 00:00:00+00:00": 50.412879330639186,
          "2024-12-31 00:00:00+00:00": 73.8043866593676,
          "2025-01-31 00:00:00+00:00": -14.131236209460695,
          "2025-02-28 00:00:00+00:00": 27.912465573265223,
          "2025-03-31 00:00:00+00:00": 38.052239909680765,
          "2025-04-30 00:00:00+00:00": 17.839195898717094,
          "2025-07-31 00:00:00+00:00": 25.81477075563896,
          "2025-10-31 00:00:00+00:00": 7.04235376210471,
          "2025-11-30 00:00:00+00:00": 16.521421950838203,
          "2026-02-28 00:00:00+00:00": 12.000180097772159
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p90_cap3",
        "variant": "ridge_a1_H20_c12_p90_cap3",
        "gain_pct": 89.59010009915778,
        "max_drawdown_pct": -4.039919775623857,
        "capital_score": 83.530220435722,
        "stability_score": 81.40953078054959,
        "n_trades": 58,
        "skipped_by_capacity": 143,
        "avg_trade_ret_pct": 1.1289299778418003,
        "median_trade_ret_pct": 1.0804978796684437,
        "positive_month_rate": 0.875,
        "worst_month_pct": -1.7984020717198348,
        "month_gain_concentration": 0.42339470279002084,
        "top_asset_trade_share": 0.6206896551724138,
        "long_counts": {
          "XRP": 36,
          "SOL": 16,
          "ETH": 3,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 58,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6481481481481484,
        "max_open_trades": 3,
        "avg_exposure": 0.882716049382716,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4757913255255914,
          "2025-02-28 00:00:00+00:00": 3.8684270084947627,
          "2025-03-31 00:00:00+00:00": 22.770964867304116,
          "2025-04-30 00:00:00+00:00": 5.050346827503063,
          "2025-07-31 00:00:00+00:00": 10.410939769993064,
          "2025-10-31 00:00:00+00:00": 3.2743320393525437,
          "2025-11-30 00:00:00+00:00": 6.931082340470425,
          "2026-02-28 00:00:00+00:00": -1.7984020717198348
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4757913255255914,
            "drawdown_pct": -0.9865091167685858,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 2.284495761659329,
            "drawdown_pct": -0.5094149943383308,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.284495761659329,
            "drawdown_pct": -0.5094149943383308,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.85905898865353,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.474572510735015,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.474572510735015,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 27.76527191665089,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 27.76527191665089,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 25.90489307628806,
            "drawdown_pct": -1.4560911681669397,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 25.90489307628806,
            "drawdown_pct": -1.4560911681669397,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.11518320132447,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.11518320132447,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 33.16553002882753,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 33.16553002882753,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 33.16553002882753,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 40.705497798593655,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 43.5764697988206,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 43.366311705905844,
            "drawdown_pct": -0.14637363156319028,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 50.33578349246591,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 46.85080183817314,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 53.781884178643566,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 54.48069650922264,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p90_cap3",
        "variant": "ridge_a1_H20_c12_p90_cap3",
        "gain_pct": 25.78131183048275,
        "max_drawdown_pct": 0.0,
        "capital_score": 25.78131183048275,
        "stability_score": 12.281311830482752,
        "n_trades": 3,
        "skipped_by_capacity": 13,
        "avg_trade_ret_pct": 7.946529999650227,
        "median_trade_ret_pct": 7.648113117717051,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 3,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8,
        "max_open_trades": 3,
        "avg_exposure": 0.9333333333333332,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 320.2047488557475
    },
    {
      "name": "ridge_a1_H20_c12_p90_cap5",
      "variant": {
        "name": "ridge_a1_H20_c12_p90_cap5",
        "threshold": 0.06855036234531926,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 1.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a1_H20_c12_p90_cap5",
        "variant": "ridge_a1_H20_c12_p90_cap5",
        "gain_pct": 324.6521864646193,
        "max_drawdown_pct": -15.969209134044748,
        "capital_score": 300.6983727635522,
        "stability_score": 289.8605008005867,
        "n_trades": 202,
        "skipped_by_capacity": 455,
        "avg_trade_ret_pct": 0.7279519774779906,
        "median_trade_ret_pct": 0.7878282421565627,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -12.694307606529833,
        "month_gain_concentration": 0.2942466816623564,
        "top_asset_trade_share": 0.6881188118811881,
        "long_counts": {
          "SOL": 49,
          "BNB": 1,
          "XRP": 139,
          "BTC": 3,
          "ETH": 10
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 202,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.392592592592592,
        "max_open_trades": 5,
        "avg_exposure": 0.8785185185185186,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.30719834418207,
          "2024-10-31 00:00:00+00:00": 0.6289302925886631,
          "2024-11-30 00:00:00+00:00": 37.78680341249468,
          "2024-12-31 00:00:00+00:00": 73.13588521645178,
          "2025-01-31 00:00:00+00:00": -12.694307606529833,
          "2025-02-28 00:00:00+00:00": 28.745374646668324,
          "2025-03-31 00:00:00+00:00": 35.26074106982654,
          "2025-04-30 00:00:00+00:00": 12.156925601096418,
          "2025-07-31 00:00:00+00:00": 22.943319574020165,
          "2025-10-31 00:00:00+00:00": 6.595798571145792,
          "2025-11-30 00:00:00+00:00": 15.502484572173046,
          "2026-02-28 00:00:00+00:00": 2.4895038620118726
        }
      },
      "test": {
        "label": "Test ridge_a1_H20_c12_p90_cap5",
        "variant": "ridge_a1_H20_c12_p90_cap5",
        "gain_pct": 69.8810580895537,
        "max_drawdown_pct": -4.028514850031728,
        "capital_score": 63.838285814506115,
        "stability_score": 62.12400010022041,
        "n_trades": 84,
        "skipped_by_capacity": 117,
        "avg_trade_ret_pct": 0.6433293527946203,
        "median_trade_ret_pct": 0.5713958947328487,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.022474859653528,
        "month_gain_concentration": 0.34791505128978356,
        "top_asset_trade_share": 0.6071428571428571,
        "long_counts": {
          "XRP": 51,
          "SOL": 24,
          "ETH": 4,
          "BNB": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 84,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.888888888888889,
        "max_open_trades": 5,
        "avg_exposure": 0.7777777777777778,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.022474859653528,
          "2025-02-28 00:00:00+00:00": 6.466199218646452,
          "2025-03-31 00:00:00+00:00": 13.472875481378168,
          "2025-04-30 00:00:00+00:00": 2.774635243789376,
          "2025-07-31 00:00:00+00:00": 5.790679100918908,
          "2025-10-31 00:00:00+00:00": 4.0404506330780805,
          "2025-11-30 00:00:00+00:00": 6.1797726418681975,
          "2026-02-28 00:00:00+00:00": -0.9590736023160105
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.022474859653528,
            "drawdown_pct": -3.4629048254632644,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.5054924496046596,
            "drawdown_pct": -3.938821266354109,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.6101344065844074,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.556028490986108,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 11.896934213463453,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 11.896934213463453,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 18.45776746702417,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 18.45776746702417,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 16.68931011577348,
            "drawdown_pct": -1.492901131825719,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.68931011577348,
            "drawdown_pct": -1.492901131825719,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 17.91659984037109,
            "drawdown_pct": -0.4568443574658132,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 17.91659984037109,
            "drawdown_pct": -0.4568443574658132,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 20.691235084160468,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 20.691235084160468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 20.691235084160468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 24.95524294763166,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 26.481914185079376,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 27.40152309757842,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 33.614946328605726,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 30.522364818157456,
            "drawdown_pct": -2.3145475827551,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 36.702137460025654,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 37.074736522492856,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a1_H20_c12_p90_cap5",
        "variant": "ridge_a1_H20_c12_p90_cap5",
        "gain_pct": 23.920587907763377,
        "max_drawdown_pct": 0.0,
        "capital_score": 23.920587907763377,
        "stability_score": 16.420587907763377,
        "n_trades": 5,
        "skipped_by_capacity": 11,
        "avg_trade_ret_pct": 4.387287740818259,
        "median_trade_ret_pct": 4.588867870630231,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.2,
        "max_open_trades": 5,
        "avg_exposure": 0.8400000000000001,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 285.6983727635522
    },
    {
      "name": "ridge_a10_H20_c12_p70_cap1",
      "variant": {
        "name": "ridge_a10_H20_c12_p70_cap1",
        "threshold": 0.032006686092834725,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p70_cap1",
        "variant": "ridge_a10_H20_c12_p70_cap1",
        "gain_pct": 1086.1987815028795,
        "max_drawdown_pct": -21.242526275681694,
        "capital_score": 1054.334992089357,
        "stability_score": 1032.3410623214932,
        "n_trades": 78,
        "skipped_by_capacity": 1893,
        "avg_trade_ret_pct": 3.437560726852419,
        "median_trade_ret_pct": 3.4161849483114826,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -24.93783266203377,
        "month_gain_concentration": 0.19283873932811027,
        "top_asset_trade_share": 0.5897435897435898,
        "long_counts": {
          "SOL": 23,
          "ETH": 8,
          "XRP": 46,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 78,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 63.406794305723935,
          "2024-10-31 00:00:00+00:00": 2.361691949256084,
          "2024-11-30 00:00:00+00:00": 96.82095412973575,
          "2024-12-31 00:00:00+00:00": 43.41576028194021,
          "2025-01-31 00:00:00+00:00": 19.659077231393553,
          "2025-02-28 00:00:00+00:00": 118.93424123205057,
          "2025-03-31 00:00:00+00:00": 189.6118371964556,
          "2025-04-30 00:00:00+00:00": 201.0633441304292,
          "2025-05-31 00:00:00+00:00": 35.03551087157973,
          "2025-07-31 00:00:00+00:00": -20.44036242773302,
          "2025-08-31 00:00:00+00:00": 17.857907644766897,
          "2025-10-31 00:00:00+00:00": -24.93783266203377,
          "2025-11-30 00:00:00+00:00": 90.2638042616677,
          "2026-01-31 00:00:00+00:00": -1.7477704164024317,
          "2026-02-28 00:00:00+00:00": 6.7713525118133475,
          "2026-03-31 00:00:00+00:00": 211.483503015613
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p70_cap1",
        "variant": "ridge_a10_H20_c12_p70_cap1",
        "gain_pct": 240.25145198711328,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 215.66726604423735,
        "stability_score": 215.66726604423735,
        "n_trades": 44,
        "skipped_by_capacity": 643,
        "avg_trade_ret_pct": 2.9739326862301505,
        "median_trade_ret_pct": 3.5301288417761514,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -2.6577441400129374,
        "month_gain_concentration": 0.24657390589383818,
        "top_asset_trade_share": 0.4772727272727273,
        "long_counts": {
          "XRP": 21,
          "SOL": 15,
          "ETH": 5,
          "BTC": 1,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 44,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 5.938574724734124,
          "2025-02-28 00:00:00+00:00": 29.332834157163788,
          "2025-03-31 00:00:00+00:00": 45.89979879257339,
          "2025-04-30 00:00:00+00:00": 20.157542802750612,
          "2025-05-31 00:00:00+00:00": 7.627181607492503,
          "2025-07-31 00:00:00+00:00": 1.3059980400619793,
          "2025-08-31 00:00:00+00:00": -2.6577441400129374,
          "2025-10-31 00:00:00+00:00": 7.6369975957951794,
          "2025-11-30 00:00:00+00:00": 18.468025985313005,
          "2025-12-31 00:00:00+00:00": 5.364813544021445,
          "2026-01-31 00:00:00+00:00": 8.801765483513833,
          "2026-02-28 00:00:00+00:00": 58.80002094744481,
          "2026-03-31 00:00:00+00:00": 29.1345872778993
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.306193438895022,
            "drawdown_pct": -1.3061934388950203,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.056857839653375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.274078038375492,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.5117379685713388,
            "drawdown_pct": -12.209349489276022,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 5.938574724734124,
            "drawdown_pct": -7.469350573049849,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 10.170101990584797,
            "drawdown_pct": -3.7733789499240444,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.136464845423149,
            "drawdown_pct": -2.929322072883611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 11.136464845423149,
            "drawdown_pct": -2.929322072883611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 14.957141085626546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 30.144243379378736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 30.144243379378736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 35.27140888189791,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 35.27140888189791,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 68.30706247884461,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 68.30706247884461,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 78.319496220069,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 78.319496220069,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 81.1712076744713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 81.1712076744713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 101.03238204709263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 101.03238204709263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 101.32875047722192,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 108.95593208471442,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 104.04832576774086,
            "drawdown_pct": -2.3486322058489995,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 110.2619301247764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 110.2619301247764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 107.60418598476346,
            "drawdown_pct": -1.2640158579519056,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 101.63779344129037,
            "drawdown_pct": -4.101615864730334,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 101.63779344129037,
            "drawdown_pct": -4.101615864730334,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 111.285335807797,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 106.34912172950442,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 106.34912172950442,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 115.24118358055864,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 139.0740231098931,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 147.87578859340692,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 155.90855840305647,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 205.96642150503084,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 206.67580954085173,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 206.67580954085173,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 235.81039681875103,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p70_cap1",
        "variant": "ridge_a10_H20_c12_p70_cap1",
        "gain_pct": 36.97205775940381,
        "max_drawdown_pct": -2.4185184697359086,
        "capital_score": 33.344280054799945,
        "stability_score": 21.67787598670045,
        "n_trades": 5,
        "skipped_by_capacity": 52,
        "avg_trade_ret_pct": 6.837824167325265,
        "median_trade_ret_pct": 3.2406431685935244,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.6666561627239799,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 23.45580438384846,
          "2026-03-31 00:00:00+00:00": 11.72845655211475
        }
      },
      "selection_score": 930.6373081595852
    },
    {
      "name": "ridge_a10_H20_c12_p70_cap2",
      "variant": {
        "name": "ridge_a10_H20_c12_p70_cap2",
        "threshold": 0.032006686092834725,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p70_cap2",
        "variant": "ridge_a10_H20_c12_p70_cap2",
        "gain_pct": 1262.3855433647618,
        "max_drawdown_pct": -16.038331602416676,
        "capital_score": 1238.3280459611367,
        "stability_score": 1212.7997902326065,
        "n_trades": 147,
        "skipped_by_capacity": 1824,
        "avg_trade_ret_pct": 1.8470465925044866,
        "median_trade_ret_pct": 1.7189120805297653,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -30.06907205506093,
        "month_gain_concentration": 0.2008382936797898,
        "top_asset_trade_share": 0.5986394557823129,
        "long_counts": {
          "SOL": 43,
          "XRP": 88,
          "ETH": 13,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 147,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9461538461538461,
        "max_open_trades": 2,
        "avg_exposure": 0.9730769230769231,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 56.309708961094145,
          "2024-10-31 00:00:00+00:00": 2.3120567729754953,
          "2024-11-30 00:00:00+00:00": 115.34031499932627,
          "2024-12-31 00:00:00+00:00": 79.18184742511323,
          "2025-01-31 00:00:00+00:00": 23.717333882375385,
          "2025-02-28 00:00:00+00:00": 120.57762625920009,
          "2025-03-31 00:00:00+00:00": 218.6210404172151,
          "2025-04-30 00:00:00+00:00": 229.9289620087627,
          "2025-05-31 00:00:00+00:00": 40.09554177194775,
          "2025-07-31 00:00:00+00:00": -11.579748279255796,
          "2025-08-31 00:00:00+00:00": 20.584391320792065,
          "2025-10-31 00:00:00+00:00": -30.06907205506093,
          "2025-11-30 00:00:00+00:00": 104.74729169561112,
          "2026-01-31 00:00:00+00:00": -2.002922238469864,
          "2026-02-28 00:00:00+00:00": 8.200435486130118,
          "2026-03-31 00:00:00+00:00": 256.2410669719584
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p70_cap2",
        "variant": "ridge_a10_H20_c12_p70_cap2",
        "gain_pct": 248.61197099661763,
        "max_drawdown_pct": -11.691284206757292,
        "capital_score": 231.0750446864817,
        "stability_score": 231.0750446864817,
        "n_trades": 81,
        "skipped_by_capacity": 606,
        "avg_trade_ret_pct": 1.5923172392810676,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.8815642782487032,
        "month_gain_concentration": 0.25734749386528655,
        "top_asset_trade_share": 0.48148148148148145,
        "long_counts": {
          "XRP": 39,
          "SOL": 27,
          "ETH": 10,
          "BTC": 2,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 81,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.8934426229508197,
        "max_open_trades": 2,
        "avg_exposure": 0.9467213114754098,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.9705156405194941,
          "2025-02-28 00:00:00+00:00": 25.777071661695487,
          "2025-03-31 00:00:00+00:00": 43.60806904998506,
          "2025-04-30 00:00:00+00:00": 34.389964550488855,
          "2025-05-31 00:00:00+00:00": 7.830090491494701,
          "2025-07-31 00:00:00+00:00": 1.406959165004423,
          "2025-08-31 00:00:00+00:00": 0.8815642782487032,
          "2025-10-31 00:00:00+00:00": 7.7354984462776315,
          "2025-11-30 00:00:00+00:00": 15.00443427004717,
          "2025-12-31 00:00:00+00:00": 5.4855231440361365,
          "2026-01-31 00:00:00+00:00": 9.031978905331243,
          "2026-02-28 00:00:00+00:00": 62.804869716944324,
          "2026-03-31 00:00:00+00:00": 29.12040581870758
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6530967194475039,
            "drawdown_pct": -0.653096719447499,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.464039111780295,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.081361763465409,
            "drawdown_pct": -11.691284206757292,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": -1.6836363363810989,
            "drawdown_pct": -9.483787757855778,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.9705156405194941,
            "drawdown_pct": -7.0402089403354795,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.0175645292138285,
            "drawdown_pct": -8.870560266323036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.983082703871048,
            "drawdown_pct": -3.3459879743848675,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 5.905966698897089,
            "drawdown_pct": -2.496323071658535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 5.905966698897089,
            "drawdown_pct": -2.496323071658535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 8.180167175676957,
            "drawdown_pct": -0.40255144131531306,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 21.61304144954906,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 21.61304144954906,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 26.74758730221498,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 26.74758730221498,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 58.97885610481441,
            "drawdown_pct": -5.4840837905521855,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 58.97885610481441,
            "drawdown_pct": -5.4840837905521855,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 67.66363504674155,
            "drawdown_pct": -0.32081957489084045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 67.66363504674155,
            "drawdown_pct": -0.32081957489084045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 70.35565635220004,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 70.35565635220004,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 89.30090522476695,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 89.30090522476695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 104.7456209026889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 112.5757113941836,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 107.6124043543858,
            "drawdown_pct": -2.3348420227531252,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 113.98267055918802,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 113.98267055918802,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 114.86423483743673,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 108.74581360757253,
            "drawdown_pct": -3.1956058404221888,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 108.74581360757253,
            "drawdown_pct": -3.1956058404221888,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 118.85291243846521,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 113.76976224854599,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 113.76976224854599,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 122.59973328371436,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 143.08969069779766,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 152.1216696031289,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 160.3582263486365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 214.5618809471518,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 214.92653932007323,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 214.92653932007323,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 244.0469451387808,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p70_cap2",
        "variant": "ridge_a10_H20_c12_p70_cap2",
        "gain_pct": 33.771982232344925,
        "max_drawdown_pct": -2.4038953907647764,
        "capital_score": 30.16613914619776,
        "stability_score": 22.31283764476143,
        "n_trades": 9,
        "skipped_by_capacity": 48,
        "avg_trade_ret_pct": 3.382802796361727,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8074653933907866,
        "top_asset_trade_share": 0.5555555555555556,
        "long_counts": {
          "XRP": 5,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 9,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9230769230769231,
        "max_open_trades": 2,
        "avg_exposure": 0.9615384615384616,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 24.876922833021837,
          "2026-03-31 00:00:00+00:00": 5.9317322952880716
        }
      },
      "selection_score": 1223.3280459611367
    },
    {
      "name": "ridge_a10_H20_c12_p70_cap3",
      "variant": {
        "name": "ridge_a10_H20_c12_p70_cap3",
        "threshold": 0.032006686092834725,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p70_cap3",
        "variant": "ridge_a10_H20_c12_p70_cap3",
        "gain_pct": 1181.527415583594,
        "max_drawdown_pct": -15.925985308244417,
        "capital_score": 1157.6384376212272,
        "stability_score": 1133.245135056296,
        "n_trades": 213,
        "skipped_by_capacity": 1758,
        "avg_trade_ret_pct": 1.2285797318120688,
        "median_trade_ret_pct": 1.1489154096842362,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -28.724288480424093,
        "month_gain_concentration": 0.20553718555326292,
        "top_asset_trade_share": 0.6056338028169014,
        "long_counts": {
          "SOL": 61,
          "XRP": 129,
          "ETH": 18,
          "BTC": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8653846153846154,
        "max_open_trades": 3,
        "avg_exposure": 0.9551282051282052,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 46.748646605131256,
          "2024-10-31 00:00:00+00:00": 2.1696955547033383,
          "2024-11-30 00:00:00+00:00": 117.19565993952409,
          "2024-12-31 00:00:00+00:00": 72.99745486042542,
          "2025-01-31 00:00:00+00:00": 17.73059785602669,
          "2025-02-28 00:00:00+00:00": 107.26176941941509,
          "2025-03-31 00:00:00+00:00": 213.37505011726688,
          "2025-04-30 00:00:00+00:00": 220.37471621452835,
          "2025-05-31 00:00:00+00:00": 25.282465614003172,
          "2025-07-31 00:00:00+00:00": -7.227023573090605,
          "2025-08-31 00:00:00+00:00": 19.380694253605157,
          "2025-10-31 00:00:00+00:00": -28.724288480424093,
          "2025-11-30 00:00:00+00:00": 98.84884288148328,
          "2026-01-31 00:00:00+00:00": -1.8821405382021794,
          "2026-02-28 00:00:00+00:00": 7.844705437704761,
          "2026-03-31 00:00:00+00:00": 245.57224045772057
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p70_cap3",
        "variant": "ridge_a10_H20_c12_p70_cap3",
        "gain_pct": 217.85218067477786,
        "max_drawdown_pct": -7.261910472759759,
        "capital_score": 206.9593149656382,
        "stability_score": 206.9593149656382,
        "n_trades": 114,
        "skipped_by_capacity": 573,
        "avg_trade_ret_pct": 1.037522560065805,
        "median_trade_ret_pct": 1.0802143895311749,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -0.2882034699221663,
        "month_gain_concentration": 0.2551914186940759,
        "top_asset_trade_share": 0.4649122807017544,
        "long_counts": {
          "XRP": 53,
          "SOL": 39,
          "ETH": 15,
          "BTC": 3,
          "BNB": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 114,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7295081967213113,
        "max_open_trades": 3,
        "avg_exposure": 0.9098360655737705,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.8220990882151682,
          "2025-02-28 00:00:00+00:00": 19.666150536968473,
          "2025-03-31 00:00:00+00:00": 31.187558917965276,
          "2025-04-30 00:00:00+00:00": 35.931331448814745,
          "2025-05-31 00:00:00+00:00": 7.408578042553302,
          "2025-07-31 00:00:00+00:00": 0.8800389705849341,
          "2025-08-31 00:00:00+00:00": -0.2882034699221663,
          "2025-10-31 00:00:00+00:00": 7.301649624541767,
          "2025-11-30 00:00:00+00:00": 12.494110567278994,
          "2025-12-31 00:00:00+00:00": 4.409120599203703,
          "2026-01-31 00:00:00+00:00": 8.229618435203491,
          "2026-02-28 00:00:00+00:00": 54.111890422694586,
          "2026-03-31 00:00:00+00:00": 28.60217168398384
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.43539781296500735,
            "drawdown_pct": -0.43539781296501046,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.3470140302870846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.1718779963584893,
            "drawdown_pct": -2.747235445279217,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.780987318485586,
            "drawdown_pct": -0.2878143362507468,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.780987318485586,
            "drawdown_pct": -0.2878143362507468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -1.6175745529965155,
            "drawdown_pct": -7.261910472759759,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.021968066383266205,
            "drawdown_pct": -5.7164306827573,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.8220990882151682,
            "drawdown_pct": -4.0195756692230304,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.5027473921380761,
            "drawdown_pct": -5.2632343323713915,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.4847202473810484,
            "drawdown_pct": -2.4523413872051703,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.1567892285491297,
            "drawdown_pct": -2.761458549594875,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.1567892285491297,
            "drawdown_pct": -2.761458549594875,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.830926604897854,
            "drawdown_pct": -0.2407401358213046,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 16.458622788169137,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.458622788169137,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 21.48824962518364,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 21.48824962518364,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 44.32013074006906,
            "drawdown_pct": -5.458946492769745,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 44.32013074006906,
            "drawdown_pct": -5.458946492769745,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 50.25999635001705,
            "drawdown_pct": -1.5678666442678013,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 50.25999635001705,
            "drawdown_pct": -1.5678666442678013,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 52.67580854314892,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 52.67580854314892,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 69.73761470893257,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 69.73761470893257,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 88.60713999196366,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 96.01571803451696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 92.95860625806648,
            "drawdown_pct": -1.5596258336345037,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 96.8957570051019,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 96.8957570051019,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 96.60755353517973,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 90.79758461202627,
            "drawdown_pct": -3.1870810085571133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 90.79758461202627,
            "drawdown_pct": -3.1870810085571133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 100.07283461374996,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 95.4348825443665,
            "drawdown_pct": -2.3181318335081524,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 95.4348825443665,
            "drawdown_pct": -2.3181318335081524,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 103.9092031597215,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 120.8124343262042,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 129.0420527614077,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 136.54495531410245,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 182.9352798620962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 183.15394318410227,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 183.15394318410227,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 211.75611486808612,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p70_cap3",
        "variant": "ridge_a10_H20_c12_p70_cap3",
        "gain_pct": 32.80396685938376,
        "max_drawdown_pct": -1.6058465002812161,
        "capital_score": 30.395197108961938,
        "stability_score": 20.198774793951547,
        "n_trades": 12,
        "skipped_by_capacity": 45,
        "avg_trade_ret_pct": 2.43882026734607,
        "median_trade_ret_pct": 1.0713100636683546,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8678568926004157,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 7,
          "ETH": 3,
          "BTC": 1,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 12,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6923076923076925,
        "max_open_trades": 3,
        "avg_exposure": 0.8974358974358974,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 26.258683880551857,
          "2026-03-31 00:00:00+00:00": 3.9982445421415065
        }
      },
      "selection_score": 1142.6384376212272
    },
    {
      "name": "ridge_a10_H20_c12_p70_cap5",
      "variant": {
        "name": "ridge_a10_H20_c12_p70_cap5",
        "threshold": 0.032006686092834725,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p70_cap5",
        "variant": "ridge_a10_H20_c12_p70_cap5",
        "gain_pct": 930.1926199740019,
        "max_drawdown_pct": -15.837703670770775,
        "capital_score": 906.4360644678458,
        "stability_score": 887.9892068094803,
        "n_trades": 337,
        "skipped_by_capacity": 1634,
        "avg_trade_ret_pct": 0.7027145672565125,
        "median_trade_ret_pct": 0.6875648322119061,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -23.676827984774945,
        "month_gain_concentration": 0.21267222826607518,
        "top_asset_trade_share": 0.5756676557863502,
        "long_counts": {
          "SOL": 103,
          "XRP": 194,
          "ETH": 24,
          "BNB": 7,
          "BTC": 9
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 337,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.6,
        "max_open_trades": 5,
        "avg_exposure": 0.9199999999999999,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 37.13292157033132,
          "2024-10-31 00:00:00+00:00": 1.063671796169558,
          "2024-11-30 00:00:00+00:00": 86.60424739721668,
          "2024-12-31 00:00:00+00:00": 66.09417231218524,
          "2025-01-31 00:00:00+00:00": 11.597096058498494,
          "2025-02-28 00:00:00+00:00": 81.24283707376424,
          "2025-03-31 00:00:00+00:00": 176.10436888003164,
          "2025-04-30 00:00:00+00:00": 176.6059542537257,
          "2025-05-31 00:00:00+00:00": 12.407890477765136,
          "2025-07-31 00:00:00+00:00": -3.5175612972085446,
          "2025-08-31 00:00:00+00:00": 15.793586682427417,
          "2025-10-31 00:00:00+00:00": -23.676827984774945,
          "2025-11-30 00:00:00+00:00": 81.21121896114391,
          "2026-01-31 00:00:00+00:00": -1.5323510191678906,
          "2026-02-28 00:00:00+00:00": -6.7778990122410505,
          "2026-03-31 00:00:00+00:00": 201.47044367016053
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p70_cap5",
        "variant": "ridge_a10_H20_c12_p70_cap5",
        "gain_pct": 184.1208113672983,
        "max_drawdown_pct": -5.0764337617667525,
        "capital_score": 176.50616072464817,
        "stability_score": 176.50616072464817,
        "n_trades": 169,
        "skipped_by_capacity": 518,
        "avg_trade_ret_pct": 0.626376964087002,
        "median_trade_ret_pct": 0.6389698051494714,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4888584749332665,
        "month_gain_concentration": 0.29223219211998674,
        "top_asset_trade_share": 0.4437869822485207,
        "long_counts": {
          "XRP": 75,
          "SOL": 57,
          "ETH": 25,
          "BNB": 7,
          "BTC": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 169,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.237704918032787,
        "max_open_trades": 5,
        "avg_exposure": 0.8475409836065573,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.5242702976004665,
          "2025-02-28 00:00:00+00:00": 13.70570621225994,
          "2025-03-31 00:00:00+00:00": 18.249737709904494,
          "2025-04-30 00:00:00+00:00": 35.51548959017239,
          "2025-05-31 00:00:00+00:00": 8.023366233821946,
          "2025-07-31 00:00:00+00:00": 0.4888584749332665,
          "2025-08-31 00:00:00+00:00": 1.3051402027646475,
          "2025-10-31 00:00:00+00:00": 6.883355765783705,
          "2025-11-30 00:00:00+00:00": 10.921752350512634,
          "2025-12-31 00:00:00+00:00": 4.005311986935595,
          "2026-01-31 00:00:00+00:00": 7.200638280048679,
          "2026-02-28 00:00:00+00:00": 51.8090404451348,
          "2026-03-31 00:00:00+00:00": 15.654578147763232
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.26123868777901293,
            "drawdown_pct": -0.2612386877790085,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0037495458466594,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.9239767460909576,
            "drawdown_pct": -1.6424387641891691,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.4705074657462376,
            "drawdown_pct": -0.15002260444204607,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.4705074657462376,
            "drawdown_pct": -0.15002260444204607,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 1.4043729238335487,
            "drawdown_pct": -2.1438611615251846,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 2.4183149390545537,
            "drawdown_pct": -1.1653979280889293,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.5242702976004665,
            "drawdown_pct": -0.09814098448243103,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.727826373566714,
            "drawdown_pct": -1.5449870310315084,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.077576434832579,
            "drawdown_pct": -0.2513778456921023,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.321542988616315,
            "drawdown_pct": -0.9759651885753784,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.321542988616315,
            "drawdown_pct": -0.9759651885753784,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.443332625096318,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 14.001682073527618,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 14.001682073527618,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 17.229976509860407,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.229976509860407,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 27.475131878077505,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 27.475131878077505,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 31.930916361425034,
            "drawdown_pct": -1.7584614850024827,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 31.930916361425034,
            "drawdown_pct": -1.7584614850024827,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 35.4797142197649,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 35.4797142197649,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 50.523479423056955,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 50.523479423056955,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 70.9952038099373,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 79.01857004375924,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 77.34072484573358,
            "drawdown_pct": -0.9372464530442493,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 79.5074285186925,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 79.5074285186925,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 80.81256872145715,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 75.31379513820517,
            "drawdown_pct": -3.1803048618749608,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 75.31379513820517,
            "drawdown_pct": -3.1803048618749608,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 83.8639190374067,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 79.60830114376762,
            "drawdown_pct": -2.3145475827551,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 79.60830114376762,
            "drawdown_pct": -2.3145475827551,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 87.69592448724086,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 102.62298882468909,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 109.82362710473777,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 116.71197602513274,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 161.51140387640925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 161.63266754987256,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 161.63266754987256,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 177.2872456976358,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p70_cap5",
        "variant": "ridge_a10_H20_c12_p70_cap5",
        "gain_pct": 27.567565255004524,
        "max_drawdown_pct": -0.9650676952589698,
        "capital_score": 26.119963712116068,
        "stability_score": 15.578515282837673,
        "n_trades": 16,
        "skipped_by_capacity": 41,
        "avg_trade_ret_pct": 1.5497135985028876,
        "median_trade_ret_pct": 0.6427860382010128,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9066579371711359,
        "top_asset_trade_share": 0.5625,
        "long_counts": {
          "XRP": 9,
          "ETH": 4,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 16,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.076923076923077,
        "max_open_trades": 5,
        "avg_exposure": 0.8153846153846154,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 22.632402339539354,
          "2026-03-31 00:00:00+00:00": 2.3300464646422228
        }
      },
      "selection_score": 891.4360644678458
    },
    {
      "name": "ridge_a10_H20_c12_p80_cap1",
      "variant": {
        "name": "ridge_a10_H20_c12_p80_cap1",
        "threshold": 0.052452464749170535,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p80_cap1",
        "variant": "ridge_a10_H20_c12_p80_cap1",
        "gain_pct": 843.7434801681081,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 819.1592942252322,
        "stability_score": 807.1672298577471,
        "n_trades": 64,
        "skipped_by_capacity": 1250,
        "avg_trade_ret_pct": 3.7613703592173753,
        "median_trade_ret_pct": 3.4422851950561197,
        "positive_month_rate": 0.875,
        "worst_month_pct": -15.742064367485114,
        "month_gain_concentration": 0.20263730358080265,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "SOL": 18,
          "ETH": 5,
          "XRP": 40,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 64,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 26.186490872389044,
          "2024-10-31 00:00:00+00:00": 4.050398151531283,
          "2024-11-30 00:00:00+00:00": 92.07350173665895,
          "2024-12-31 00:00:00+00:00": 69.46465417308221,
          "2025-01-31 00:00:00+00:00": 10.765427205369178,
          "2025-02-28 00:00:00+00:00": 69.77114579715521,
          "2025-03-31 00:00:00+00:00": 132.9881083517053,
          "2025-04-30 00:00:00+00:00": 102.33927875610141,
          "2025-05-31 00:00:00+00:00": 62.62619562392604,
          "2025-07-31 00:00:00+00:00": -15.742064367485114,
          "2025-10-31 00:00:00+00:00": 13.753197019202958,
          "2025-11-30 00:00:00+00:00": 31.974284821322954,
          "2026-01-31 00:00:00+00:00": 40.69853440433462,
          "2026-02-28 00:00:00+00:00": 5.387309348646568,
          "2026-03-31 00:00:00+00:00": 168.25693993820107
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p80_cap1",
        "variant": "ridge_a10_H20_c12_p80_cap1",
        "gain_pct": 122.73632738438718,
        "max_drawdown_pct": -19.809203781979445,
        "capital_score": 93.02252171141802,
        "stability_score": 93.02252171141802,
        "n_trades": 35,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.4797810596186434,
        "median_trade_ret_pct": 3.0451631169511306,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -4.274078038375492,
        "month_gain_concentration": 0.3258721028211439,
        "top_asset_trade_share": 0.4857142857142857,
        "long_counts": {
          "XRP": 17,
          "SOL": 13,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 35,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -4.274078038375492,
          "2025-02-28 00:00:00+00:00": 20.696308329401404,
          "2025-03-31 00:00:00+00:00": 14.471906289429072,
          "2025-04-30 00:00:00+00:00": 19.980411038848217,
          "2025-05-31 00:00:00+00:00": 0.22242413072498834,
          "2025-07-31 00:00:00+00:00": 0.9443730407463988,
          "2025-10-31 00:00:00+00:00": 1.5857614277407777,
          "2025-11-30 00:00:00+00:00": 14.287031907140431,
          "2025-12-31 00:00:00+00:00": 3.854482431918484,
          "2026-01-31 00:00:00+00:00": 6.3238452087263965,
          "2026-02-28 00:00:00+00:00": 1.294878605975157,
          "2026-03-31 00:00:00+00:00": 40.44176744510793
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.306193438895022,
            "drawdown_pct": -1.3061934388950203,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.056857839653375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -4.274078038375492,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": -0.45047695744897,
            "drawdown_pct": -13.04978341265386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.422726929513189,
            "drawdown_pct": -12.287095006162762,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.49690593869478,
            "drawdown_pct": -2.6144995587310094,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.42223029102591,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 22.81055715586993,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 28.833807495100103,
            "drawdown_pct": -0.9296610621081447,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 28.833807495100103,
            "drawdown_pct": -0.9296610621081447,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 30.894136580454983,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 30.894136580454983,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 50.8745476193032,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 51.09697175002819,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.54825960944447,
            "drawdown_pct": -2.3486322058489884,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 52.04134479077459,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 52.04134479077459,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 50.119518081975855,
            "drawdown_pct": -1.2640158579519167,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 50.119518081975855,
            "drawdown_pct": -1.2640158579519167,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 57.302122027486234,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 53.627106218515365,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 53.627106218515365,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 60.24725424262101,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 60.24725424262101,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 71.76862055757428,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 78.09246576630068,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 83.86380709193605,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 119.82911181738376,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p80_cap1",
        "variant": "ridge_a10_H20_c12_p80_cap1",
        "gain_pct": 25.088493673153366,
        "max_drawdown_pct": -2.4185184697359086,
        "capital_score": 21.460715968549504,
        "stability_score": 3.753429291354033,
        "n_trades": 4,
        "skipped_by_capacity": 31,
        "avg_trade_ret_pct": 6.172248793936797,
        "median_trade_ret_pct": 2.281566026165436,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9682914670878189,
        "top_asset_trade_share": 0.75,
        "long_counts": {
          "XRP": 3,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.7437491452869409,
          "2026-03-31 00:00:00+00:00": 22.71205523856152
        }
      },
      "selection_score": 704.1592942252322
    },
    {
      "name": "ridge_a10_H20_c12_p80_cap2",
      "variant": {
        "name": "ridge_a10_H20_c12_p80_cap2",
        "threshold": 0.052452464749170535,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p80_cap2",
        "variant": "ridge_a10_H20_c12_p80_cap2",
        "gain_pct": 747.3902038089299,
        "max_drawdown_pct": -16.038331602416676,
        "capital_score": 723.3327064053049,
        "stability_score": 720.5788883014303,
        "n_trades": 123,
        "skipped_by_capacity": 1191,
        "avg_trade_ret_pct": 1.801206370365881,
        "median_trade_ret_pct": 1.6895073059901333,
        "positive_month_rate": 0.875,
        "worst_month_pct": -6.961135177045321,
        "month_gain_concentration": 0.21667175488881651,
        "top_asset_trade_share": 0.6097560975609756,
        "long_counts": {
          "SOL": 36,
          "ETH": 9,
          "XRP": 75,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 123,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9468599033816425,
        "max_open_trades": 2,
        "avg_exposure": 0.9734299516908212,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.622997216482105,
          "2024-10-31 00:00:00+00:00": 3.7384080639964026,
          "2024-11-30 00:00:00+00:00": 89.30769093620928,
          "2024-12-31 00:00:00+00:00": 70.75086762729993,
          "2025-01-31 00:00:00+00:00": 12.540536055469943,
          "2025-02-28 00:00:00+00:00": 64.32612858899677,
          "2025-03-31 00:00:00+00:00": 91.20118723026593,
          "2025-04-30 00:00:00+00:00": 76.1036390100324,
          "2025-05-31 00:00:00+00:00": 71.19060452338749,
          "2025-07-31 00:00:00+00:00": -6.961135177045321,
          "2025-10-31 00:00:00+00:00": 12.374252623256552,
          "2025-11-30 00:00:00+00:00": 28.963540233767958,
          "2026-01-31 00:00:00+00:00": 36.98006082696509,
          "2026-02-28 00:00:00+00:00": 5.100588986544608,
          "2026-03-31 00:00:00+00:00": 159.37938494951425
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p80_cap2",
        "variant": "ridge_a10_H20_c12_p80_cap2",
        "gain_pct": 127.44537510201297,
        "max_drawdown_pct": -11.10008288763934,
        "capital_score": 110.79525077055396,
        "stability_score": 110.79525077055396,
        "n_trades": 65,
        "skipped_by_capacity": 370,
        "avg_trade_ret_pct": 1.3117819421297747,
        "median_trade_ret_pct": 1.3343979151886776,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -2.830453752596256,
        "month_gain_concentration": 0.33916432227868637,
        "top_asset_trade_share": 0.4461538461538462,
        "long_counts": {
          "XRP": 29,
          "SOL": 25,
          "ETH": 9,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 65,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9263157894736842,
        "max_open_trades": 2,
        "avg_exposure": 0.9631578947368421,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.830453752596256,
          "2025-02-28 00:00:00+00:00": 19.714404363644178,
          "2025-03-31 00:00:00+00:00": 12.800471346015499,
          "2025-04-30 00:00:00+00:00": 20.245851000551994,
          "2025-05-31 00:00:00+00:00": 0.11051602526129045,
          "2025-07-31 00:00:00+00:00": 0.9930638914457006,
          "2025-10-31 00:00:00+00:00": 4.272180967007387,
          "2025-11-30 00:00:00+00:00": 14.24501505266781,
          "2025-12-31 00:00:00+00:00": 3.91439347373057,
          "2026-01-31 00:00:00+00:00": 6.44509527233302,
          "2026-02-28 00:00:00+00:00": 1.381713788715274,
          "2026-03-31 00:00:00+00:00": 43.17475773927907
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6530967194475039,
            "drawdown_pct": -0.653096719447499,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.0527910596746892,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.624332304089208,
            "drawdown_pct": -5.156990735201816,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.479292559521895,
            "drawdown_pct": -1.5592693732803142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.479292559521895,
            "drawdown_pct": -1.5592693732803142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.830453752596256,
            "drawdown_pct": -9.31451192788877,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -4.743693937327222,
            "drawdown_pct": -11.10008288763934,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.0310628333077716,
            "drawdown_pct": -5.710671734998963,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.9192054605569098,
            "drawdown_pct": -4.881794265254813,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.886818357395143,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.883950611047922,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.70932858855963,
            "drawdown_pct": -5.484083790552163,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 27.635102114271035,
            "drawdown_pct": -2.4847296929524365,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 27.635102114271035,
            "drawdown_pct": -2.4847296929524365,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 29.68442195706342,
            "drawdown_pct": -0.9190163812916707,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 29.68442195706342,
            "drawdown_pct": -0.9190163812916707,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.930272957615415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 50.040788982876705,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 46.537573590434164,
            "drawdown_pct": -2.3348420227531252,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 51.033852874322406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 51.033852874322406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 51.65608106295252,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 51.65608106295252,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 58.998997182413945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 55.30603384132979,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 55.30603384132979,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 61.72110286690781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 61.72110286690781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 73.46544236772817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 79.9105376400612,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 85.7880306565074,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 124.46700916805554,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p80_cap2",
        "variant": "ridge_a10_H20_c12_p80_cap2",
        "gain_pct": 25.70266454443184,
        "max_drawdown_pct": -2.4038953907647764,
        "capital_score": 22.096821458284676,
        "stability_score": 9.815872912189395,
        "n_trades": 7,
        "skipped_by_capacity": 28,
        "avg_trade_ret_pct": 3.4430791043010966,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9655236561295256,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 4,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 7,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9090909090909092,
        "max_open_trades": 2,
        "avg_exposure": 0.9545454545454546,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.8576653460305153,
          "2026-03-31 00:00:00+00:00": 24.01925748699132
        }
      },
      "selection_score": 708.3327064053049
    },
    {
      "name": "ridge_a10_H20_c12_p80_cap3",
      "variant": {
        "name": "ridge_a10_H20_c12_p80_cap3",
        "threshold": 0.052452464749170535,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p80_cap3",
        "variant": "ridge_a10_H20_c12_p80_cap3",
        "gain_pct": 603.1651348371917,
        "max_drawdown_pct": -16.215679627577263,
        "capital_score": 578.8416153958258,
        "stability_score": 576.7620699412803,
        "n_trades": 176,
        "skipped_by_capacity": 1138,
        "avg_trade_ret_pct": 1.1353262989121684,
        "median_trade_ret_pct": 1.1032762967622987,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -3.830531010607615,
        "month_gain_concentration": 0.22620458468100632,
        "top_asset_trade_share": 0.6193181818181818,
        "long_counts": {
          "SOL": 52,
          "ETH": 11,
          "XRP": 109,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 176,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8309178743961354,
        "max_open_trades": 3,
        "avg_exposure": 0.9436392914653783,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 9.693388827003957,
          "2024-10-31 00:00:00+00:00": 1.6599882482941695,
          "2024-11-30 00:00:00+00:00": 75.15743101697721,
          "2024-12-31 00:00:00+00:00": 66.85017698670734,
          "2025-01-31 00:00:00+00:00": -2.1624434409921207,
          "2025-02-28 00:00:00+00:00": 53.96196892573744,
          "2025-03-31 00:00:00+00:00": 68.9083852681855,
          "2025-04-30 00:00:00+00:00": 62.47763489352303,
          "2025-05-31 00:00:00+00:00": 52.74221372779698,
          "2025-07-31 00:00:00+00:00": -3.830531010607615,
          "2025-10-31 00:00:00+00:00": 10.27232713367107,
          "2025-11-30 00:00:00+00:00": 24.098967010953345,
          "2026-01-31 00:00:00+00:00": 30.801563168719667,
          "2026-02-28 00:00:00+00:00": 4.30433503784991,
          "2026-03-31 00:00:00+00:00": 134.74377174762878
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p80_cap3",
        "variant": "ridge_a10_H20_c12_p80_cap3",
        "gain_pct": 120.15830241064222,
        "max_drawdown_pct": -6.644335085614794,
        "capital_score": 110.19179978222003,
        "stability_score": 110.19179978222003,
        "n_trades": 89,
        "skipped_by_capacity": 346,
        "avg_trade_ret_pct": 0.9085959213347532,
        "median_trade_ret_pct": 1.0150543723170435,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -1.0677287573923024,
        "month_gain_concentration": 0.35739118453681135,
        "top_asset_trade_share": 0.4606741573033708,
        "long_counts": {
          "XRP": 41,
          "SOL": 32,
          "ETH": 13,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 89,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.778947368421053,
        "max_open_trades": 3,
        "avg_exposure": 0.9263157894736842,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.13683391696378067,
          "2025-02-28 00:00:00+00:00": 14.531479887644295,
          "2025-03-31 00:00:00+00:00": 13.575089988901155,
          "2025-04-30 00:00:00+00:00": 20.17583160068989,
          "2025-05-31 00:00:00+00:00": 0.07293481004876412,
          "2025-07-31 00:00:00+00:00": 0.6666756008997936,
          "2025-10-31 00:00:00+00:00": 3.4016408709378823,
          "2025-11-30 00:00:00+00:00": 14.352945699202593,
          "2025-12-31 00:00:00+00:00": 3.4007864311084006,
          "2026-01-31 00:00:00+00:00": 6.3475638912426575,
          "2026-02-28 00:00:00+00:00": -1.0677287573923024,
          "2026-03-31 00:00:00+00:00": 42.63596245137785
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.43539781296500735,
            "drawdown_pct": -0.43539781296501046,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0406078486382313,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.1441488694863011,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.7019790342459515,
            "drawdown_pct": -0.9960412742724634,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.7019790342459515,
            "drawdown_pct": -0.9960412742724634,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.13683391696378067,
            "drawdown_pct": -4.399674293909173,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.1606810905953893,
            "drawdown_pct": -5.638407859562511,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.7719369090753645,
            "drawdown_pct": -2.8386465232639213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.4494335010426767,
            "drawdown_pct": -3.1465395296956578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.134337812502935,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 14.668313804608076,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 22.51585226567373,
            "drawdown_pct": -5.4589464927697335,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 26.214189201300044,
            "drawdown_pct": -2.6050735967087957,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.214189201300044,
            "drawdown_pct": -2.6050735967087957,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.24340379350923,
            "drawdown_pct": -1.039202064234035,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.24340379350923,
            "drawdown_pct": -1.039202064234035,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 48.41923539419912,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 48.492170204247884,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 46.17624795681792,
            "drawdown_pct": -1.5596258336345037,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 49.15884580514768,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 49.15884580514768,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 48.94051658574497,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 48.94051658574497,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 56.180967399248544,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 52.56048667608556,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 52.56048667608556,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 59.17571554667498,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 59.17571554667498,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 70.31421880639655,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 76.66178269763921,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 82.44882540174245,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 118.23001639162476,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p80_cap3",
        "variant": "ridge_a10_H20_c12_p80_cap3",
        "gain_pct": 25.708925820983808,
        "max_drawdown_pct": -1.605846500281205,
        "capital_score": 23.300156070562,
        "stability_score": 9.126835209479278,
        "n_trades": 8,
        "skipped_by_capacity": 27,
        "avg_trade_ret_pct": 2.964476950556938,
        "median_trade_ret_pct": 1.1048153882742284,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9769328344433089,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5454545454545454,
        "max_open_trades": 3,
        "avg_exposure": 0.8484848484848485,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.5803052009299563,
          "2026-03-31 00:00:00+00:00": 24.576890619413376
        }
      },
      "selection_score": 563.8416153958258
    },
    {
      "name": "ridge_a10_H20_c12_p80_cap5",
      "variant": {
        "name": "ridge_a10_H20_c12_p80_cap5",
        "threshold": 0.052452464749170535,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p80_cap5",
        "variant": "ridge_a10_H20_c12_p80_cap5",
        "gain_pct": 487.3985675840245,
        "max_drawdown_pct": -17.26747395499697,
        "capital_score": 461.497356651529,
        "stability_score": 456.00660100321954,
        "n_trades": 267,
        "skipped_by_capacity": 1047,
        "avg_trade_ret_pct": 0.6732843746382308,
        "median_trade_ret_pct": 0.6776498322103692,
        "positive_month_rate": 0.75,
        "worst_month_pct": -9.563789356174652,
        "month_gain_concentration": 0.23306791879249109,
        "top_asset_trade_share": 0.6142322097378277,
        "long_counts": {
          "SOL": 84,
          "ETH": 15,
          "XRP": 164,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 267,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.454106280193237,
        "max_open_trades": 5,
        "avg_exposure": 0.8908212560386473,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 10.129784966836112,
          "2024-10-31 00:00:00+00:00": 0.5592406892149882,
          "2024-11-30 00:00:00+00:00": 60.802364605125874,
          "2024-12-31 00:00:00+00:00": 61.7435948075661,
          "2025-01-31 00:00:00+00:00": -9.563789356174652,
          "2025-02-28 00:00:00+00:00": 43.29547335805523,
          "2025-03-31 00:00:00+00:00": 58.59417917034614,
          "2025-04-30 00:00:00+00:00": 49.95982409628408,
          "2025-05-31 00:00:00+00:00": 43.580920646078425,
          "2025-07-31 00:00:00+00:00": -1.9686309976065104,
          "2025-10-31 00:00:00+00:00": 8.839005685866937,
          "2025-11-30 00:00:00+00:00": 20.774823215181755,
          "2026-01-31 00:00:00+00:00": 22.13768155745737,
          "2026-02-28 00:00:00+00:00": -3.8892793529025766,
          "2026-03-31 00:00:00+00:00": 115.60733427442779
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p80_cap5",
        "variant": "ridge_a10_H20_c12_p80_cap5",
        "gain_pct": 110.52607064271626,
        "max_drawdown_pct": -5.0764337617667525,
        "capital_score": 102.91142000006613,
        "stability_score": 102.91142000006613,
        "n_trades": 132,
        "skipped_by_capacity": 303,
        "avg_trade_ret_pct": 0.5719967256971701,
        "median_trade_ret_pct": 0.6090326233902261,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -0.05015286670246155,
        "month_gain_concentration": 0.3785747257218236,
        "top_asset_trade_share": 0.4696969696969697,
        "long_counts": {
          "XRP": 62,
          "SOL": 48,
          "ETH": 17,
          "BNB": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 132,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.242105263157895,
        "max_open_trades": 5,
        "avg_exposure": 0.8484210526315791,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.0774020346501914,
          "2025-02-28 00:00:00+00:00": 10.383142794378458,
          "2025-03-31 00:00:00+00:00": 10.472913468890198,
          "2025-04-30 00:00:00+00:00": 16.994877214873398,
          "2025-05-31 00:00:00+00:00": 0.041552220723218625,
          "2025-07-31 00:00:00+00:00": 0.38495628868042786,
          "2025-10-31 00:00:00+00:00": 4.515564716884285,
          "2025-11-30 00:00:00+00:00": 14.554566502350355,
          "2025-12-31 00:00:00+00:00": 1.8343270357703432,
          "2026-01-31 00:00:00+00:00": 5.766228945927196,
          "2026-02-28 00:00:00+00:00": -0.05015286670246155,
          "2026-03-31 00:00:00+00:00": 41.441421665365084
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.26123868777901293,
            "drawdown_pct": -0.2612386877790085,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 1.2269633374333893,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 0.7155156708165151,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.2437099574156605,
            "drawdown_pct": -0.5767583767645745,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.2437099574156605,
            "drawdown_pct": -0.5767583767645745,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.0774020346501914,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.284396005052656,
            "drawdown_pct": -1.5449870310315084,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.536744911487972,
            "drawdown_pct": -0.339524295359972,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.0929327295165336,
            "drawdown_pct": -0.7667207773104034,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.343609583922358,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 13.460544829028649,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 17.64109213116035,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 20.980109773073423,
            "drawdown_pct": -2.3822096895404377,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 20.980109773073423,
            "drawdown_pct": -2.3822096895404377,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 23.933458297918847,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 23.933458297918847,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 40.928335512792245,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 40.96988773351546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 39.648652460872626,
            "drawdown_pct": -0.9372464530442493,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 41.35484402219589,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 41.35484402219589,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 42.38258917631734,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 42.38258917631734,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 49.32664499113167,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 45.870408739080176,
            "drawdown_pct": -2.3145475827550777,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 45.870408739080176,
            "drawdown_pct": -2.3145475827550777,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 52.43884079554644,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 52.43884079554644,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 62.259302277200874,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 68.02553122312807,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 73.5416806795564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 109.41680002179069,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p80_cap5",
        "variant": "ridge_a10_H20_c12_p80_cap5",
        "gain_pct": 26.37520151013942,
        "max_drawdown_pct": -0.9650676952589698,
        "capital_score": 24.927599967250963,
        "stability_score": 8.265773064890091,
        "n_trades": 10,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 2.3944375491413483,
        "median_trade_ret_pct": 2.593263075420407,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.986473076094435,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "XRP": 7,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.727272727272727,
        "max_open_trades": 5,
        "avg_exposure": 0.7454545454545454,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.3522657673993308,
          "2026-03-31 00:00:00+00:00": 25.68955792131149
        }
      },
      "selection_score": 446.497356651529
    },
    {
      "name": "ridge_a10_H20_c12_p90_cap1",
      "variant": {
        "name": "ridge_a10_H20_c12_p90_cap1",
        "threshold": 0.06853466520931831,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p90_cap1",
        "variant": "ridge_a10_H20_c12_p90_cap1",
        "gain_pct": 444.94136318195547,
        "max_drawdown_pct": -16.936038073764525,
        "capital_score": 419.53730607130865,
        "stability_score": 403.4426914760942,
        "n_trades": 48,
        "skipped_by_capacity": 609,
        "avg_trade_ret_pct": 3.818699442005629,
        "median_trade_ret_pct": 3.920841928990563,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -17.969614595214438,
        "month_gain_concentration": 0.23270959489561727,
        "top_asset_trade_share": 0.6875,
        "long_counts": {
          "SOL": 12,
          "XRP": 33,
          "BTC": 1,
          "ETH": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 48,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.576200503258718,
          "2024-10-31 00:00:00+00:00": 9.82267471941104,
          "2024-11-30 00:00:00+00:00": 84.05748696954576,
          "2024-12-31 00:00:00+00:00": 64.14179840258805,
          "2025-01-31 00:00:00+00:00": -17.969614595214438,
          "2025-02-28 00:00:00+00:00": 32.016663650029585,
          "2025-03-31 00:00:00+00:00": 51.972030157762845,
          "2025-04-30 00:00:00+00:00": 34.3377980282649,
          "2025-07-31 00:00:00+00:00": 30.357086779725705,
          "2025-10-31 00:00:00+00:00": 8.432589178171838,
          "2025-11-30 00:00:00+00:00": 19.60460595362713,
          "2026-02-28 00:00:00+00:00": 13.893017434893125
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p90_cap1",
        "variant": "ridge_a10_H20_c12_p90_cap1",
        "gain_pct": 79.42484428537017,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 54.840658342494244,
        "stability_score": 50.688965450232494,
        "n_trades": 23,
        "skipped_by_capacity": 177,
        "avg_trade_ret_pct": 2.758894408090361,
        "median_trade_ret_pct": 3.0451631169511306,
        "positive_month_rate": 0.75,
        "worst_month_pct": -10.15169289226175,
        "month_gain_concentration": 0.3546503586732011,
        "top_asset_trade_share": 0.5217391304347826,
        "long_counts": {
          "XRP": 12,
          "SOL": 9,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 23,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -10.15169289226175,
          "2025-02-28 00:00:00+00:00": 10.1901861600184,
          "2025-03-31 00:00:00+00:00": 20.634801583112946,
          "2025-04-30 00:00:00+00:00": 4.9099400976911625,
          "2025-07-31 00:00:00+00:00": 14.41426642723637,
          "2025-10-31 00:00:00+00:00": 1.4601465013830932,
          "2025-11-30 00:00:00+00:00": 6.574166108460986,
          "2026-02-28 00:00:00+00:00": -2.091915305164548
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -10.15169289226175,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -5.036197497849159,
            "drawdown_pct": -11.629107769492597,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -5.036197497849159,
            "drawdown_pct": -11.629107769492597,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": -3.286351893877722,
            "drawdown_pct": -10.000746086259827,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 7.378806128667776,
            "drawdown_pct": -0.07602208197037275,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 7.378806128667776,
            "drawdown_pct": -0.07602208197037275,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 20.627612816502207,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 20.627612816502207,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 18.77384613832905,
            "drawdown_pct": -1.5367681038280123,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 18.77384613832905,
            "drawdown_pct": -1.5367681038280123,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 20.673294850869596,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 20.673294850869596,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 25.583234948560758,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 25.583234948560758,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 25.583234948560758,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 35.8603326358045,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 39.99750137579713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 38.22791075767063,
            "drawdown_pct": -1.2640158579518945,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 44.84155000906728,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 41.45764787718022,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 48.03181398564121,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 49.581708073665425,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 45.93989868047666,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p90_cap1",
        "variant": "ridge_a10_H20_c12_p90_cap1",
        "gain_pct": 22.94433935315115,
        "max_drawdown_pct": 0.0,
        "capital_score": 22.94433935315115,
        "stability_score": 9.444339353151152,
        "n_trades": 1,
        "skipped_by_capacity": 15,
        "avg_trade_ret_pct": 22.944339353151154,
        "median_trade_ret_pct": 22.944339353151154,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 1,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 304.53730607130865
    },
    {
      "name": "ridge_a10_H20_c12_p90_cap2",
      "variant": {
        "name": "ridge_a10_H20_c12_p90_cap2",
        "threshold": 0.06853466520931831,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p90_cap2",
        "variant": "ridge_a10_H20_c12_p90_cap2",
        "gain_pct": 379.45212998392606,
        "max_drawdown_pct": -16.586310736452468,
        "capital_score": 354.57266387924733,
        "stability_score": 341.41620036892283,
        "n_trades": 90,
        "skipped_by_capacity": 567,
        "avg_trade_ret_pct": 1.8128455687348568,
        "median_trade_ret_pct": 1.9604209644952815,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.989796843657842,
        "month_gain_concentration": 0.245348521370293,
        "top_asset_trade_share": 0.6888888888888889,
        "long_counts": {
          "SOL": 21,
          "XRP": 62,
          "BTC": 2,
          "ETH": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 90,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9185185185185185,
        "max_open_trades": 2,
        "avg_exposure": 0.9592592592592593,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 8.27903538356287,
          "2024-10-31 00:00:00+00:00": 3.6447553794391467,
          "2024-11-30 00:00:00+00:00": 61.626192877787446,
          "2024-12-31 00:00:00+00:00": 73.80925641174687,
          "2025-01-31 00:00:00+00:00": -14.989796843657842,
          "2025-02-28 00:00:00+00:00": 27.486100670958848,
          "2025-03-31 00:00:00+00:00": 40.489843199495624,
          "2025-04-30 00:00:00+00:00": 21.55705745308194,
          "2025-07-31 00:00:00+00:00": 26.88181214972957,
          "2025-10-31 00:00:00+00:00": 7.367344397972317,
          "2025-11-30 00:00:00+00:00": 17.244223338842687,
          "2026-02-28 00:00:00+00:00": 12.448702088979474
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p90_cap2",
        "variant": "ridge_a10_H20_c12_p90_cap2",
        "gain_pct": 91.6308874260954,
        "max_drawdown_pct": -5.298483050067981,
        "capital_score": 83.68316285099343,
        "stability_score": 81.34595354866785,
        "n_trades": 43,
        "skipped_by_capacity": 157,
        "avg_trade_ret_pct": 1.567915531573468,
        "median_trade_ret_pct": 1.5225815584755653,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.7539675866541415,
        "month_gain_concentration": 0.3892067796083866,
        "top_asset_trade_share": 0.627906976744186,
        "long_counts": {
          "XRP": 27,
          "SOL": 12,
          "ETH": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 43,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9259259259259258,
        "max_open_trades": 2,
        "avg_exposure": 0.9629629629629629,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.7658797907796213,
          "2025-02-28 00:00:00+00:00": 4.306314827030377,
          "2025-03-31 00:00:00+00:00": 22.860827832096447,
          "2025-04-30 00:00:00+00:00": 5.154211626212913,
          "2025-07-31 00:00:00+00:00": 15.243003958764234,
          "2025-10-31 00:00:00+00:00": 4.12409186955739,
          "2025-11-30 00:00:00+00:00": 7.048522184453873,
          "2026-02-28 00:00:00+00:00": -2.7539675866541415
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.7658797907796213,
            "drawdown_pct": -5.298483050067981,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -1.4396877125614083,
            "drawdown_pct": -4.984021185305276,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -1.4396877125614083,
            "drawdown_pct": -4.984021185305276,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.3847949375443136,
            "drawdown_pct": -3.2251488683765706,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 10.202343770900953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 10.202343770900953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.009166599329745,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.009166599329745,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 22.17802702498186,
            "drawdown_pct": -1.4766163055221937,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 22.17802702498186,
            "drawdown_pct": -1.4766163055221937,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 25.401262868347203,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 25.401262868347203,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 30.555474494560116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 30.555474494560116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 30.555474494560116,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 41.458056317383694,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 45.79847845332435,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 46.39913798379746,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 53.487522324483734,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 49.92257032288174,
            "drawdown_pct": -2.3226331024260305,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 56.97109250733561,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 58.041481126281184,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 54.21712492068147,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p90_cap2",
        "variant": "ridge_a10_H20_c12_p90_cap2",
        "gain_pct": 24.260446124032583,
        "max_drawdown_pct": 0.0,
        "capital_score": 24.260446124032583,
        "stability_score": 10.760446124032585,
        "n_trades": 2,
        "skipped_by_capacity": 14,
        "avg_trade_ret_pct": 11.472169676575577,
        "median_trade_ret_pct": 11.472169676575577,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 339.57266387924733
    },
    {
      "name": "ridge_a10_H20_c12_p90_cap3",
      "variant": {
        "name": "ridge_a10_H20_c12_p90_cap3",
        "threshold": 0.06853466520931831,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p90_cap3",
        "variant": "ridge_a10_H20_c12_p90_cap3",
        "gain_pct": 359.52826829711336,
        "max_drawdown_pct": -16.215679627577238,
        "capital_score": 335.2047488557475,
        "stability_score": 322.804281877056,
        "n_trades": 130,
        "skipped_by_capacity": 527,
        "avg_trade_ret_pct": 1.2050901818062631,
        "median_trade_ret_pct": 1.3130470702609376,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.131236209460695,
        "month_gain_concentration": 0.2612464883448061,
        "top_asset_trade_share": 0.6923076923076923,
        "long_counts": {
          "SOL": 30,
          "XRP": 90,
          "BTC": 3,
          "ETH": 7
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 130,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7925925925925927,
        "max_open_trades": 3,
        "avg_exposure": 0.9308641975308644,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 11.350100922227426,
          "2024-10-31 00:00:00+00:00": 1.7586318660796394,
          "2024-11-30 00:00:00+00:00": 50.412879330639186,
          "2024-12-31 00:00:00+00:00": 73.8043866593676,
          "2025-01-31 00:00:00+00:00": -14.131236209460695,
          "2025-02-28 00:00:00+00:00": 27.912465573265223,
          "2025-03-31 00:00:00+00:00": 38.052239909680765,
          "2025-04-30 00:00:00+00:00": 17.839195898717094,
          "2025-07-31 00:00:00+00:00": 25.81477075563896,
          "2025-10-31 00:00:00+00:00": 7.04235376210471,
          "2025-11-30 00:00:00+00:00": 16.521421950838203,
          "2026-02-28 00:00:00+00:00": 12.000180097772159
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p90_cap3",
        "variant": "ridge_a10_H20_c12_p90_cap3",
        "gain_pct": 89.59010009915778,
        "max_drawdown_pct": -4.039919775623857,
        "capital_score": 83.530220435722,
        "stability_score": 81.40953078054959,
        "n_trades": 58,
        "skipped_by_capacity": 142,
        "avg_trade_ret_pct": 1.1289299778418003,
        "median_trade_ret_pct": 1.0804978796684437,
        "positive_month_rate": 0.875,
        "worst_month_pct": -1.7984020717198348,
        "month_gain_concentration": 0.42339470279002084,
        "top_asset_trade_share": 0.6206896551724138,
        "long_counts": {
          "XRP": 36,
          "SOL": 16,
          "ETH": 3,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 58,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6481481481481484,
        "max_open_trades": 3,
        "avg_exposure": 0.882716049382716,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4757913255255914,
          "2025-02-28 00:00:00+00:00": 3.8684270084947627,
          "2025-03-31 00:00:00+00:00": 22.770964867304116,
          "2025-04-30 00:00:00+00:00": 5.050346827503063,
          "2025-07-31 00:00:00+00:00": 10.410939769993064,
          "2025-10-31 00:00:00+00:00": 3.2743320393525437,
          "2025-11-30 00:00:00+00:00": 6.931082340470425,
          "2026-02-28 00:00:00+00:00": -1.7984020717198348
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4757913255255914,
            "drawdown_pct": -0.9865091167685858,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 2.284495761659329,
            "drawdown_pct": -0.5094149943383308,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.284495761659329,
            "drawdown_pct": -0.5094149943383308,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.85905898865353,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.474572510735015,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.474572510735015,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 27.76527191665089,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 27.76527191665089,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 25.90489307628806,
            "drawdown_pct": -1.4560911681669397,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 25.90489307628806,
            "drawdown_pct": -1.4560911681669397,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.11518320132447,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.11518320132447,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 33.16553002882753,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 33.16553002882753,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 33.16553002882753,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 40.705497798593655,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 43.5764697988206,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 43.366311705905844,
            "drawdown_pct": -0.14637363156319028,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 50.33578349246591,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 46.85080183817314,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 53.781884178643566,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 54.48069650922264,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 51.98348210692373,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p90_cap3",
        "variant": "ridge_a10_H20_c12_p90_cap3",
        "gain_pct": 25.78131183048275,
        "max_drawdown_pct": 0.0,
        "capital_score": 25.78131183048275,
        "stability_score": 12.281311830482752,
        "n_trades": 3,
        "skipped_by_capacity": 13,
        "avg_trade_ret_pct": 7.946529999650227,
        "median_trade_ret_pct": 7.648113117717051,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 3,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8,
        "max_open_trades": 3,
        "avg_exposure": 0.9333333333333332,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 320.2047488557475
    },
    {
      "name": "ridge_a10_H20_c12_p90_cap5",
      "variant": {
        "name": "ridge_a10_H20_c12_p90_cap5",
        "threshold": 0.06853466520931831,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 10.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a10_H20_c12_p90_cap5",
        "variant": "ridge_a10_H20_c12_p90_cap5",
        "gain_pct": 324.6521864646193,
        "max_drawdown_pct": -15.969209134044748,
        "capital_score": 300.6983727635522,
        "stability_score": 289.8605008005867,
        "n_trades": 202,
        "skipped_by_capacity": 455,
        "avg_trade_ret_pct": 0.7279519774779906,
        "median_trade_ret_pct": 0.7878282421565627,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -12.694307606529833,
        "month_gain_concentration": 0.2942466816623564,
        "top_asset_trade_share": 0.6881188118811881,
        "long_counts": {
          "SOL": 49,
          "BNB": 1,
          "XRP": 139,
          "BTC": 3,
          "ETH": 10
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 202,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.392592592592592,
        "max_open_trades": 5,
        "avg_exposure": 0.8785185185185186,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.30719834418207,
          "2024-10-31 00:00:00+00:00": 0.6289302925886631,
          "2024-11-30 00:00:00+00:00": 37.78680341249468,
          "2024-12-31 00:00:00+00:00": 73.13588521645178,
          "2025-01-31 00:00:00+00:00": -12.694307606529833,
          "2025-02-28 00:00:00+00:00": 28.745374646668324,
          "2025-03-31 00:00:00+00:00": 35.26074106982654,
          "2025-04-30 00:00:00+00:00": 12.156925601096418,
          "2025-07-31 00:00:00+00:00": 22.943319574020165,
          "2025-10-31 00:00:00+00:00": 6.595798571145792,
          "2025-11-30 00:00:00+00:00": 15.502484572173046,
          "2026-02-28 00:00:00+00:00": 2.4895038620118726
        }
      },
      "test": {
        "label": "Test ridge_a10_H20_c12_p90_cap5",
        "variant": "ridge_a10_H20_c12_p90_cap5",
        "gain_pct": 69.8810580895537,
        "max_drawdown_pct": -4.028514850031728,
        "capital_score": 63.838285814506115,
        "stability_score": 62.12400010022041,
        "n_trades": 84,
        "skipped_by_capacity": 116,
        "avg_trade_ret_pct": 0.6433293527946203,
        "median_trade_ret_pct": 0.5713958947328487,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.022474859653528,
        "month_gain_concentration": 0.34791505128978356,
        "top_asset_trade_share": 0.6071428571428571,
        "long_counts": {
          "XRP": 51,
          "SOL": 24,
          "ETH": 4,
          "BNB": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 84,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.888888888888889,
        "max_open_trades": 5,
        "avg_exposure": 0.7777777777777778,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.022474859653528,
          "2025-02-28 00:00:00+00:00": 6.466199218646452,
          "2025-03-31 00:00:00+00:00": 13.472875481378168,
          "2025-04-30 00:00:00+00:00": 2.774635243789376,
          "2025-07-31 00:00:00+00:00": 5.790679100918908,
          "2025-10-31 00:00:00+00:00": 4.0404506330780805,
          "2025-11-30 00:00:00+00:00": 6.1797726418681975,
          "2026-02-28 00:00:00+00:00": -0.9590736023160105
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.022474859653528,
            "drawdown_pct": -3.4629048254632644,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.5054924496046596,
            "drawdown_pct": -3.938821266354109,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.6101344065844074,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.556028490986108,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 11.896934213463453,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 11.896934213463453,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 18.45776746702417,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 18.45776746702417,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 16.68931011577348,
            "drawdown_pct": -1.492901131825719,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.68931011577348,
            "drawdown_pct": -1.492901131825719,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 17.91659984037109,
            "drawdown_pct": -0.4568443574658132,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 17.91659984037109,
            "drawdown_pct": -0.4568443574658132,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 20.691235084160468,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 20.691235084160468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 20.691235084160468,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 24.95524294763166,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 26.481914185079376,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 27.40152309757842,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 33.614946328605726,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 30.522364818157456,
            "drawdown_pct": -2.3145475827551,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 36.702137460025654,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 37.074736522492856,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 35.74306385770964,
            "drawdown_pct": -0.9714938715674193,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a10_H20_c12_p90_cap5",
        "variant": "ridge_a10_H20_c12_p90_cap5",
        "gain_pct": 23.920587907763377,
        "max_drawdown_pct": 0.0,
        "capital_score": 23.920587907763377,
        "stability_score": 16.420587907763377,
        "n_trades": 5,
        "skipped_by_capacity": 11,
        "avg_trade_ret_pct": 4.387287740818259,
        "median_trade_ret_pct": 4.588867870630231,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.2,
        "max_open_trades": 5,
        "avg_exposure": 0.8400000000000001,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 285.6983727635522
    },
    {
      "name": "ridge_a100_H20_c12_p70_cap1",
      "variant": {
        "name": "ridge_a100_H20_c12_p70_cap1",
        "threshold": 0.03206556007154939,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p70_cap1",
        "variant": "ridge_a100_H20_c12_p70_cap1",
        "gain_pct": 1086.1987815028795,
        "max_drawdown_pct": -21.242526275681694,
        "capital_score": 1054.334992089357,
        "stability_score": 1032.3410623214932,
        "n_trades": 78,
        "skipped_by_capacity": 1893,
        "avg_trade_ret_pct": 3.437560726852419,
        "median_trade_ret_pct": 3.4161849483114826,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -24.93783266203377,
        "month_gain_concentration": 0.19283873932811027,
        "top_asset_trade_share": 0.5897435897435898,
        "long_counts": {
          "SOL": 23,
          "ETH": 8,
          "XRP": 46,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 78,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 63.406794305723935,
          "2024-10-31 00:00:00+00:00": 2.361691949256084,
          "2024-11-30 00:00:00+00:00": 96.82095412973575,
          "2024-12-31 00:00:00+00:00": 43.41576028194021,
          "2025-01-31 00:00:00+00:00": 19.659077231393553,
          "2025-02-28 00:00:00+00:00": 118.93424123205057,
          "2025-03-31 00:00:00+00:00": 189.6118371964556,
          "2025-04-30 00:00:00+00:00": 201.0633441304292,
          "2025-05-31 00:00:00+00:00": 35.03551087157973,
          "2025-07-31 00:00:00+00:00": -20.44036242773302,
          "2025-08-31 00:00:00+00:00": 17.857907644766897,
          "2025-10-31 00:00:00+00:00": -24.93783266203377,
          "2025-11-30 00:00:00+00:00": 90.2638042616677,
          "2026-01-31 00:00:00+00:00": -1.7477704164024317,
          "2026-02-28 00:00:00+00:00": 6.7713525118133475,
          "2026-03-31 00:00:00+00:00": 211.483503015613
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p70_cap1",
        "variant": "ridge_a100_H20_c12_p70_cap1",
        "gain_pct": 240.25145198711328,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 215.66726604423735,
        "stability_score": 215.66726604423735,
        "n_trades": 44,
        "skipped_by_capacity": 643,
        "avg_trade_ret_pct": 2.9739326862301505,
        "median_trade_ret_pct": 3.5301288417761514,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -2.6577441400129374,
        "month_gain_concentration": 0.24657390589383818,
        "top_asset_trade_share": 0.4772727272727273,
        "long_counts": {
          "XRP": 21,
          "SOL": 15,
          "ETH": 5,
          "BTC": 1,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 44,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 5.938574724734124,
          "2025-02-28 00:00:00+00:00": 29.332834157163788,
          "2025-03-31 00:00:00+00:00": 45.89979879257339,
          "2025-04-30 00:00:00+00:00": 20.157542802750612,
          "2025-05-31 00:00:00+00:00": 7.627181607492503,
          "2025-07-31 00:00:00+00:00": 1.3059980400619793,
          "2025-08-31 00:00:00+00:00": -2.6577441400129374,
          "2025-10-31 00:00:00+00:00": 7.6369975957951794,
          "2025-11-30 00:00:00+00:00": 18.468025985313005,
          "2025-12-31 00:00:00+00:00": 5.364813544021445,
          "2026-01-31 00:00:00+00:00": 8.801765483513833,
          "2026-02-28 00:00:00+00:00": 58.80002094744481,
          "2026-03-31 00:00:00+00:00": 29.1345872778993
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.306193438895022,
            "drawdown_pct": -1.3061934388950203,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.056857839653375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.274078038375492,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.5117379685713388,
            "drawdown_pct": -12.209349489276022,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 5.938574724734124,
            "drawdown_pct": -7.469350573049849,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 10.111644779832062,
            "drawdown_pct": -3.824437628867894,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.6055916223126445,
            "drawdown_pct": -11.253937457145923,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 10.170101990584797,
            "drawdown_pct": -3.7733789499240444,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 11.136464845423149,
            "drawdown_pct": -2.929322072883611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 11.136464845423149,
            "drawdown_pct": -2.929322072883611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 14.957141085626546,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 21.247706922207612,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 30.144243379378736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 30.144243379378736,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 35.27140888189791,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 35.27140888189791,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 55.588654614590155,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 64.82205590969696,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 78.21851953474771,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 68.30706247884461,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 68.30706247884461,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 73.68421902471397,
            "drawdown_pct": -2.544236436185676,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 78.319496220069,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 78.319496220069,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 81.1712076744713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 81.1712076744713,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 88.54267936758558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 101.03238204709263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 101.03238204709263,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 101.32875047722192,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 108.95593208471442,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 104.04832576774086,
            "drawdown_pct": -2.3486322058489995,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 110.2619301247764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 110.2619301247764,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 107.60418598476346,
            "drawdown_pct": -1.2640158579519056,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 108.34989324174046,
            "drawdown_pct": -0.9093595221452033,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 101.63779344129037,
            "drawdown_pct": -4.101615864730334,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 101.63779344129037,
            "drawdown_pct": -4.101615864730334,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 111.285335807797,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 106.34912172950442,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 106.34912172950442,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 115.24118358055864,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 123.03815236879097,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 133.70920956587165,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 139.0740231098931,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 147.87578859340692,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 155.90855840305647,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 149.6780493134646,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 205.96642150503084,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 206.67580954085173,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 206.67580954085173,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 235.81039681875103,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p70_cap1",
        "variant": "ridge_a100_H20_c12_p70_cap1",
        "gain_pct": 36.97205775940381,
        "max_drawdown_pct": -2.4185184697359086,
        "capital_score": 33.344280054799945,
        "stability_score": 21.67787598670045,
        "n_trades": 5,
        "skipped_by_capacity": 52,
        "avg_trade_ret_pct": 6.837824167325265,
        "median_trade_ret_pct": 3.2406431685935244,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.6666561627239799,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 23.45580438384846,
          "2026-03-31 00:00:00+00:00": 11.72845655211475
        }
      },
      "selection_score": 930.6373081595852
    },
    {
      "name": "ridge_a100_H20_c12_p70_cap2",
      "variant": {
        "name": "ridge_a100_H20_c12_p70_cap2",
        "threshold": 0.03206556007154939,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p70_cap2",
        "variant": "ridge_a100_H20_c12_p70_cap2",
        "gain_pct": 1262.3855433647618,
        "max_drawdown_pct": -16.038331602416676,
        "capital_score": 1238.3280459611367,
        "stability_score": 1212.7997902326065,
        "n_trades": 147,
        "skipped_by_capacity": 1824,
        "avg_trade_ret_pct": 1.8470465925044866,
        "median_trade_ret_pct": 1.7189120805297653,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -30.06907205506093,
        "month_gain_concentration": 0.2008382936797898,
        "top_asset_trade_share": 0.5986394557823129,
        "long_counts": {
          "SOL": 43,
          "XRP": 88,
          "ETH": 13,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 147,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9461538461538461,
        "max_open_trades": 2,
        "avg_exposure": 0.9730769230769231,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 56.309708961094145,
          "2024-10-31 00:00:00+00:00": 2.3120567729754953,
          "2024-11-30 00:00:00+00:00": 115.34031499932627,
          "2024-12-31 00:00:00+00:00": 79.18184742511323,
          "2025-01-31 00:00:00+00:00": 23.717333882375385,
          "2025-02-28 00:00:00+00:00": 120.57762625920009,
          "2025-03-31 00:00:00+00:00": 218.6210404172151,
          "2025-04-30 00:00:00+00:00": 229.9289620087627,
          "2025-05-31 00:00:00+00:00": 40.09554177194775,
          "2025-07-31 00:00:00+00:00": -11.579748279255796,
          "2025-08-31 00:00:00+00:00": 20.584391320792065,
          "2025-10-31 00:00:00+00:00": -30.06907205506093,
          "2025-11-30 00:00:00+00:00": 104.74729169561112,
          "2026-01-31 00:00:00+00:00": -2.002922238469864,
          "2026-02-28 00:00:00+00:00": 8.200435486130118,
          "2026-03-31 00:00:00+00:00": 256.2410669719584
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p70_cap2",
        "variant": "ridge_a100_H20_c12_p70_cap2",
        "gain_pct": 248.61197099661763,
        "max_drawdown_pct": -11.691284206757292,
        "capital_score": 231.0750446864817,
        "stability_score": 231.0750446864817,
        "n_trades": 81,
        "skipped_by_capacity": 606,
        "avg_trade_ret_pct": 1.5923172392810676,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.8815642782487032,
        "month_gain_concentration": 0.25734749386528655,
        "top_asset_trade_share": 0.48148148148148145,
        "long_counts": {
          "XRP": 39,
          "SOL": 27,
          "ETH": 10,
          "BTC": 2,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 81,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.8934426229508197,
        "max_open_trades": 2,
        "avg_exposure": 0.9467213114754098,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.9705156405194941,
          "2025-02-28 00:00:00+00:00": 25.777071661695487,
          "2025-03-31 00:00:00+00:00": 43.60806904998506,
          "2025-04-30 00:00:00+00:00": 34.389964550488855,
          "2025-05-31 00:00:00+00:00": 7.830090491494701,
          "2025-07-31 00:00:00+00:00": 1.406959165004423,
          "2025-08-31 00:00:00+00:00": 0.8815642782487032,
          "2025-10-31 00:00:00+00:00": 7.7354984462776315,
          "2025-11-30 00:00:00+00:00": 15.00443427004717,
          "2025-12-31 00:00:00+00:00": 5.4855231440361365,
          "2026-01-31 00:00:00+00:00": 9.031978905331243,
          "2026-02-28 00:00:00+00:00": 62.804869716944324,
          "2026-03-31 00:00:00+00:00": 29.12040581870758
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6530967194475039,
            "drawdown_pct": -0.653096719447499,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 4.464039111780295,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 8.61740811757359,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 4.121409383783146,
            "drawdown_pct": -4.139298489726184,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -4.081361763465409,
            "drawdown_pct": -11.691284206757292,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": -1.6836363363810989,
            "drawdown_pct": -9.483787757855778,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.9705156405194941,
            "drawdown_pct": -7.0402089403354795,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 2.959201236687292,
            "drawdown_pct": -5.209300220791069,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.0175645292138285,
            "drawdown_pct": -8.870560266323036,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.18222606165953437,
            "drawdown_pct": -8.101495268334801,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.983082703871048,
            "drawdown_pct": -3.3459879743848675,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 5.905966698897089,
            "drawdown_pct": -2.496323071658535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 5.905966698897089,
            "drawdown_pct": -2.496323071658535,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 8.180167175676957,
            "drawdown_pct": -0.40255144131531306,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 13.15779455873188,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 21.61304144954906,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 21.61304144954906,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 26.74758730221498,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 26.74758730221498,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 46.49940887023587,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 55.32239557016351,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 68.2032640433981,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 58.97885610481441,
            "drawdown_pct": -5.4840837905521855,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 58.97885610481441,
            "drawdown_pct": -5.4840837905521855,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 63.27703105136109,
            "drawdown_pct": -2.9287380480119474,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 67.66363504674155,
            "drawdown_pct": -0.32081957489084045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 67.66363504674155,
            "drawdown_pct": -0.32081957489084045,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 70.35565635220004,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 70.35565635220004,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 77.35757231761949,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 89.30090522476695,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 89.30090522476695,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 104.7456209026889,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 112.5757113941836,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 107.6124043543858,
            "drawdown_pct": -2.3348420227531252,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 113.98267055918802,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 113.98267055918802,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 114.86423483743673,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 115.63671300237073,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 108.74581360757253,
            "drawdown_pct": -3.1956058404221888,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 108.74581360757253,
            "drawdown_pct": -3.1956058404221888,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 118.85291243846521,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 113.76976224854599,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 113.76976224854599,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 122.59973328371436,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 126.63149696343874,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 137.60416755376153,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 143.08969069779766,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 152.1216696031289,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 160.3582263486365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 154.05796523035616,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 214.5618809471518,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 214.92653932007323,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 214.92653932007323,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 244.0469451387808,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p70_cap2",
        "variant": "ridge_a100_H20_c12_p70_cap2",
        "gain_pct": 33.771982232344925,
        "max_drawdown_pct": -2.4038953907647764,
        "capital_score": 30.16613914619776,
        "stability_score": 22.31283764476143,
        "n_trades": 9,
        "skipped_by_capacity": 48,
        "avg_trade_ret_pct": 3.382802796361727,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8074653933907866,
        "top_asset_trade_share": 0.5555555555555556,
        "long_counts": {
          "XRP": 5,
          "ETH": 3,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 9,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9230769230769231,
        "max_open_trades": 2,
        "avg_exposure": 0.9615384615384616,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 24.876922833021837,
          "2026-03-31 00:00:00+00:00": 5.9317322952880716
        }
      },
      "selection_score": 1223.3280459611367
    },
    {
      "name": "ridge_a100_H20_c12_p70_cap3",
      "variant": {
        "name": "ridge_a100_H20_c12_p70_cap3",
        "threshold": 0.03206556007154939,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p70_cap3",
        "variant": "ridge_a100_H20_c12_p70_cap3",
        "gain_pct": 1181.527415583594,
        "max_drawdown_pct": -15.925985308244417,
        "capital_score": 1157.6384376212272,
        "stability_score": 1133.245135056296,
        "n_trades": 213,
        "skipped_by_capacity": 1758,
        "avg_trade_ret_pct": 1.2285797318120688,
        "median_trade_ret_pct": 1.1489154096842362,
        "positive_month_rate": 0.7647058823529411,
        "worst_month_pct": -28.724288480424093,
        "month_gain_concentration": 0.20553718555326292,
        "top_asset_trade_share": 0.6056338028169014,
        "long_counts": {
          "SOL": 61,
          "XRP": 129,
          "ETH": 18,
          "BTC": 3,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 213,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8653846153846154,
        "max_open_trades": 3,
        "avg_exposure": 0.9551282051282052,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 46.748646605131256,
          "2024-10-31 00:00:00+00:00": 2.1696955547033383,
          "2024-11-30 00:00:00+00:00": 117.19565993952409,
          "2024-12-31 00:00:00+00:00": 72.99745486042542,
          "2025-01-31 00:00:00+00:00": 17.73059785602669,
          "2025-02-28 00:00:00+00:00": 107.26176941941509,
          "2025-03-31 00:00:00+00:00": 213.37505011726688,
          "2025-04-30 00:00:00+00:00": 220.37471621452835,
          "2025-05-31 00:00:00+00:00": 25.282465614003172,
          "2025-07-31 00:00:00+00:00": -7.227023573090605,
          "2025-08-31 00:00:00+00:00": 19.380694253605157,
          "2025-10-31 00:00:00+00:00": -28.724288480424093,
          "2025-11-30 00:00:00+00:00": 98.84884288148328,
          "2026-01-31 00:00:00+00:00": -1.8821405382021794,
          "2026-02-28 00:00:00+00:00": 7.844705437704761,
          "2026-03-31 00:00:00+00:00": 245.57224045772057
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p70_cap3",
        "variant": "ridge_a100_H20_c12_p70_cap3",
        "gain_pct": 217.85218067477786,
        "max_drawdown_pct": -7.261910472759759,
        "capital_score": 206.9593149656382,
        "stability_score": 206.9593149656382,
        "n_trades": 114,
        "skipped_by_capacity": 573,
        "avg_trade_ret_pct": 1.037522560065805,
        "median_trade_ret_pct": 1.0802143895311749,
        "positive_month_rate": 0.9230769230769231,
        "worst_month_pct": -0.2882034699221663,
        "month_gain_concentration": 0.2551914186940759,
        "top_asset_trade_share": 0.4649122807017544,
        "long_counts": {
          "XRP": 53,
          "SOL": 39,
          "ETH": 15,
          "BTC": 3,
          "BNB": 4
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 114,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7295081967213113,
        "max_open_trades": 3,
        "avg_exposure": 0.9098360655737705,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.8220990882151682,
          "2025-02-28 00:00:00+00:00": 19.666150536968473,
          "2025-03-31 00:00:00+00:00": 31.187558917965276,
          "2025-04-30 00:00:00+00:00": 35.931331448814745,
          "2025-05-31 00:00:00+00:00": 7.408578042553302,
          "2025-07-31 00:00:00+00:00": 0.8800389705849341,
          "2025-08-31 00:00:00+00:00": -0.2882034699221663,
          "2025-10-31 00:00:00+00:00": 7.301649624541767,
          "2025-11-30 00:00:00+00:00": 12.494110567278994,
          "2025-12-31 00:00:00+00:00": 4.409120599203703,
          "2026-01-31 00:00:00+00:00": 8.229618435203491,
          "2026-02-28 00:00:00+00:00": 54.111890422694586,
          "2026-03-31 00:00:00+00:00": 28.60217168398384
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.43539781296500735,
            "drawdown_pct": -0.43539781296501046,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.3470140302870846,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 6.086318953233686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 3.1718779963584893,
            "drawdown_pct": -2.747235445279217,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.780987318485586,
            "drawdown_pct": -0.2878143362507468,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.780987318485586,
            "drawdown_pct": -0.2878143362507468,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": -1.6175745529965155,
            "drawdown_pct": -7.261910472759759,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 0.021968066383266205,
            "drawdown_pct": -5.7164306827573,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.8220990882151682,
            "drawdown_pct": -4.0195756692230304,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.159071177171171,
            "drawdown_pct": -2.759307519523735,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.5027473921380761,
            "drawdown_pct": -5.2632343323713915,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -0.5686466740445155,
            "drawdown_pct": -6.273161038052355,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.4847202473810484,
            "drawdown_pct": -2.4523413872051703,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.1567892285491297,
            "drawdown_pct": -2.761458549594875,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.1567892285491297,
            "drawdown_pct": -2.761458549594875,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.830926604897854,
            "drawdown_pct": -0.2407401358213046,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 9.065599902395462,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 16.458622788169137,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 16.458622788169137,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 21.48824962518364,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 21.48824962518364,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 32.848258550549986,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 40.889116514509425,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 52.65339805953383,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 44.32013074006906,
            "drawdown_pct": -5.458946492769745,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 44.32013074006906,
            "drawdown_pct": -5.458946492769745,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 46.32016808738848,
            "drawdown_pct": -4.148764490440904,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 50.25999635001705,
            "drawdown_pct": -1.5678666442678013,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 50.25999635001705,
            "drawdown_pct": -1.5678666442678013,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 52.67580854314892,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 52.67580854314892,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 58.97249561934686,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 69.73761470893257,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 69.73761470893257,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 88.60713999196366,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 96.01571803451696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 92.95860625806648,
            "drawdown_pct": -1.5596258336345037,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 96.8957570051019,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 96.8957570051019,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 96.60755353517973,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 97.0786405364872,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 90.79758461202627,
            "drawdown_pct": -3.1870810085571133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 90.79758461202627,
            "drawdown_pct": -3.1870810085571133,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 100.07283461374996,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 95.4348825443665,
            "drawdown_pct": -2.3181318335081524,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 95.4348825443665,
            "drawdown_pct": -2.3181318335081524,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 103.9092031597215,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 106.37136160329007,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 116.4033137270005,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 120.8124343262042,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 129.0420527614077,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 136.54495531410245,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 127.65774211622366,
            "drawdown_pct": -3.75709267867399,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 182.9352798620962,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 183.15394318410227,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 183.15394318410227,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 211.75611486808612,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p70_cap3",
        "variant": "ridge_a100_H20_c12_p70_cap3",
        "gain_pct": 32.80396685938376,
        "max_drawdown_pct": -1.6058465002812161,
        "capital_score": 30.395197108961938,
        "stability_score": 20.198774793951547,
        "n_trades": 12,
        "skipped_by_capacity": 45,
        "avg_trade_ret_pct": 2.43882026734607,
        "median_trade_ret_pct": 1.0713100636683546,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.8678568926004157,
        "top_asset_trade_share": 0.5833333333333334,
        "long_counts": {
          "XRP": 7,
          "ETH": 3,
          "BTC": 1,
          "SOL": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 12,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.6923076923076925,
        "max_open_trades": 3,
        "avg_exposure": 0.8974358974358974,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 26.258683880551857,
          "2026-03-31 00:00:00+00:00": 3.9982445421415065
        }
      },
      "selection_score": 1142.6384376212272
    },
    {
      "name": "ridge_a100_H20_c12_p70_cap5",
      "variant": {
        "name": "ridge_a100_H20_c12_p70_cap5",
        "threshold": 0.03206556007154939,
        "pred_percentile": 70,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p70_cap5",
        "variant": "ridge_a100_H20_c12_p70_cap5",
        "gain_pct": 917.6578995326371,
        "max_drawdown_pct": -15.837703670770754,
        "capital_score": 893.901344026481,
        "stability_score": 875.6535499936105,
        "n_trades": 337,
        "skipped_by_capacity": 1634,
        "avg_trade_ret_pct": 0.6990394188042178,
        "median_trade_ret_pct": 0.6875648322119061,
        "positive_month_rate": 0.7058823529411765,
        "worst_month_pct": -23.388743587766612,
        "month_gain_concentration": 0.2129491060460766,
        "top_asset_trade_share": 0.5786350148367952,
        "long_counts": {
          "SOL": 103,
          "XRP": 195,
          "ETH": 23,
          "BNB": 7,
          "BTC": 9
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 337,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.6038461538461535,
        "max_open_trades": 5,
        "avg_exposure": 0.9207692307692307,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 35.46437648287491,
          "2024-10-31 00:00:00+00:00": 1.0507297226700416,
          "2024-11-30 00:00:00+00:00": 85.55050268082923,
          "2024-12-31 00:00:00+00:00": 65.2899809826475,
          "2025-01-31 00:00:00+00:00": 11.455990061225464,
          "2025-02-28 00:00:00+00:00": 80.25432654588951,
          "2025-03-31 00:00:00+00:00": 173.96164431608577,
          "2025-04-30 00:00:00+00:00": 174.4571267219319,
          "2025-05-31 00:00:00+00:00": 12.256919256082597,
          "2025-07-31 00:00:00+00:00": -3.4747618763614128,
          "2025-08-31 00:00:00+00:00": 15.601420489433622,
          "2025-10-31 00:00:00+00:00": -23.388743587766612,
          "2025-11-30 00:00:00+00:00": 80.22309314210418,
          "2026-01-31 00:00:00+00:00": -1.5137063586735167,
          "2026-02-28 00:00:00+00:00": -6.695429901464308,
          "2026-03-31 00:00:00+00:00": 199.01908104181348
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p70_cap5",
        "variant": "ridge_a100_H20_c12_p70_cap5",
        "gain_pct": 184.1208113672983,
        "max_drawdown_pct": -5.0764337617667525,
        "capital_score": 176.50616072464817,
        "stability_score": 176.50616072464817,
        "n_trades": 169,
        "skipped_by_capacity": 518,
        "avg_trade_ret_pct": 0.626376964087002,
        "median_trade_ret_pct": 0.6389698051494714,
        "positive_month_rate": 1.0,
        "worst_month_pct": 0.4888584749332665,
        "month_gain_concentration": 0.29223219211998674,
        "top_asset_trade_share": 0.4437869822485207,
        "long_counts": {
          "XRP": 75,
          "SOL": 57,
          "ETH": 25,
          "BNB": 7,
          "BTC": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 169,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.237704918032787,
        "max_open_trades": 5,
        "avg_exposure": 0.8475409836065573,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.5242702976004665,
          "2025-02-28 00:00:00+00:00": 13.70570621225994,
          "2025-03-31 00:00:00+00:00": 18.249737709904494,
          "2025-04-30 00:00:00+00:00": 35.51548959017239,
          "2025-05-31 00:00:00+00:00": 8.023366233821946,
          "2025-07-31 00:00:00+00:00": 0.4888584749332665,
          "2025-08-31 00:00:00+00:00": 1.3051402027646475,
          "2025-10-31 00:00:00+00:00": 6.883355765783705,
          "2025-11-30 00:00:00+00:00": 10.921752350512634,
          "2025-12-31 00:00:00+00:00": 4.005311986935595,
          "2026-01-31 00:00:00+00:00": 7.200638280048679,
          "2026-02-28 00:00:00+00:00": 51.8090404451348,
          "2026-03-31 00:00:00+00:00": 15.654578147763232
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.26123868777901293,
            "drawdown_pct": -0.2612386877790085,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0037495458466594,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-19 14:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 01:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 3.6259698445854127,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.9239767460909576,
            "drawdown_pct": -1.6424387641891691,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.4705074657462376,
            "drawdown_pct": -0.15002260444204607,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.4705074657462376,
            "drawdown_pct": -0.15002260444204607,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-23 14:00:00+00:00",
            "gain_pct": 1.4043729238335487,
            "drawdown_pct": -2.1438611615251846,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-27 14:00:00+00:00",
            "gain_pct": 2.4183149390545537,
            "drawdown_pct": -1.1653979280889293,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.5242702976004665,
            "drawdown_pct": -0.09814098448243103,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 4.339863736491452,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.727826373566714,
            "drawdown_pct": -1.5449870310315084,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 19:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 1.4223563938498387,
            "drawdown_pct": -2.7961578999276093,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 4.077576434832579,
            "drawdown_pct": -0.2513778456921023,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.321542988616315,
            "drawdown_pct": -0.9759651885753784,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-10 03:00:00+00:00",
            "gain_pct": 3.321542988616315,
            "drawdown_pct": -0.9759651885753784,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-18 16:00:00+00:00",
            "gain_pct": 5.443332625096318,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 7.3714417129843355,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 17:00:00+00:00",
            "gain_pct": 14.001682073527618,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 14.001682073527618,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 03:00:00+00:00",
            "gain_pct": 17.229976509860407,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 17.229976509860407,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 16:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 06:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 23.145942551547293,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 05:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 25.06392248642652,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 34.29239642993224,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 16:00:00+00:00",
            "gain_pct": 27.475131878077505,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 27.475131878077505,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 28.534959671753427,
            "drawdown_pct": -4.287239569205825,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 31.930916361425034,
            "drawdown_pct": -1.7584614850024827,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 31.930916361425034,
            "drawdown_pct": -1.7584614850024827,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 35.4797142197649,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 35.4797142197649,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 06:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 14:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 39.796036311135026,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 50.523479423056955,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-04-09 01:00:00+00:00",
            "gain_pct": 50.523479423056955,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-10 15:00:00+00:00",
            "gain_pct": 70.9952038099373,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 79.01857004375924,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 77.34072484573358,
            "drawdown_pct": -0.9372464530442493,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 79.5074285186925,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 79.5074285186925,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-08-14 12:00:00+00:00",
            "gain_pct": 80.81256872145715,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-10 22:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 00:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-11 05:00:00+00:00",
            "gain_pct": 81.07245110418782,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 75.31379513820517,
            "drawdown_pct": -3.1803048618749608,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 75.31379513820517,
            "drawdown_pct": -3.1803048618749608,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 83.8639190374067,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 79.60830114376762,
            "drawdown_pct": -2.3145475827551,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 79.60830114376762,
            "drawdown_pct": -2.3145475827551,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-19 09:00:00+00:00",
            "gain_pct": 87.69592448724086,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 21:00:00+00:00",
            "gain_pct": 89.05575650503658,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 98.61767683775349,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 102.62298882468909,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 109.82362710473777,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 116.71197602513274,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 05:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 109.76099819159222,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 16:00:00+00:00",
            "gain_pct": 161.51140387640925,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 06:00:00+00:00",
            "gain_pct": 161.63266754987256,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2026-02-28 07:00:00+00:00",
            "gain_pct": 161.63266754987256,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 177.2872456976358,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p70_cap5",
        "variant": "ridge_a100_H20_c12_p70_cap5",
        "gain_pct": 27.567565255004524,
        "max_drawdown_pct": -0.9650676952589698,
        "capital_score": 26.119963712116068,
        "stability_score": 15.578515282837673,
        "n_trades": 16,
        "skipped_by_capacity": 41,
        "avg_trade_ret_pct": 1.5497135985028876,
        "median_trade_ret_pct": 0.6427860382010128,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9066579371711359,
        "top_asset_trade_share": 0.5625,
        "long_counts": {
          "XRP": 9,
          "ETH": 4,
          "BTC": 1,
          "SOL": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 16,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.076923076923077,
        "max_open_trades": 5,
        "avg_exposure": 0.8153846153846154,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 22.632402339539354,
          "2026-03-31 00:00:00+00:00": 2.3300464646422228
        }
      },
      "selection_score": 878.901344026481
    },
    {
      "name": "ridge_a100_H20_c12_p80_cap1",
      "variant": {
        "name": "ridge_a100_H20_c12_p80_cap1",
        "threshold": 0.052308250132774944,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p80_cap1",
        "variant": "ridge_a100_H20_c12_p80_cap1",
        "gain_pct": 895.3860352871473,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 870.8018493442713,
        "stability_score": 858.236825542421,
        "n_trades": 65,
        "skipped_by_capacity": 1249,
        "avg_trade_ret_pct": 3.787689224831926,
        "median_trade_ret_pct": 3.4467462290527084,
        "positive_month_rate": 0.875,
        "worst_month_pct": -16.603485340311863,
        "month_gain_concentration": 0.20137902494300083,
        "top_asset_trade_share": 0.6153846153846154,
        "long_counts": {
          "SOL": 19,
          "ETH": 5,
          "XRP": 40,
          "BTC": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 65,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 26.186490872389044,
          "2024-10-31 00:00:00+00:00": 4.050398151531283,
          "2024-11-30 00:00:00+00:00": 92.07350173665895,
          "2024-12-31 00:00:00+00:00": 69.46465417308221,
          "2025-01-31 00:00:00+00:00": 10.765427205369178,
          "2025-02-28 00:00:00+00:00": 90.14439727360849,
          "2025-03-31 00:00:00+00:00": 140.26534613935746,
          "2025-04-30 00:00:00+00:00": 107.93938297410705,
          "2025-05-31 00:00:00+00:00": 66.05316156050469,
          "2025-07-31 00:00:00+00:00": -16.603485340311863,
          "2025-10-31 00:00:00+00:00": 14.505785249005271,
          "2025-11-30 00:00:00+00:00": 33.72394858163091,
          "2026-01-31 00:00:00+00:00": 42.92559753155808,
          "2026-02-28 00:00:00+00:00": 5.682108121647161,
          "2026-03-31 00:00:00+00:00": 177.46412226847963
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p80_cap1",
        "variant": "ridge_a100_H20_c12_p80_cap1",
        "gain_pct": 122.73632738438718,
        "max_drawdown_pct": -19.809203781979445,
        "capital_score": 93.02252171141802,
        "stability_score": 93.02252171141802,
        "n_trades": 35,
        "skipped_by_capacity": 400,
        "avg_trade_ret_pct": 2.4797810596186434,
        "median_trade_ret_pct": 3.0451631169511306,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -4.274078038375492,
        "month_gain_concentration": 0.3258721028211439,
        "top_asset_trade_share": 0.4857142857142857,
        "long_counts": {
          "XRP": 17,
          "SOL": 13,
          "ETH": 4,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 35,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -4.274078038375492,
          "2025-02-28 00:00:00+00:00": 20.696308329401404,
          "2025-03-31 00:00:00+00:00": 14.471906289429072,
          "2025-04-30 00:00:00+00:00": 19.980411038848217,
          "2025-05-31 00:00:00+00:00": 0.22242413072498834,
          "2025-07-31 00:00:00+00:00": 0.9443730407463988,
          "2025-10-31 00:00:00+00:00": 1.5857614277407777,
          "2025-11-30 00:00:00+00:00": 14.287031907140431,
          "2025-12-31 00:00:00+00:00": 3.854482431918484,
          "2026-01-31 00:00:00+00:00": 6.3238452087263965,
          "2026-02-28 00:00:00+00:00": 1.294878605975157,
          "2026-03-31 00:00:00+00:00": 40.44176744510793
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -1.306193438895022,
            "drawdown_pct": -1.3061934388950203,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 6.056857839653375,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 14.490253100805347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.681749610570094,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -4.274078038375492,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.5032987969833584,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -8.189354446437221,
            "drawdown_pct": -19.809203781979445,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": -0.45047695744897,
            "drawdown_pct": -13.04978341265386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.422726929513189,
            "drawdown_pct": -12.287095006162762,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 3.875083699090837,
            "drawdown_pct": -9.271679565917424,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.49690593869478,
            "drawdown_pct": -2.6144995587310094,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.42223029102591,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.530169672777717,
            "drawdown_pct": -2.4841137392908386,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.267612182882303,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.042764440189558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 22.81055715586993,
            "drawdown_pct": -5.561406907529964,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 25.48487245136377,
            "drawdown_pct": -3.5049177925789876,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 28.833807495100103,
            "drawdown_pct": -0.9296610621081447,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 28.833807495100103,
            "drawdown_pct": -0.9296610621081447,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 30.894136580454983,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 30.894136580454983,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 36.219941022467424,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 50.8745476193032,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 51.09697175002819,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 47.54825960944447,
            "drawdown_pct": -2.3486322058489884,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 52.04134479077459,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 52.04134479077459,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 50.119518081975855,
            "drawdown_pct": -1.2640158579519167,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 50.119518081975855,
            "drawdown_pct": -1.2640158579519167,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 57.302122027486234,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 53.627106218515365,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 53.627106218515365,
            "drawdown_pct": -2.3362785966286714,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 60.24725424262101,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 60.24725424262101,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 67.9141381256558,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 71.76862055757428,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 78.09246576630068,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 83.86380709193605,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 79.38734437227583,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 119.82911181738376,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p80_cap1",
        "variant": "ridge_a100_H20_c12_p80_cap1",
        "gain_pct": 25.088493673153366,
        "max_drawdown_pct": -2.4185184697359086,
        "capital_score": 21.460715968549504,
        "stability_score": 3.753429291354033,
        "n_trades": 4,
        "skipped_by_capacity": 31,
        "avg_trade_ret_pct": 6.172248793936797,
        "median_trade_ret_pct": 2.281566026165436,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9682914670878189,
        "top_asset_trade_share": 0.75,
        "long_counts": {
          "XRP": 3,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 4,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.7437491452869409,
          "2026-03-31 00:00:00+00:00": 22.71205523856152
        }
      },
      "selection_score": 755.8018493442713
    },
    {
      "name": "ridge_a100_H20_c12_p80_cap2",
      "variant": {
        "name": "ridge_a100_H20_c12_p80_cap2",
        "threshold": 0.052308250132774944,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p80_cap2",
        "variant": "ridge_a100_H20_c12_p80_cap2",
        "gain_pct": 770.5752091769883,
        "max_drawdown_pct": -16.038331602416676,
        "capital_score": 746.5177117733633,
        "stability_score": 743.7209552844822,
        "n_trades": 124,
        "skipped_by_capacity": 1190,
        "avg_trade_ret_pct": 1.8087454182829432,
        "median_trade_ret_pct": 1.6933900868859253,
        "positive_month_rate": 0.875,
        "worst_month_pct": -7.151595198558539,
        "month_gain_concentration": 0.21589012019591636,
        "top_asset_trade_share": 0.6048387096774194,
        "long_counts": {
          "SOL": 37,
          "ETH": 9,
          "XRP": 75,
          "BTC": 2,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 124,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9425837320574162,
        "max_open_trades": 2,
        "avg_exposure": 0.9712918660287081,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.622997216482105,
          "2024-10-31 00:00:00+00:00": 3.7384080639964026,
          "2024-11-30 00:00:00+00:00": 89.30769093620928,
          "2024-12-31 00:00:00+00:00": 70.75086762729993,
          "2025-01-31 00:00:00+00:00": 12.540536055469943,
          "2025-02-28 00:00:00+00:00": 74.01958190768585,
          "2025-03-31 00:00:00+00:00": 93.69649577407785,
          "2025-04-30 00:00:00+00:00": 78.18587134059902,
          "2025-05-31 00:00:00+00:00": 73.13841385681019,
          "2025-07-31 00:00:00+00:00": -7.151595198558539,
          "2025-10-31 00:00:00+00:00": 12.712818153287913,
          "2025-11-30 00:00:00+00:00": 29.755996687453035,
          "2026-01-31 00:00:00+00:00": 37.99185315702789,
          "2026-02-28 00:00:00+00:00": 5.240143565417156,
          "2026-03-31 00:00:00+00:00": 163.7400819212313
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p80_cap2",
        "variant": "ridge_a100_H20_c12_p80_cap2",
        "gain_pct": 127.44537510201297,
        "max_drawdown_pct": -11.10008288763934,
        "capital_score": 110.79525077055396,
        "stability_score": 110.79525077055396,
        "n_trades": 65,
        "skipped_by_capacity": 370,
        "avg_trade_ret_pct": 1.3117819421297747,
        "median_trade_ret_pct": 1.3343979151886776,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -2.830453752596256,
        "month_gain_concentration": 0.33916432227868637,
        "top_asset_trade_share": 0.4461538461538462,
        "long_counts": {
          "XRP": 29,
          "SOL": 25,
          "ETH": 9,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 65,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9263157894736842,
        "max_open_trades": 2,
        "avg_exposure": 0.9631578947368421,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.830453752596256,
          "2025-02-28 00:00:00+00:00": 19.714404363644178,
          "2025-03-31 00:00:00+00:00": 12.800471346015499,
          "2025-04-30 00:00:00+00:00": 20.245851000551994,
          "2025-05-31 00:00:00+00:00": 0.11051602526129045,
          "2025-07-31 00:00:00+00:00": 0.9930638914457006,
          "2025-10-31 00:00:00+00:00": 4.272180967007387,
          "2025-11-30 00:00:00+00:00": 14.24501505266781,
          "2025-12-31 00:00:00+00:00": 3.91439347373057,
          "2026-01-31 00:00:00+00:00": 6.44509527233302,
          "2026-02-28 00:00:00+00:00": 1.381713788715274,
          "2026-03-31 00:00:00+00:00": 43.17475773927907
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.6530967194475039,
            "drawdown_pct": -0.653096719447499,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 3.0527910596746892,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 7.150050480112682,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.624332304089208,
            "drawdown_pct": -5.156990735201816,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 5.479292559521895,
            "drawdown_pct": -1.5592693732803142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 5.479292559521895,
            "drawdown_pct": -1.5592693732803142,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.830453752596256,
            "drawdown_pct": -9.31451192788877,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": -0.9166309323151864,
            "drawdown_pct": -7.5283972114647435,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -4.743693937327222,
            "drawdown_pct": -11.10008288763934,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -3.9398012431051086,
            "drawdown_pct": -10.349833409808884,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.0310628333077716,
            "drawdown_pct": -5.710671734998963,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.9192054605569098,
            "drawdown_pct": -4.881794265254813,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.107795139459654,
            "drawdown_pct": -2.839247697057945,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.886818357395143,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 16.883950611047922,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.998452083521556,
            "drawdown_pct": -2.468686686616517,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 20.864055394154406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 30.887297663622093,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 23.70932858855963,
            "drawdown_pct": -5.484083790552163,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 24.29576947526934,
            "drawdown_pct": -5.036033523507266,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 27.635102114271035,
            "drawdown_pct": -2.4847296929524365,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 27.635102114271035,
            "drawdown_pct": -2.4847296929524365,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 29.68442195706342,
            "drawdown_pct": -0.9190163812916707,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 29.68442195706342,
            "drawdown_pct": -0.9190163812916707,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 35.01467892657689,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 49.930272957615415,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 50.040788982876705,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 46.537573590434164,
            "drawdown_pct": -2.3348420227531252,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 51.033852874322406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 51.033852874322406,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 51.65608106295252,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 51.65608106295252,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 58.998997182413945,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 55.30603384132979,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 55.30603384132979,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 61.72110286690781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 61.72110286690781,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 69.5510488939976,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 73.46544236772817,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 79.9105376400612,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 85.7880306565074,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 81.29225142877647,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 124.46700916805554,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p80_cap2",
        "variant": "ridge_a100_H20_c12_p80_cap2",
        "gain_pct": 25.70266454443184,
        "max_drawdown_pct": -2.4038953907647764,
        "capital_score": 22.096821458284676,
        "stability_score": 9.815872912189395,
        "n_trades": 7,
        "skipped_by_capacity": 28,
        "avg_trade_ret_pct": 3.4430791043010966,
        "median_trade_ret_pct": 1.6203215842967622,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9655236561295256,
        "top_asset_trade_share": 0.5714285714285714,
        "long_counts": {
          "XRP": 4,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 7,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9090909090909092,
        "max_open_trades": 2,
        "avg_exposure": 0.9545454545454546,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.8576653460305153,
          "2026-03-31 00:00:00+00:00": 24.01925748699132
        }
      },
      "selection_score": 731.5177117733633
    },
    {
      "name": "ridge_a100_H20_c12_p80_cap3",
      "variant": {
        "name": "ridge_a100_H20_c12_p80_cap3",
        "threshold": 0.052308250132774944,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p80_cap3",
        "variant": "ridge_a100_H20_c12_p80_cap3",
        "gain_pct": 615.9910933724304,
        "max_drawdown_pct": -16.215679627577263,
        "capital_score": 591.6675739310646,
        "stability_score": 589.6929976598781,
        "n_trades": 177,
        "skipped_by_capacity": 1137,
        "avg_trade_ret_pct": 1.1392172927491302,
        "median_trade_ret_pct": 1.1263382039934222,
        "positive_month_rate": 0.8125,
        "worst_month_pct": -3.900401129980594,
        "month_gain_concentration": 0.22554098527927816,
        "top_asset_trade_share": 0.615819209039548,
        "long_counts": {
          "SOL": 53,
          "ETH": 11,
          "XRP": 109,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 177,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8229665071770333,
        "max_open_trades": 3,
        "avg_exposure": 0.9409888357256778,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 9.693388827003957,
          "2024-10-31 00:00:00+00:00": 1.6599882482941695,
          "2024-11-30 00:00:00+00:00": 75.15743101697721,
          "2024-12-31 00:00:00+00:00": 66.85017698670734,
          "2025-01-31 00:00:00+00:00": -2.1624434409921207,
          "2025-02-28 00:00:00+00:00": 59.528194924682964,
          "2025-03-31 00:00:00+00:00": 70.1652964095274,
          "2025-04-30 00:00:00+00:00": 63.61724707681151,
          "2025-05-31 00:00:00+00:00": 53.70424869343282,
          "2025-07-31 00:00:00+00:00": -3.900401129980594,
          "2025-10-31 00:00:00+00:00": 10.459697689105951,
          "2025-11-30 00:00:00+00:00": 24.53853993104144,
          "2026-01-31 00:00:00+00:00": 31.363393601501343,
          "2026-02-28 00:00:00+00:00": 4.382847495282704,
          "2026-03-31 00:00:00+00:00": 137.20154154265265
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p80_cap3",
        "variant": "ridge_a100_H20_c12_p80_cap3",
        "gain_pct": 120.15830241064222,
        "max_drawdown_pct": -6.644335085614794,
        "capital_score": 110.19179978222003,
        "stability_score": 110.19179978222003,
        "n_trades": 89,
        "skipped_by_capacity": 346,
        "avg_trade_ret_pct": 0.9085959213347532,
        "median_trade_ret_pct": 1.0150543723170435,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -1.0677287573923024,
        "month_gain_concentration": 0.35739118453681135,
        "top_asset_trade_share": 0.4606741573033708,
        "long_counts": {
          "XRP": 41,
          "SOL": 32,
          "ETH": 13,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 89,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.778947368421053,
        "max_open_trades": 3,
        "avg_exposure": 0.9263157894736842,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 0.13683391696378067,
          "2025-02-28 00:00:00+00:00": 14.531479887644295,
          "2025-03-31 00:00:00+00:00": 13.575089988901155,
          "2025-04-30 00:00:00+00:00": 20.17583160068989,
          "2025-05-31 00:00:00+00:00": 0.07293481004876412,
          "2025-07-31 00:00:00+00:00": 0.6666756008997936,
          "2025-10-31 00:00:00+00:00": 3.4016408709378823,
          "2025-11-30 00:00:00+00:00": 14.352945699202593,
          "2025-12-31 00:00:00+00:00": 3.4007864311084006,
          "2026-01-31 00:00:00+00:00": 6.3475638912426575,
          "2026-02-28 00:00:00+00:00": -1.0677287573923024,
          "2026-03-31 00:00:00+00:00": 42.63596245137785
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.43539781296500735,
            "drawdown_pct": -0.43539781296501046,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 2.0406078486382313,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 4.745285308775806,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 1.1441488694863011,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 3.7019790342459515,
            "drawdown_pct": -0.9960412742724634,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 3.7019790342459515,
            "drawdown_pct": -0.9960412742724634,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 0.13683391696378067,
            "drawdown_pct": -4.399674293909173,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 1.4516776809625327,
            "drawdown_pct": -3.1443970180654257,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.1606810905953893,
            "drawdown_pct": -5.638407859562511,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -2.2143424335225035,
            "drawdown_pct": -6.644335085614794,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 1.7719369090753645,
            "drawdown_pct": -2.8386465232639213,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 1.4494335010426767,
            "drawdown_pct": -3.1465395296956578,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.079311029835154,
            "drawdown_pct": -0.6358035848367249,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.134337812502935,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 14.668313804608076,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.777181775461983,
            "drawdown_pct": -1.6492193583386383,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 19.603205015255284,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 29.59010685903138,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 22.51585226567373,
            "drawdown_pct": -5.4589464927697335,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 22.904843787756292,
            "drawdown_pct": -5.15877579956574,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 26.214189201300044,
            "drawdown_pct": -2.6050735967087957,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 26.214189201300044,
            "drawdown_pct": -2.6050735967087957,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 28.24340379350923,
            "drawdown_pct": -1.039202064234035,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 28.24340379350923,
            "drawdown_pct": -1.039202064234035,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 33.53244461130194,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 48.41923539419912,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 48.492170204247884,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 46.17624795681792,
            "drawdown_pct": -1.5596258336345037,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 49.15884580514768,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 49.15884580514768,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 48.94051658574497,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 48.94051658574497,
            "drawdown_pct": -0.14637363156316807,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 56.180967399248544,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 52.56048667608556,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 52.56048667608556,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 59.17571554667498,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 59.17571554667498,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 66.91343237528815,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 70.31421880639655,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 76.66178269763921,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 82.44882540174245,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 75.59405394024691,
            "drawdown_pct": -3.757092678673979,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 118.23001639162476,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p80_cap3",
        "variant": "ridge_a100_H20_c12_p80_cap3",
        "gain_pct": 25.708925820983808,
        "max_drawdown_pct": -1.605846500281205,
        "capital_score": 23.300156070562,
        "stability_score": 9.126835209479278,
        "n_trades": 8,
        "skipped_by_capacity": 27,
        "avg_trade_ret_pct": 2.964476950556938,
        "median_trade_ret_pct": 1.1048153882742284,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.9769328344433089,
        "top_asset_trade_share": 0.625,
        "long_counts": {
          "XRP": 5,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 8,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.5454545454545454,
        "max_open_trades": 3,
        "avg_exposure": 0.8484848484848485,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.5803052009299563,
          "2026-03-31 00:00:00+00:00": 24.576890619413376
        }
      },
      "selection_score": 576.6675739310646
    },
    {
      "name": "ridge_a100_H20_c12_p80_cap5",
      "variant": {
        "name": "ridge_a100_H20_c12_p80_cap5",
        "threshold": 0.052308250132774944,
        "pred_percentile": 80,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p80_cap5",
        "variant": "ridge_a100_H20_c12_p80_cap5",
        "gain_pct": 493.82717102145443,
        "max_drawdown_pct": -17.26747395499697,
        "capital_score": 467.92596008895896,
        "stability_score": 462.50396177756045,
        "n_trades": 268,
        "skipped_by_capacity": 1046,
        "avg_trade_ret_pct": 0.6748557737061204,
        "median_trade_ret_pct": 0.6782794896615281,
        "positive_month_rate": 0.75,
        "worst_month_pct": -9.563789356174652,
        "month_gain_concentration": 0.23260880304918574,
        "top_asset_trade_share": 0.6119402985074627,
        "long_counts": {
          "SOL": 85,
          "ETH": 15,
          "XRP": 164,
          "BTC": 3,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 268,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.440191387559809,
        "max_open_trades": 5,
        "avg_exposure": 0.8880382775119617,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 10.129784966836112,
          "2024-10-31 00:00:00+00:00": 0.5592406892149882,
          "2024-11-30 00:00:00+00:00": 60.802364605125874,
          "2024-12-31 00:00:00+00:00": 61.7435948075661,
          "2025-01-31 00:00:00+00:00": -9.563789356174652,
          "2025-02-28 00:00:00+00:00": 46.21720817522612,
          "2025-03-31 00:00:00+00:00": 59.235445190413486,
          "2025-04-30 00:00:00+00:00": 50.50659406584623,
          "2025-05-31 00:00:00+00:00": 44.05787866356911,
          "2025-07-31 00:00:00+00:00": -1.99017607567896,
          "2025-10-31 00:00:00+00:00": 8.935741472216193,
          "2025-11-30 00:00:00+00:00": 21.00218689514844,
          "2026-01-31 00:00:00+00:00": 22.37996062249215,
          "2026-02-28 00:00:00+00:00": -3.9318443777373773,
          "2026-03-31 00:00:00+00:00": 116.87256328165108
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p80_cap5",
        "variant": "ridge_a100_H20_c12_p80_cap5",
        "gain_pct": 110.52607064271626,
        "max_drawdown_pct": -5.0764337617667525,
        "capital_score": 102.91142000006613,
        "stability_score": 102.91142000006613,
        "n_trades": 132,
        "skipped_by_capacity": 303,
        "avg_trade_ret_pct": 0.5719967256971701,
        "median_trade_ret_pct": 0.6090326233902261,
        "positive_month_rate": 0.9166666666666666,
        "worst_month_pct": -0.05015286670246155,
        "month_gain_concentration": 0.3785747257218236,
        "top_asset_trade_share": 0.4696969696969697,
        "long_counts": {
          "XRP": 62,
          "SOL": 48,
          "ETH": 17,
          "BNB": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 132,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.242105263157895,
        "max_open_trades": 5,
        "avg_exposure": 0.8484210526315791,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 3.0774020346501914,
          "2025-02-28 00:00:00+00:00": 10.383142794378458,
          "2025-03-31 00:00:00+00:00": 10.472913468890198,
          "2025-04-30 00:00:00+00:00": 16.994877214873398,
          "2025-05-31 00:00:00+00:00": 0.041552220723218625,
          "2025-07-31 00:00:00+00:00": 0.38495628868042786,
          "2025-10-31 00:00:00+00:00": 4.515564716884285,
          "2025-11-30 00:00:00+00:00": 14.554566502350355,
          "2025-12-31 00:00:00+00:00": 1.8343270357703432,
          "2026-01-31 00:00:00+00:00": 5.766228945927196,
          "2026-02-28 00:00:00+00:00": -0.05015286670246155,
          "2026-03-31 00:00:00+00:00": 41.441421665365084
        },
        "curve": [
          {
            "t": "2025-01-08 18:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": -0.26123868777901293,
            "drawdown_pct": -0.2612386877790085,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-18 06:00:00+00:00",
            "gain_pct": 1.2269633374333893,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 10:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-19 12:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 03:00:00+00:00",
            "gain_pct": 2.836829988775065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": 0.7155156708165151,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": 2.2437099574156605,
            "drawdown_pct": -0.5767583767645745,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": 2.2437099574156605,
            "drawdown_pct": -0.5767583767645745,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 3.0774020346501914,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 17:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 00:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 10:00:00+00:00",
            "gain_pct": 3.8894749191604205,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.284396005052656,
            "drawdown_pct": -1.5449870310315084,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 20:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 21:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 0.9845611590149872,
            "drawdown_pct": -2.7961578999276204,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 15:00:00+00:00",
            "gain_pct": 3.536744911487972,
            "drawdown_pct": -0.339524295359972,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.0929327295165336,
            "drawdown_pct": -0.7667207773104034,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 08:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 16:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 19:00:00+00:00",
            "gain_pct": 4.867960446782803,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-26 18:00:00+00:00",
            "gain_pct": 11.343609583922358,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-28 14:00:00+00:00",
            "gain_pct": 13.460544829028649,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-02 17:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 19:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 12.335949814802234,
            "drawdown_pct": -0.9911771672884595,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 01:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-04 02:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 17:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 18:00:00+00:00",
            "gain_pct": 14.900564776287908,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 14:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-07 15:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 23.932440376199168,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-09 17:00:00+00:00",
            "gain_pct": 17.64109213116035,
            "drawdown_pct": -5.0764337617667525,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 17.866031402120797,
            "drawdown_pct": -4.894932235388638,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 13:00:00+00:00",
            "gain_pct": 20.980109773073423,
            "drawdown_pct": -2.3822096895404377,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 20.980109773073423,
            "drawdown_pct": -2.3822096895404377,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 23.933458297918847,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 23.933458297918847,
            "drawdown_pct": 0.0,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-04-07 08:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 27.88192192579065,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-08 16:00:00+00:00",
            "gain_pct": 40.928335512792245,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-05-23 11:00:00+00:00",
            "gain_pct": 40.96988773351546,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 39.648652460872626,
            "drawdown_pct": -0.9372464530442493,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 41.35484402219589,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 07:00:00+00:00",
            "gain_pct": 41.35484402219589,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 42.38258917631734,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 16:00:00+00:00",
            "gain_pct": 42.38258917631734,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 49.32664499113167,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 07:00:00+00:00",
            "gain_pct": 45.870408739080176,
            "drawdown_pct": -2.3145475827550777,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 45.870408739080176,
            "drawdown_pct": -2.3145475827550777,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-04 19:00:00+00:00",
            "gain_pct": 52.43884079554644,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-04 20:00:00+00:00",
            "gain_pct": 52.43884079554644,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 09:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-11-21 12:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 22:00:00+00:00",
            "gain_pct": 60.42497524143053,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-12-07 15:00:00+00:00",
            "gain_pct": 62.259302277200874,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-01-21 16:00:00+00:00",
            "gain_pct": 68.02553122312807,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 73.5416806795564,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 19:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 01:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 67.97537835642561,
            "drawdown_pct": -3.2074728683819442,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-03-23 11:00:00+00:00",
            "gain_pct": 109.41680002179069,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p80_cap5",
        "variant": "ridge_a100_H20_c12_p80_cap5",
        "gain_pct": 26.37520151013942,
        "max_drawdown_pct": -0.9650676952589698,
        "capital_score": 24.927599967250963,
        "stability_score": 8.265773064890091,
        "n_trades": 10,
        "skipped_by_capacity": 25,
        "avg_trade_ret_pct": 2.3944375491413483,
        "median_trade_ret_pct": 2.593263075420407,
        "positive_month_rate": 0.6666666666666666,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.986473076094435,
        "top_asset_trade_share": 0.7,
        "long_counts": {
          "XRP": 7,
          "ETH": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 10,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.727272727272727,
        "max_open_trades": 5,
        "avg_exposure": 0.7454545454545454,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-01-31 00:00:00+00:00": 0.0,
          "2026-02-28 00:00:00+00:00": 0.3522657673993308,
          "2026-03-31 00:00:00+00:00": 25.68955792131149
        }
      },
      "selection_score": 452.92596008895896
    },
    {
      "name": "ridge_a100_H20_c12_p90_cap1",
      "variant": {
        "name": "ridge_a100_H20_c12_p90_cap1",
        "threshold": 0.06836575819588102,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 1,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p90_cap1",
        "variant": "ridge_a100_H20_c12_p90_cap1",
        "gain_pct": 444.94136318195547,
        "max_drawdown_pct": -16.936038073764525,
        "capital_score": 419.53730607130865,
        "stability_score": 403.4426914760942,
        "n_trades": 48,
        "skipped_by_capacity": 609,
        "avg_trade_ret_pct": 3.818699442005629,
        "median_trade_ret_pct": 3.920841928990563,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -17.969614595214438,
        "month_gain_concentration": 0.23270959489561727,
        "top_asset_trade_share": 0.6875,
        "long_counts": {
          "SOL": 12,
          "XRP": 33,
          "BTC": 1,
          "ETH": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 48,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 12.576200503258718,
          "2024-10-31 00:00:00+00:00": 9.82267471941104,
          "2024-11-30 00:00:00+00:00": 84.05748696954576,
          "2024-12-31 00:00:00+00:00": 64.14179840258805,
          "2025-01-31 00:00:00+00:00": -17.969614595214438,
          "2025-02-28 00:00:00+00:00": 32.016663650029585,
          "2025-03-31 00:00:00+00:00": 51.972030157762845,
          "2025-04-30 00:00:00+00:00": 34.3377980282649,
          "2025-07-31 00:00:00+00:00": 30.357086779725705,
          "2025-10-31 00:00:00+00:00": 8.432589178171838,
          "2025-11-30 00:00:00+00:00": 19.60460595362713,
          "2026-02-28 00:00:00+00:00": 13.893017434893125
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p90_cap1",
        "variant": "ridge_a100_H20_c12_p90_cap1",
        "gain_pct": 83.04285348001471,
        "max_drawdown_pct": -16.38945729525062,
        "capital_score": 58.45866753713879,
        "stability_score": 53.85045290574661,
        "n_trades": 23,
        "skipped_by_capacity": 175,
        "avg_trade_ret_pct": 2.8479681307131846,
        "median_trade_ret_pct": 3.4378241610595306,
        "positive_month_rate": 0.75,
        "worst_month_pct": -10.15169289226175,
        "month_gain_concentration": 0.37712416096517787,
        "top_asset_trade_share": 0.5652173913043478,
        "long_counts": {
          "XRP": 13,
          "SOL": 8,
          "ETH": 1,
          "BNB": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 23,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -10.15169289226175,
          "2025-02-28 00:00:00+00:00": 10.1901861600184,
          "2025-03-31 00:00:00+00:00": 23.068116167040387,
          "2025-04-30 00:00:00+00:00": 5.008946500563354,
          "2025-07-31 00:00:00+00:00": 14.704922655338521,
          "2025-10-31 00:00:00+00:00": 1.4895896004620965,
          "2025-11-30 00:00:00+00:00": 6.706730768178346,
          "2026-02-28 00:00:00+00:00": -2.134097695449725
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 7.460499837940347,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -3.6229562033479255,
            "drawdown_pct": -10.313981470403611,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -10.15169289226175,
            "drawdown_pct": -16.38945729525062,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -6.6124411997901404,
            "drawdown_pct": -13.095919951008684,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -5.036197497849159,
            "drawdown_pct": -11.629107769492597,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -5.036197497849159,
            "drawdown_pct": -11.629107769492597,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": -3.286351893877722,
            "drawdown_pct": -10.000746086259827,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 0.03849326775664963,
            "drawdown_pct": -6.906729990439953,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 7.378806128667776,
            "drawdown_pct": -0.07602208197037275,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 7.378806128667776,
            "drawdown_pct": -0.07602208197037275,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 13.75119626232788,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 20.627612816502207,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 20.627612816502207,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 15.686411998597308,
            "drawdown_pct": -4.0962435569552476,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 18.77384613832905,
            "drawdown_pct": -1.5367681038280123,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 23.106609434797036,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 23.106609434797036,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 28.11555593536039,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 28.11555593536039,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 28.11555593536039,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 38.59988598261984,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 42.82047859069891,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 41.01520509290967,
            "drawdown_pct": -1.2640158579519056,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 47.76220495953726,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 44.31006819116101,
            "drawdown_pct": -2.3362785966286603,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 51.016798959339354,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 52.59794586011384,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 48.88270126388963,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 48.88270126388963,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 48.88270126388963,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 48.88270126388963,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 48.88270126388963,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 48.88270126388963,
            "drawdown_pct": -2.4346622592351097,
            "open_trades": 1,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p90_cap1",
        "variant": "ridge_a100_H20_c12_p90_cap1",
        "gain_pct": 22.94433935315115,
        "max_drawdown_pct": 0.0,
        "capital_score": 22.94433935315115,
        "stability_score": 9.444339353151152,
        "n_trades": 1,
        "skipped_by_capacity": 15,
        "avg_trade_ret_pct": 22.944339353151154,
        "median_trade_ret_pct": 22.944339353151154,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 1,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.0,
        "max_open_trades": 1,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 304.53730607130865
    },
    {
      "name": "ridge_a100_H20_c12_p90_cap2",
      "variant": {
        "name": "ridge_a100_H20_c12_p90_cap2",
        "threshold": 0.06836575819588102,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 2,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p90_cap2",
        "variant": "ridge_a100_H20_c12_p90_cap2",
        "gain_pct": 379.45212998392606,
        "max_drawdown_pct": -16.586310736452468,
        "capital_score": 354.57266387924733,
        "stability_score": 341.41620036892283,
        "n_trades": 90,
        "skipped_by_capacity": 567,
        "avg_trade_ret_pct": 1.8128455687348568,
        "median_trade_ret_pct": 1.9604209644952815,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.989796843657842,
        "month_gain_concentration": 0.245348521370293,
        "top_asset_trade_share": 0.6888888888888889,
        "long_counts": {
          "SOL": 21,
          "XRP": 62,
          "BTC": 2,
          "ETH": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 90,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9185185185185185,
        "max_open_trades": 2,
        "avg_exposure": 0.9592592592592593,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 8.27903538356287,
          "2024-10-31 00:00:00+00:00": 3.6447553794391467,
          "2024-11-30 00:00:00+00:00": 61.626192877787446,
          "2024-12-31 00:00:00+00:00": 73.80925641174687,
          "2025-01-31 00:00:00+00:00": -14.989796843657842,
          "2025-02-28 00:00:00+00:00": 27.486100670958848,
          "2025-03-31 00:00:00+00:00": 40.489843199495624,
          "2025-04-30 00:00:00+00:00": 21.55705745308194,
          "2025-07-31 00:00:00+00:00": 26.88181214972957,
          "2025-10-31 00:00:00+00:00": 7.367344397972317,
          "2025-11-30 00:00:00+00:00": 17.244223338842687,
          "2026-02-28 00:00:00+00:00": 12.448702088979474
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p90_cap2",
        "variant": "ridge_a100_H20_c12_p90_cap2",
        "gain_pct": 90.11074798780109,
        "max_drawdown_pct": -5.298483050067981,
        "capital_score": 82.16302341269912,
        "stability_score": 79.37730912698483,
        "n_trades": 42,
        "skipped_by_capacity": 156,
        "avg_trade_ret_pct": 1.586208584464465,
        "median_trade_ret_pct": 1.6207468195026653,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.7321213446600723,
        "month_gain_concentration": 0.3803337737203483,
        "top_asset_trade_share": 0.6428571428571429,
        "long_counts": {
          "XRP": 27,
          "SOL": 11,
          "ETH": 2,
          "BNB": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 42,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 1.9245283018867925,
        "max_open_trades": 2,
        "avg_exposure": 0.9622641509433962,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -1.7658797907796213,
          "2025-02-28 00:00:00+00:00": 4.306314827030377,
          "2025-03-31 00:00:00+00:00": 21.866064368551946,
          "2025-04-30 00:00:00+00:00": 5.1133251048824775,
          "2025-07-31 00:00:00+00:00": 15.122086648475545,
          "2025-10-31 00:00:00+00:00": 4.091376920614351,
          "2025-11-30 00:00:00+00:00": 6.992608773530435,
          "2026-02-28 00:00:00+00:00": -2.7321213446600723
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 3.7302499189701734,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.6191094589527921,
            "drawdown_pct": -5.156990735201806,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -1.7658797907796213,
            "drawdown_pct": -5.298483050067981,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 0.1689105653260441,
            "drawdown_pct": -3.4332698093623604,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -1.4396877125614083,
            "drawdown_pct": -4.984021185305276,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": -1.4396877125614083,
            "drawdown_pct": -4.984021185305276,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 0.3847949375443136,
            "drawdown_pct": -3.2251488683765706,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 2.5404350362507557,
            "drawdown_pct": -1.147027876293416,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 10.202343770900953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 10.202343770900953,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 16.83932490884365,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 24.009166599329745,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 24.009166599329745,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 18.98146850263994,
            "drawdown_pct": -4.05429552876051,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 22.17802702498186,
            "drawdown_pct": -1.4766163055221937,
            "open_trades": 1,
            "exposure": 0.5
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 24.4064994048027,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 24.4064994048027,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 29.51982450968518,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 29.51982450968518,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 29.51982450968518,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 40.335920041959696,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 44.641911158160724,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 45.237805870949586,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 52.26996058845356,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 48.733288078775075,
            "drawdown_pct": -2.3226331024260194,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 55.72589685230551,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 56.787794460350796,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 52.99377550764544,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 52.99377550764544,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 52.99377550764544,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 52.99377550764544,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 52.99377550764544,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 52.99377550764544,
            "drawdown_pct": -2.4198433084437587,
            "open_trades": 2,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p90_cap2",
        "variant": "ridge_a100_H20_c12_p90_cap2",
        "gain_pct": 24.260446124032583,
        "max_drawdown_pct": 0.0,
        "capital_score": 24.260446124032583,
        "stability_score": 10.760446124032585,
        "n_trades": 2,
        "skipped_by_capacity": 14,
        "avg_trade_ret_pct": 11.472169676575577,
        "median_trade_ret_pct": 11.472169676575577,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 2
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 2,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.0,
        "max_open_trades": 2,
        "avg_exposure": 1.0,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 339.57266387924733
    },
    {
      "name": "ridge_a100_H20_c12_p90_cap3",
      "variant": {
        "name": "ridge_a100_H20_c12_p90_cap3",
        "threshold": 0.06836575819588102,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 3,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p90_cap3",
        "variant": "ridge_a100_H20_c12_p90_cap3",
        "gain_pct": 359.52826829711336,
        "max_drawdown_pct": -16.215679627577238,
        "capital_score": 335.2047488557475,
        "stability_score": 322.804281877056,
        "n_trades": 130,
        "skipped_by_capacity": 527,
        "avg_trade_ret_pct": 1.2050901818062631,
        "median_trade_ret_pct": 1.3130470702609376,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -14.131236209460695,
        "month_gain_concentration": 0.2612464883448061,
        "top_asset_trade_share": 0.6923076923076923,
        "long_counts": {
          "SOL": 30,
          "XRP": 90,
          "BTC": 3,
          "ETH": 7
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 130,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.7925925925925927,
        "max_open_trades": 3,
        "avg_exposure": 0.9308641975308644,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 11.350100922227426,
          "2024-10-31 00:00:00+00:00": 1.7586318660796394,
          "2024-11-30 00:00:00+00:00": 50.412879330639186,
          "2024-12-31 00:00:00+00:00": 73.8043866593676,
          "2025-01-31 00:00:00+00:00": -14.131236209460695,
          "2025-02-28 00:00:00+00:00": 27.912465573265223,
          "2025-03-31 00:00:00+00:00": 38.052239909680765,
          "2025-04-30 00:00:00+00:00": 17.839195898717094,
          "2025-07-31 00:00:00+00:00": 25.81477075563896,
          "2025-10-31 00:00:00+00:00": 7.04235376210471,
          "2025-11-30 00:00:00+00:00": 16.521421950838203,
          "2026-02-28 00:00:00+00:00": 12.000180097772159
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p90_cap3",
        "variant": "ridge_a100_H20_c12_p90_cap3",
        "gain_pct": 88.58480815791381,
        "max_drawdown_pct": -4.039919775623857,
        "capital_score": 82.52492849447803,
        "stability_score": 80.0775600734254,
        "n_trades": 57,
        "skipped_by_capacity": 141,
        "avg_trade_ret_pct": 1.1393836346442694,
        "median_trade_ret_pct": 1.1459413870198436,
        "positive_month_rate": 0.875,
        "worst_month_pct": -1.788866135461177,
        "month_gain_concentration": 0.4170873249509408,
        "top_asset_trade_share": 0.631578947368421,
        "long_counts": {
          "XRP": 36,
          "SOL": 15,
          "ETH": 3,
          "BNB": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 57,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.660377358490566,
        "max_open_trades": 3,
        "avg_exposure": 0.8867924528301887,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": 1.4757913255255914,
          "2025-02-28 00:00:00+00:00": 3.8684270084947627,
          "2025-03-31 00:00:00+00:00": 22.091640571594965,
          "2025-04-30 00:00:00+00:00": 5.023567618232548,
          "2025-07-31 00:00:00+00:00": 10.355736287078713,
          "2025-10-31 00:00:00+00:00": 3.256970058898929,
          "2025-11-30 00:00:00+00:00": 6.894330626022651,
          "2026-02-28 00:00:00+00:00": -1.788866135461177
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 2.4868332793134442,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -1.0366577186971568,
            "drawdown_pct": -3.4379938234678664,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": 1.4757913255255914,
            "drawdown_pct": -0.9865091167685858,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": 2.808216230549519,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": 2.284495761659329,
            "drawdown_pct": -0.5094149943383308,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.284495761659329,
            "drawdown_pct": -0.5094149943383308,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.85905898865353,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 5.344218334020354,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 13.474572510735015,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 13.474572510735015,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 20.342806464533098,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 27.76527191665089,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 27.76527191665089,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 22.603657430110516,
            "drawdown_pct": -4.039919775623857,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 25.90489307628806,
            "drawdown_pct": -1.4560911681669397,
            "open_trades": 1,
            "exposure": 0.3333333333333333
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 27.43585890561532,
            "drawdown_pct": -0.2578267209030538,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 27.43585890561532,
            "drawdown_pct": -0.2578267209030538,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 32.45942652384787,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 32.45942652384787,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 32.45942652384787,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 39.959413994894675,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 42.81516281092658,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 42.60611907069736,
            "drawdown_pct": -0.14637363156317917,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 49.5386355847084,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 46.07213286982551,
            "drawdown_pct": -2.3181318335081635,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 52.96646349584816,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 53.66157040929835,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.6666666666666666
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 51.17759736038698,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 51.17759736038698,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 51.17759736038698,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 51.17759736038698,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 51.17759736038698,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 51.17759736038698,
            "drawdown_pct": -1.6165219724716962,
            "open_trades": 3,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p90_cap3",
        "variant": "ridge_a100_H20_c12_p90_cap3",
        "gain_pct": 25.78131183048275,
        "max_drawdown_pct": 0.0,
        "capital_score": 25.78131183048275,
        "stability_score": 12.281311830482752,
        "n_trades": 3,
        "skipped_by_capacity": 13,
        "avg_trade_ret_pct": 7.946529999650227,
        "median_trade_ret_pct": 7.648113117717051,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 1.0,
        "long_counts": {
          "XRP": 3
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 3,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 2.8,
        "max_open_trades": 3,
        "avg_exposure": 0.9333333333333332,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 320.2047488557475
    },
    {
      "name": "ridge_a100_H20_c12_p90_cap5",
      "variant": {
        "name": "ridge_a100_H20_c12_p90_cap5",
        "threshold": 0.06836575819588102,
        "pred_percentile": 90,
        "horizon": 20,
        "cost_bps": 12,
        "cap": 5,
        "delay_bars": 1
      },
      "model_diag": {
        "alpha": 100.0,
        "ykey": "y_H20_c12",
        "n_train": 12794,
        "target_mean": 0.014520496257193136
      },
      "val": {
        "label": "Validation ridge_a100_H20_c12_p90_cap5",
        "variant": "ridge_a100_H20_c12_p90_cap5",
        "gain_pct": 324.65218646461943,
        "max_drawdown_pct": -15.969209134044737,
        "capital_score": 300.69837276355236,
        "stability_score": 289.86050080058686,
        "n_trades": 202,
        "skipped_by_capacity": 455,
        "avg_trade_ret_pct": 0.7279519774779906,
        "median_trade_ret_pct": 0.7878282421565627,
        "positive_month_rate": 0.8461538461538461,
        "worst_month_pct": -12.694307606529833,
        "month_gain_concentration": 0.29424668166235646,
        "top_asset_trade_share": 0.6881188118811881,
        "long_counts": {
          "SOL": 49,
          "BNB": 1,
          "XRP": 139,
          "BTC": 3,
          "ETH": 10
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 202,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.392592592592592,
        "max_open_trades": 5,
        "avg_exposure": 0.8785185185185186,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2024-07-31 00:00:00+00:00": 0.0,
          "2024-08-31 00:00:00+00:00": 13.30719834418207,
          "2024-10-31 00:00:00+00:00": 0.6289302925886631,
          "2024-11-30 00:00:00+00:00": 37.786803412494734,
          "2024-12-31 00:00:00+00:00": 73.13588521645181,
          "2025-01-31 00:00:00+00:00": -12.694307606529833,
          "2025-02-28 00:00:00+00:00": 28.745374646668324,
          "2025-03-31 00:00:00+00:00": 35.260741069826565,
          "2025-04-30 00:00:00+00:00": 12.156925601096418,
          "2025-07-31 00:00:00+00:00": 22.943319574020165,
          "2025-10-31 00:00:00+00:00": 6.595798571145792,
          "2025-11-30 00:00:00+00:00": 15.502484572173046,
          "2026-02-28 00:00:00+00:00": 2.4895038620118157
        }
      },
      "test": {
        "label": "Test ridge_a100_H20_c12_p90_cap5",
        "variant": "ridge_a100_H20_c12_p90_cap5",
        "gain_pct": 69.33943787985095,
        "max_drawdown_pct": -4.028514850031728,
        "capital_score": 63.29666560480336,
        "stability_score": 61.362930665044324,
        "n_trades": 83,
        "skipped_by_capacity": 115,
        "avg_trade_ret_pct": 0.647226779646837,
        "median_trade_ret_pct": 0.6090326233902261,
        "positive_month_rate": 0.75,
        "worst_month_pct": -2.022474859653528,
        "month_gain_concentration": 0.3420566546714182,
        "top_asset_trade_share": 0.6144578313253012,
        "long_counts": {
          "XRP": 51,
          "SOL": 23,
          "ETH": 4,
          "BNB": 5
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 83,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 3.9245283018867925,
        "max_open_trades": 5,
        "avg_exposure": 0.7849056603773585,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2025-01-31 00:00:00+00:00": -2.022474859653528,
          "2025-02-28 00:00:00+00:00": 6.466199218646452,
          "2025-03-31 00:00:00+00:00": 13.096930015466882,
          "2025-04-30 00:00:00+00:00": 2.7657890631763706,
          "2025-07-31 00:00:00+00:00": 5.772217073049333,
          "2025-10-31 00:00:00+00:00": 4.027568739453287,
          "2025-11-30 00:00:00+00:00": 6.1600700935567545,
          "2026-02-28 00:00:00+00:00": -0.9560158532564742
        },
        "curve": [
          {
            "t": "2025-01-15 13:00:00+00:00",
            "gain_pct": 0.0,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 09:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-01-19 23:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-01-20 02:00:00+00:00",
            "gain_pct": 1.492099967588075,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 06:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-01-20 07:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-01-20 08:00:00+00:00",
            "gain_pct": -0.6014753093280376,
            "drawdown_pct": -2.0627962940807265,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-01-29 19:00:00+00:00",
            "gain_pct": -2.022474859653528,
            "drawdown_pct": -3.4629048254632644,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-02-02 18:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 4,
            "exposure": 0.8
          },
          {
            "t": "2025-02-03 01:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 03:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 05:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 06:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 08:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 09:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 14:00:00+00:00",
            "gain_pct": -1.2505802456318378,
            "drawdown_pct": -2.702358325520704,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-03 15:00:00+00:00",
            "gain_pct": -2.5054924496046596,
            "drawdown_pct": -3.938821266354109,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-04 07:00:00+00:00",
            "gain_pct": 2.6101344065844074,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-02-10 01:00:00+00:00",
            "gain_pct": 3.556028490986108,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 07:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-02-25 10:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 11:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-02-25 15:00:00+00:00",
            "gain_pct": 4.443724358992924,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-02 15:00:00+00:00",
            "gain_pct": 11.896934213463453,
            "drawdown_pct": 0.0,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-03-03 08:00:00+00:00",
            "gain_pct": 11.896934213463453,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 14:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 15:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-04 16:00:00+00:00",
            "gain_pct": 10.51085987872483,
            "drawdown_pct": -1.2387062652623126,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-07 16:00:00+00:00",
            "gain_pct": 18.45776746702417,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-07 17:00:00+00:00",
            "gain_pct": 18.45776746702417,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 14:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-10 18:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 00:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 01:00:00+00:00",
            "gain_pct": 13.685678713599046,
            "drawdown_pct": -4.028514850031728,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-03-11 15:00:00+00:00",
            "gain_pct": 16.68931011577348,
            "drawdown_pct": -1.492901131825719,
            "open_trades": 1,
            "exposure": 0.2
          },
          {
            "t": "2025-03-12 13:00:00+00:00",
            "gain_pct": 17.540654374459805,
            "drawdown_pct": -0.7742110223541654,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-03-12 15:00:00+00:00",
            "gain_pct": 17.540654374459805,
            "drawdown_pct": -0.7742110223541654,
            "open_trades": 3,
            "exposure": 0.6
          },
          {
            "t": "2025-04-07 10:00:00+00:00",
            "gain_pct": 20.306443437636176,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-04-07 13:00:00+00:00",
            "gain_pct": 20.306443437636176,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-04-07 15:00:00+00:00",
            "gain_pct": 20.306443437636176,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-07-15 14:00:00+00:00",
            "gain_pct": 24.556856655187673,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2025-07-24 06:00:00+00:00",
            "gain_pct": 26.07866051068551,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-12 14:00:00+00:00",
            "gain_pct": 26.995337496708288,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-14 15:00:00+00:00",
            "gain_pct": 33.18895089354214,
            "drawdown_pct": 0.0,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-10-17 09:00:00+00:00",
            "gain_pct": 30.106229250138796,
            "drawdown_pct": -2.3145475827550888,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2025-11-21 15:00:00+00:00",
            "gain_pct": 36.26629934369555,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-03 19:00:00+00:00",
            "gain_pct": 36.637710473943486,
            "drawdown_pct": 0.0,
            "open_trades": 2,
            "exposure": 0.4
          },
          {
            "t": "2026-02-05 20:00:00+00:00",
            "gain_pct": 35.310283490439076,
            "drawdown_pct": -0.9714938715674304,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 21:00:00+00:00",
            "gain_pct": 35.310283490439076,
            "drawdown_pct": -0.9714938715674304,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 22:00:00+00:00",
            "gain_pct": 35.310283490439076,
            "drawdown_pct": -0.9714938715674304,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-05 23:00:00+00:00",
            "gain_pct": 35.310283490439076,
            "drawdown_pct": -0.9714938715674304,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 02:00:00+00:00",
            "gain_pct": 35.310283490439076,
            "drawdown_pct": -0.9714938715674304,
            "open_trades": 5,
            "exposure": 1.0
          },
          {
            "t": "2026-02-06 14:00:00+00:00",
            "gain_pct": 35.310283490439076,
            "drawdown_pct": -0.9714938715674304,
            "open_trades": 5,
            "exposure": 1.0
          }
        ]
      },
      "recent": {
        "label": "Recent ridge_a100_H20_c12_p90_cap5",
        "variant": "ridge_a100_H20_c12_p90_cap5",
        "gain_pct": 23.920587907763377,
        "max_drawdown_pct": 0.0,
        "capital_score": 23.920587907763377,
        "stability_score": 16.420587907763377,
        "n_trades": 5,
        "skipped_by_capacity": 11,
        "avg_trade_ret_pct": 4.387287740818259,
        "median_trade_ret_pct": 4.588867870630231,
        "positive_month_rate": 0.0,
        "worst_month_pct": 0.0,
        "month_gain_concentration": 0.0,
        "top_asset_trade_share": 0.8,
        "long_counts": {
          "XRP": 4,
          "ETH": 1
        },
        "cost_bps_roundtrip": 12.0,
        "delay_bars": 1,
        "horizon_bars": 20,
        "avg_bars_held": 21.0,
        "timeouts": 5,
        "tp_hits": 0,
        "hit_rate": 0.0,
        "avg_open_trades": 4.2,
        "max_open_trades": 5,
        "avg_exposure": 0.8400000000000001,
        "max_exposure": 1.0,
        "monthly_gain_pct": {
          "2026-02-28 00:00:00+00:00": 0.0
        }
      },
      "selection_score": 285.69837276355236
    }
  ],
  "selected": {
    "name": "ridge_a1_H10_c8_p70_cap2",
    "variant": {
      "name": "ridge_a1_H10_c8_p70_cap2",
      "threshold": 0.033558452906995294,
      "pred_percentile": 70,
      "horizon": 10,
      "cost_bps": 8,
      "cap": 2,
      "delay_bars": 1
    },
    "model_diag": {
      "alpha": 1.0,
      "ykey": "y_H10_c8",
      "n_train": 12794,
      "target_mean": 0.008213253534827653
    },
    "val": {
      "label": "Validation ridge_a1_H10_c8_p70_cap2",
      "variant": "ridge_a1_H10_c8_p70_cap2",
      "gain_pct": 2192.8121201541094,
      "max_drawdown_pct": -11.451495366599474,
      "capital_score": 2175.6348771042103,
      "stability_score": 2149.2484739799597,
      "n_trades": 188,
      "skipped_by_capacity": 1783,
      "avg_trade_ret_pct": 1.7054948693501295,
      "median_trade_ret_pct": 1.4564806098937189,
      "positive_month_rate": 0.7058823529411765,
      "worst_month_pct": -30.854488230633706,
      "month_gain_concentration": 0.17560926953373907,
      "top_asset_trade_share": 0.601063829787234,
      "long_counts": {
        "SOL": 54,
        "XRP": 113,
        "BTC": 4,
        "ETH": 14,
        "BNB": 3
      },
      "cost_bps_roundtrip": 8.0,
      "delay_bars": 1,
      "horizon_bars": 10,
      "avg_bars_held": 11.0,
      "timeouts": 188,
      "tp_hits": 0,
      "hit_rate": 0.0,
      "avg_open_trades": 1.942084942084942,
      "max_open_trades": 2,
      "avg_exposure": 0.971042471042471,
      "max_exposure": 1.0,
      "monthly_gain_pct": {
        "2024-07-31 00:00:00+00:00": 0.0,
        "2024-08-31 00:00:00+00:00": 46.034968679605015,
        "2024-10-31 00:00:00+00:00": 5.171122962568944,
        "2024-11-30 00:00:00+00:00": 127.32515614649057,
        "2024-12-31 00:00:00+00:00": 266.9496997522311,
        "2025-01-31 00:00:00+00:00": 163.93300397148528,
        "2025-02-28 00:00:00+00:00": 338.3250739701341,
        "2025-03-31 00:00:00+00:00": 245.78281153172497,
        "2025-04-30 00:00:00+00:00": 385.0005130211441,
        "2025-05-31 00:00:00+00:00": 49.12003240680042,
        "2025-07-31 00:00:00+00:00": -4.0555618506582505,
        "2025-08-31 00:00:00+00:00": 103.07614200683338,
        "2025-10-31 00:00:00+00:00": -7.2855723655891325,
        "2025-11-30 00:00:00+00:00": 186.11367582389948,
        "2026-01-31 00:00:00+00:00": -11.321493390524893,
        "2026-02-28 00:00:00+00:00": 275.53790663180735,
        "2026-03-31 00:00:00+00:00": -30.854488230633706
      }
    },
    "test": {
      "label": "Test ridge_a1_H10_c8_p70_cap2",
      "variant": "ridge_a1_H10_c8_p70_cap2",
      "gain_pct": 199.21305509848702,
      "max_drawdown_pct": -7.8485607421914345,
      "capital_score": 187.44021398519988,
      "stability_score": 187.44021398519988,
      "n_trades": 102,
      "skipped_by_capacity": 600,
      "avg_trade_ret_pct": 1.097484338236863,
      "median_trade_ret_pct": 1.167014354538602,
      "positive_month_rate": 1.0,
      "worst_month_pct": 0.7091586366762215,
      "month_gain_concentration": 0.1956230964274636,
      "top_asset_trade_share": 0.4803921568627451,
      "long_counts": {
        "XRP": 49,
        "SOL": 32,
        "ETH": 13,
        "BNB": 6,
        "BTC": 2
      },
      "cost_bps_roundtrip": 8.0,
      "delay_bars": 1,
      "horizon_bars": 10,
      "avg_bars_held": 11.0,
      "timeouts": 102,
      "tp_hits": 0,
      "hit_rate": 0.0,
      "avg_open_trades": 1.9024390243902438,
      "max_open_trades": 2,
      "avg_exposure": 0.9512195121951219,
      "max_exposure": 1.0,
      "monthly_gain_pct": {
        "2025-01-31 00:00:00+00:00": 24.98752086600659,
        "2025-02-28 00:00:00+00:00": 38.0058356403223,
        "2025-03-31 00:00:00+00:00": 26.908060381037956,
        "2025-04-30 00:00:00+00:00": 13.579741154644381,
        "2025-05-31 00:00:00+00:00": 4.247370743156523,
        "2025-07-31 00:00:00+00:00": 4.594850830810202,
        "2025-08-31 00:00:00+00:00": 7.306160538964036,
        "2025-10-31 00:00:00+00:00": 13.705657409743026,
        "2025-11-30 00:00:00+00:00": 16.744085479201516,
        "2025-12-31 00:00:00+00:00": 0.7091586366762215,
        "2026-01-31 00:00:00+00:00": 5.855605344521393,
        "2026-02-28 00:00:00+00:00": 31.49007165647015,
        "2026-03-31 00:00:00+00:00": 6.146803839344159
      },
      "curve": [
        {
          "t": "2025-01-08 18:00:00+00:00",
          "gain_pct": 0.0,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-01-15 13:00:00+00:00",
          "gain_pct": 1.2567547412292157,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-18 06:00:00+00:00",
          "gain_pct": 8.733743148200091,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-01-19 09:00:00+00:00",
          "gain_pct": 10.40769440424944,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-19 10:00:00+00:00",
          "gain_pct": 10.40769440424944,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-19 12:00:00+00:00",
          "gain_pct": 10.40769440424944,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-19 14:00:00+00:00",
          "gain_pct": 10.40769440424944,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-19 23:00:00+00:00",
          "gain_pct": 12.831424808443458,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-01-20 01:00:00+00:00",
          "gain_pct": 12.831424808443458,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-20 02:00:00+00:00",
          "gain_pct": 12.831424808443458,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-20 03:00:00+00:00",
          "gain_pct": 12.831424808443458,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-20 06:00:00+00:00",
          "gain_pct": 12.831424808443458,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-20 07:00:00+00:00",
          "gain_pct": 12.831424808443458,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-20 08:00:00+00:00",
          "gain_pct": 12.831424808443458,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-01-23 14:00:00+00:00",
          "gain_pct": 22.880797632769543,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-01-27 14:00:00+00:00",
          "gain_pct": 23.211001658254432,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-01-29 19:00:00+00:00",
          "gain_pct": 24.98752086600659,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-02-02 17:00:00+00:00",
          "gain_pct": 27.270781862757403,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-02-02 18:00:00+00:00",
          "gain_pct": 27.270781862757403,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 00:00:00+00:00",
          "gain_pct": 27.270781862757403,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 01:00:00+00:00",
          "gain_pct": 27.270781862757403,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 03:00:00+00:00",
          "gain_pct": 27.270781862757403,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 05:00:00+00:00",
          "gain_pct": 17.629480520015136,
          "drawdown_pct": -7.575423990982455,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 06:00:00+00:00",
          "gain_pct": 17.629480520015136,
          "drawdown_pct": -7.575423990982455,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 08:00:00+00:00",
          "gain_pct": 17.629480520015136,
          "drawdown_pct": -7.575423990982455,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 09:00:00+00:00",
          "gain_pct": 17.629480520015136,
          "drawdown_pct": -7.575423990982455,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 10:00:00+00:00",
          "gain_pct": 17.629480520015136,
          "drawdown_pct": -7.575423990982455,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 14:00:00+00:00",
          "gain_pct": 17.629480520015136,
          "drawdown_pct": -7.575423990982455,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 15:00:00+00:00",
          "gain_pct": 17.629480520015136,
          "drawdown_pct": -7.575423990982455,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 19:00:00+00:00",
          "gain_pct": 28.65712507738732,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 20:00:00+00:00",
          "gain_pct": 28.65712507738732,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-03 21:00:00+00:00",
          "gain_pct": 28.65712507738732,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-04 07:00:00+00:00",
          "gain_pct": 25.452478971215328,
          "drawdown_pct": -2.490842309933783,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-04 15:00:00+00:00",
          "gain_pct": 25.452478971215328,
          "drawdown_pct": -2.490842309933783,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-10 01:00:00+00:00",
          "gain_pct": 30.41348109320225,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-10 03:00:00+00:00",
          "gain_pct": 30.41348109320225,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-18 16:00:00+00:00",
          "gain_pct": 34.6497418978542,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-25 07:00:00+00:00",
          "gain_pct": 39.522064124718696,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-25 08:00:00+00:00",
          "gain_pct": 39.522064124718696,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-25 10:00:00+00:00",
          "gain_pct": 39.522064124718696,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-25 11:00:00+00:00",
          "gain_pct": 39.522064124718696,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-25 15:00:00+00:00",
          "gain_pct": 39.522064124718696,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-25 16:00:00+00:00",
          "gain_pct": 39.522064124718696,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-25 19:00:00+00:00",
          "gain_pct": 44.1155395253993,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-26 17:00:00+00:00",
          "gain_pct": 45.1765212904553,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-02-26 18:00:00+00:00",
          "gain_pct": 45.1765212904553,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-28 03:00:00+00:00",
          "gain_pct": 51.12627433518304,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-02-28 14:00:00+00:00",
          "gain_pct": 62.993356506328894,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-02 15:00:00+00:00",
          "gain_pct": 64.72279259024478,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-02 16:00:00+00:00",
          "gain_pct": 64.72279259024478,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-02 17:00:00+00:00",
          "gain_pct": 64.72279259024478,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-02 19:00:00+00:00",
          "gain_pct": 64.72279259024478,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-03 06:00:00+00:00",
          "gain_pct": 81.90671213350555,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-03 08:00:00+00:00",
          "gain_pct": 81.90671213350555,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-04 01:00:00+00:00",
          "gain_pct": 77.76171072190951,
          "drawdown_pct": -2.2786412678130974,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-04 02:00:00+00:00",
          "gain_pct": 77.76171072190951,
          "drawdown_pct": -2.2786412678130974,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-04 05:00:00+00:00",
          "gain_pct": 77.76171072190951,
          "drawdown_pct": -2.2786412678130974,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-04 14:00:00+00:00",
          "gain_pct": 83.68224003163687,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-04 15:00:00+00:00",
          "gain_pct": 83.68224003163687,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-04 16:00:00+00:00",
          "gain_pct": 83.68224003163687,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-04 17:00:00+00:00",
          "gain_pct": 83.68224003163687,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-04 18:00:00+00:00",
          "gain_pct": 83.68224003163687,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-07 14:00:00+00:00",
          "gain_pct": 89.76676917433889,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-07 15:00:00+00:00",
          "gain_pct": 89.76676917433889,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-07 16:00:00+00:00",
          "gain_pct": 89.76676917433889,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-07 17:00:00+00:00",
          "gain_pct": 89.76676917433889,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-09 16:00:00+00:00",
          "gain_pct": 82.5392358260251,
          "drawdown_pct": -3.808640142718478,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-03-09 17:00:00+00:00",
          "gain_pct": 82.5392358260251,
          "drawdown_pct": -3.808640142718478,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-10 14:00:00+00:00",
          "gain_pct": 87.3107084754823,
          "drawdown_pct": -1.2942522600467576,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-10 18:00:00+00:00",
          "gain_pct": 87.3107084754823,
          "drawdown_pct": -1.2942522600467576,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-11 00:00:00+00:00",
          "gain_pct": 87.3107084754823,
          "drawdown_pct": -1.2942522600467576,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-11 01:00:00+00:00",
          "gain_pct": 74.8728090271967,
          "drawdown_pct": -7.8485607421914345,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-11 13:00:00+00:00",
          "gain_pct": 85.7936460402234,
          "drawdown_pct": -2.0936875046154046,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-11 15:00:00+00:00",
          "gain_pct": 85.7936460402234,
          "drawdown_pct": -2.0936875046154046,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-12 13:00:00+00:00",
          "gain_pct": 89.90141688736685,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-03-12 15:00:00+00:00",
          "gain_pct": 89.90141688736685,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-07 06:00:00+00:00",
          "gain_pct": 94.22450361957024,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-07 08:00:00+00:00",
          "gain_pct": 94.22450361957024,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-07 10:00:00+00:00",
          "gain_pct": 94.22450361957024,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-07 13:00:00+00:00",
          "gain_pct": 94.22450361957024,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-07 15:00:00+00:00",
          "gain_pct": 94.22450361957024,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-08 16:00:00+00:00",
          "gain_pct": 100.88366575565772,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-04-09 01:00:00+00:00",
          "gain_pct": 100.88366575565772,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-09 17:00:00+00:00",
          "gain_pct": 100.2757282732604,
          "drawdown_pct": -0.3026316152238917,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-10 15:00:00+00:00",
          "gain_pct": 97.39053991434176,
          "drawdown_pct": -1.7388799772126706,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-04-22 21:00:00+00:00",
          "gain_pct": 103.48115804201123,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-05-23 11:00:00+00:00",
          "gain_pct": 107.72852878516775,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-07-15 14:00:00+00:00",
          "gain_pct": 106.75440695098285,
          "drawdown_pct": -0.4689398417645041,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-07-24 06:00:00+00:00",
          "gain_pct": 112.32337961597796,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-07-24 07:00:00+00:00",
          "gain_pct": 112.32337961597796,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-08-14 12:00:00+00:00",
          "gain_pct": 121.39204497271987,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-08-24 19:00:00+00:00",
          "gain_pct": 119.62954015494199,
          "drawdown_pct": -0.7961012411241142,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-10-10 22:00:00+00:00",
          "gain_pct": 118.21330720575406,
          "drawdown_pct": -1.4357958378122815,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-10-11 05:00:00+00:00",
          "gain_pct": 118.21330720575406,
          "drawdown_pct": -1.4357958378122815,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-10-12 14:00:00+00:00",
          "gain_pct": 115.70290961668036,
          "drawdown_pct": -2.569710829827032,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-10-12 16:00:00+00:00",
          "gain_pct": 115.70290961668036,
          "drawdown_pct": -2.569710829827032,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-10-14 15:00:00+00:00",
          "gain_pct": 128.13295612162094,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-10-17 07:00:00+00:00",
          "gain_pct": 126.90600700085827,
          "drawdown_pct": -0.5378219533124229,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-10-17 09:00:00+00:00",
          "gain_pct": 126.90600700085827,
          "drawdown_pct": -0.5378219533124229,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-10-19 09:00:00+00:00",
          "gain_pct": 133.33519756468502,
          "drawdown_pct": 0.0,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2025-11-04 19:00:00+00:00",
          "gain_pct": 135.8948909473658,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-11-04 20:00:00+00:00",
          "gain_pct": 135.8948909473658,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-11-04 21:00:00+00:00",
          "gain_pct": 135.8948909473658,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-11-21 09:00:00+00:00",
          "gain_pct": 143.77320854904585,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-11-21 12:00:00+00:00",
          "gain_pct": 143.77320854904585,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-11-21 15:00:00+00:00",
          "gain_pct": 143.77320854904585,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-11-21 22:00:00+00:00",
          "gain_pct": 150.07928304388653,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2025-12-07 15:00:00+00:00",
          "gain_pct": 150.78844168056276,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-01-21 16:00:00+00:00",
          "gain_pct": 156.64404702508415,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-03 19:00:00+00:00",
          "gain_pct": 165.64059535372104,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-05 19:00:00+00:00",
          "gain_pct": 166.45222975976657,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-05 20:00:00+00:00",
          "gain_pct": 166.45222975976657,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-05 21:00:00+00:00",
          "gain_pct": 166.45222975976657,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-05 22:00:00+00:00",
          "gain_pct": 166.45222975976657,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-05 23:00:00+00:00",
          "gain_pct": 166.45222975976657,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-06 01:00:00+00:00",
          "gain_pct": 166.45222975976657,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-06 02:00:00+00:00",
          "gain_pct": 166.45222975976657,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-06 05:00:00+00:00",
          "gain_pct": 166.45222975976657,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-06 14:00:00+00:00",
          "gain_pct": 192.10500502789978,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-06 16:00:00+00:00",
          "gain_pct": 192.10500502789978,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-02-28 06:00:00+00:00",
          "gain_pct": 188.1341186815543,
          "drawdown_pct": -1.3594037342722687,
          "open_trades": 1,
          "exposure": 0.5
        },
        {
          "t": "2026-02-28 07:00:00+00:00",
          "gain_pct": 188.1341186815543,
          "drawdown_pct": -1.3594037342722687,
          "open_trades": 2,
          "exposure": 1.0
        },
        {
          "t": "2026-03-23 11:00:00+00:00",
          "gain_pct": 194.28092252089846,
          "drawdown_pct": 0.0,
          "open_trades": 2,
          "exposure": 1.0
        }
      ]
    },
    "recent": {
      "label": "Recent ridge_a1_H10_c8_p70_cap2",
      "variant": "ridge_a1_H10_c8_p70_cap2",
      "gain_pct": 19.62869008732119,
      "max_drawdown_pct": -1.3594037342722909,
      "capital_score": 17.589584485912752,
      "stability_score": 4.455153817504029,
      "n_trades": 11,
      "skipped_by_capacity": 46,
      "avg_trade_ret_pct": 1.6563612066068303,
      "median_trade_ret_pct": 1.3722558108335237,
      "positive_month_rate": 0.6666666666666666,
      "worst_month_pct": 0.0,
      "month_gain_concentration": 0.9217408630999854,
      "top_asset_trade_share": 0.6363636363636364,
      "long_counts": {
        "XRP": 7,
        "ETH": 3,
        "SOL": 1
      },
      "cost_bps_roundtrip": 8.0,
      "delay_bars": 1,
      "horizon_bars": 10,
      "avg_bars_held": 11.0,
      "timeouts": 11,
      "tp_hits": 0,
      "hit_rate": 0.0,
      "avg_open_trades": 1.9230769230769231,
      "max_open_trades": 2,
      "avg_exposure": 0.9615384615384616,
      "max_exposure": 1.0,
      "monthly_gain_pct": {
        "2026-01-31 00:00:00+00:00": 0.0,
        "2026-02-28 00:00:00+00:00": 15.497546089767269,
        "2026-03-31 00:00:00+00:00": 1.3157977796215192
      }
    },
    "selection_score": 2175.6348771042103
  },
  "val_metrics": {
    "label": "Validation ridge_a1_H10_c8_p70_cap2",
    "variant": "ridge_a1_H10_c8_p70_cap2",
    "gain_pct": 2192.8121201541094,
    "max_drawdown_pct": -11.451495366599474,
    "capital_score": 2175.6348771042103,
    "stability_score": 2149.2484739799597,
    "n_trades": 188,
    "skipped_by_capacity": 1783,
    "avg_trade_ret_pct": 1.7054948693501295,
    "median_trade_ret_pct": 1.4564806098937189,
    "positive_month_rate": 0.7058823529411765,
    "worst_month_pct": -30.854488230633706,
    "month_gain_concentration": 0.17560926953373907,
    "top_asset_trade_share": 0.601063829787234,
    "long_counts": {
      "SOL": 54,
      "XRP": 113,
      "BTC": 4,
      "ETH": 14,
      "BNB": 3
    },
    "cost_bps_roundtrip": 8.0,
    "delay_bars": 1,
    "horizon_bars": 10,
    "avg_bars_held": 11.0,
    "timeouts": 188,
    "tp_hits": 0,
    "hit_rate": 0.0,
    "avg_open_trades": 1.942084942084942,
    "max_open_trades": 2,
    "avg_exposure": 0.971042471042471,
    "max_exposure": 1.0,
    "monthly_gain_pct": {
      "2024-07-31 00:00:00+00:00": 0.0,
      "2024-08-31 00:00:00+00:00": 46.034968679605015,
      "2024-10-31 00:00:00+00:00": 5.171122962568944,
      "2024-11-30 00:00:00+00:00": 127.32515614649057,
      "2024-12-31 00:00:00+00:00": 266.9496997522311,
      "2025-01-31 00:00:00+00:00": 163.93300397148528,
      "2025-02-28 00:00:00+00:00": 338.3250739701341,
      "2025-03-31 00:00:00+00:00": 245.78281153172497,
      "2025-04-30 00:00:00+00:00": 385.0005130211441,
      "2025-05-31 00:00:00+00:00": 49.12003240680042,
      "2025-07-31 00:00:00+00:00": -4.0555618506582505,
      "2025-08-31 00:00:00+00:00": 103.07614200683338,
      "2025-10-31 00:00:00+00:00": -7.2855723655891325,
      "2025-11-30 00:00:00+00:00": 186.11367582389948,
      "2026-01-31 00:00:00+00:00": -11.321493390524893,
      "2026-02-28 00:00:00+00:00": 275.53790663180735,
      "2026-03-31 00:00:00+00:00": -30.854488230633706
    }
  },
  "test_metrics": {
    "label": "Test ridge_a1_H10_c8_p70_cap2",
    "variant": "ridge_a1_H10_c8_p70_cap2",
    "gain_pct": 199.21305509848702,
    "max_drawdown_pct": -7.8485607421914345,
    "capital_score": 187.44021398519988,
    "stability_score": 187.44021398519988,
    "n_trades": 102,
    "skipped_by_capacity": 600,
    "avg_trade_ret_pct": 1.097484338236863,
    "median_trade_ret_pct": 1.167014354538602,
    "positive_month_rate": 1.0,
    "worst_month_pct": 0.7091586366762215,
    "month_gain_concentration": 0.1956230964274636,
    "top_asset_trade_share": 0.4803921568627451,
    "long_counts": {
      "XRP": 49,
      "SOL": 32,
      "ETH": 13,
      "BNB": 6,
      "BTC": 2
    },
    "cost_bps_roundtrip": 8.0,
    "delay_bars": 1,
    "horizon_bars": 10,
    "avg_bars_held": 11.0,
    "timeouts": 102,
    "tp_hits": 0,
    "hit_rate": 0.0,
    "avg_open_trades": 1.9024390243902438,
    "max_open_trades": 2,
    "avg_exposure": 0.9512195121951219,
    "max_exposure": 1.0,
    "monthly_gain_pct": {
      "2025-01-31 00:00:00+00:00": 24.98752086600659,
      "2025-02-28 00:00:00+00:00": 38.0058356403223,
      "2025-03-31 00:00:00+00:00": 26.908060381037956,
      "2025-04-30 00:00:00+00:00": 13.579741154644381,
      "2025-05-31 00:00:00+00:00": 4.247370743156523,
      "2025-07-31 00:00:00+00:00": 4.594850830810202,
      "2025-08-31 00:00:00+00:00": 7.306160538964036,
      "2025-10-31 00:00:00+00:00": 13.705657409743026,
      "2025-11-30 00:00:00+00:00": 16.744085479201516,
      "2025-12-31 00:00:00+00:00": 0.7091586366762215,
      "2026-01-31 00:00:00+00:00": 5.855605344521393,
      "2026-02-28 00:00:00+00:00": 31.49007165647015,
      "2026-03-31 00:00:00+00:00": 6.146803839344159
    },
    "curve": [
      {
        "t": "2025-01-08 18:00:00+00:00",
        "gain_pct": 0.0,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-01-15 13:00:00+00:00",
        "gain_pct": 1.2567547412292157,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-18 06:00:00+00:00",
        "gain_pct": 8.733743148200091,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-01-19 09:00:00+00:00",
        "gain_pct": 10.40769440424944,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-19 10:00:00+00:00",
        "gain_pct": 10.40769440424944,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-19 12:00:00+00:00",
        "gain_pct": 10.40769440424944,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-19 14:00:00+00:00",
        "gain_pct": 10.40769440424944,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-19 23:00:00+00:00",
        "gain_pct": 12.831424808443458,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-01-20 01:00:00+00:00",
        "gain_pct": 12.831424808443458,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-20 02:00:00+00:00",
        "gain_pct": 12.831424808443458,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-20 03:00:00+00:00",
        "gain_pct": 12.831424808443458,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-20 06:00:00+00:00",
        "gain_pct": 12.831424808443458,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-20 07:00:00+00:00",
        "gain_pct": 12.831424808443458,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-20 08:00:00+00:00",
        "gain_pct": 12.831424808443458,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-01-23 14:00:00+00:00",
        "gain_pct": 22.880797632769543,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-01-27 14:00:00+00:00",
        "gain_pct": 23.211001658254432,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-01-29 19:00:00+00:00",
        "gain_pct": 24.98752086600659,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-02-02 17:00:00+00:00",
        "gain_pct": 27.270781862757403,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-02-02 18:00:00+00:00",
        "gain_pct": 27.270781862757403,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 00:00:00+00:00",
        "gain_pct": 27.270781862757403,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 01:00:00+00:00",
        "gain_pct": 27.270781862757403,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 03:00:00+00:00",
        "gain_pct": 27.270781862757403,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 05:00:00+00:00",
        "gain_pct": 17.629480520015136,
        "drawdown_pct": -7.575423990982455,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 06:00:00+00:00",
        "gain_pct": 17.629480520015136,
        "drawdown_pct": -7.575423990982455,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 08:00:00+00:00",
        "gain_pct": 17.629480520015136,
        "drawdown_pct": -7.575423990982455,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 09:00:00+00:00",
        "gain_pct": 17.629480520015136,
        "drawdown_pct": -7.575423990982455,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 10:00:00+00:00",
        "gain_pct": 17.629480520015136,
        "drawdown_pct": -7.575423990982455,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 14:00:00+00:00",
        "gain_pct": 17.629480520015136,
        "drawdown_pct": -7.575423990982455,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 15:00:00+00:00",
        "gain_pct": 17.629480520015136,
        "drawdown_pct": -7.575423990982455,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 19:00:00+00:00",
        "gain_pct": 28.65712507738732,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 20:00:00+00:00",
        "gain_pct": 28.65712507738732,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-03 21:00:00+00:00",
        "gain_pct": 28.65712507738732,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-04 07:00:00+00:00",
        "gain_pct": 25.452478971215328,
        "drawdown_pct": -2.490842309933783,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-04 15:00:00+00:00",
        "gain_pct": 25.452478971215328,
        "drawdown_pct": -2.490842309933783,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-10 01:00:00+00:00",
        "gain_pct": 30.41348109320225,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-10 03:00:00+00:00",
        "gain_pct": 30.41348109320225,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-18 16:00:00+00:00",
        "gain_pct": 34.6497418978542,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-25 07:00:00+00:00",
        "gain_pct": 39.522064124718696,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-25 08:00:00+00:00",
        "gain_pct": 39.522064124718696,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-25 10:00:00+00:00",
        "gain_pct": 39.522064124718696,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-25 11:00:00+00:00",
        "gain_pct": 39.522064124718696,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-25 15:00:00+00:00",
        "gain_pct": 39.522064124718696,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-25 16:00:00+00:00",
        "gain_pct": 39.522064124718696,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-25 19:00:00+00:00",
        "gain_pct": 44.1155395253993,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-26 17:00:00+00:00",
        "gain_pct": 45.1765212904553,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-02-26 18:00:00+00:00",
        "gain_pct": 45.1765212904553,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-28 03:00:00+00:00",
        "gain_pct": 51.12627433518304,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-02-28 14:00:00+00:00",
        "gain_pct": 62.993356506328894,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-02 15:00:00+00:00",
        "gain_pct": 64.72279259024478,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-02 16:00:00+00:00",
        "gain_pct": 64.72279259024478,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-02 17:00:00+00:00",
        "gain_pct": 64.72279259024478,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-02 19:00:00+00:00",
        "gain_pct": 64.72279259024478,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-03 06:00:00+00:00",
        "gain_pct": 81.90671213350555,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-03 08:00:00+00:00",
        "gain_pct": 81.90671213350555,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-04 01:00:00+00:00",
        "gain_pct": 77.76171072190951,
        "drawdown_pct": -2.2786412678130974,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-04 02:00:00+00:00",
        "gain_pct": 77.76171072190951,
        "drawdown_pct": -2.2786412678130974,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-04 05:00:00+00:00",
        "gain_pct": 77.76171072190951,
        "drawdown_pct": -2.2786412678130974,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-04 14:00:00+00:00",
        "gain_pct": 83.68224003163687,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-04 15:00:00+00:00",
        "gain_pct": 83.68224003163687,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-04 16:00:00+00:00",
        "gain_pct": 83.68224003163687,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-04 17:00:00+00:00",
        "gain_pct": 83.68224003163687,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-04 18:00:00+00:00",
        "gain_pct": 83.68224003163687,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-07 14:00:00+00:00",
        "gain_pct": 89.76676917433889,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-07 15:00:00+00:00",
        "gain_pct": 89.76676917433889,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-07 16:00:00+00:00",
        "gain_pct": 89.76676917433889,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-07 17:00:00+00:00",
        "gain_pct": 89.76676917433889,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-09 16:00:00+00:00",
        "gain_pct": 82.5392358260251,
        "drawdown_pct": -3.808640142718478,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-03-09 17:00:00+00:00",
        "gain_pct": 82.5392358260251,
        "drawdown_pct": -3.808640142718478,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-10 14:00:00+00:00",
        "gain_pct": 87.3107084754823,
        "drawdown_pct": -1.2942522600467576,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-10 18:00:00+00:00",
        "gain_pct": 87.3107084754823,
        "drawdown_pct": -1.2942522600467576,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-11 00:00:00+00:00",
        "gain_pct": 87.3107084754823,
        "drawdown_pct": -1.2942522600467576,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-11 01:00:00+00:00",
        "gain_pct": 74.8728090271967,
        "drawdown_pct": -7.8485607421914345,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-11 13:00:00+00:00",
        "gain_pct": 85.7936460402234,
        "drawdown_pct": -2.0936875046154046,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-11 15:00:00+00:00",
        "gain_pct": 85.7936460402234,
        "drawdown_pct": -2.0936875046154046,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-12 13:00:00+00:00",
        "gain_pct": 89.90141688736685,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-03-12 15:00:00+00:00",
        "gain_pct": 89.90141688736685,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-07 06:00:00+00:00",
        "gain_pct": 94.22450361957024,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-07 08:00:00+00:00",
        "gain_pct": 94.22450361957024,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-07 10:00:00+00:00",
        "gain_pct": 94.22450361957024,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-07 13:00:00+00:00",
        "gain_pct": 94.22450361957024,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-07 15:00:00+00:00",
        "gain_pct": 94.22450361957024,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-08 16:00:00+00:00",
        "gain_pct": 100.88366575565772,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-04-09 01:00:00+00:00",
        "gain_pct": 100.88366575565772,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-09 17:00:00+00:00",
        "gain_pct": 100.2757282732604,
        "drawdown_pct": -0.3026316152238917,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-10 15:00:00+00:00",
        "gain_pct": 97.39053991434176,
        "drawdown_pct": -1.7388799772126706,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-04-22 21:00:00+00:00",
        "gain_pct": 103.48115804201123,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-05-23 11:00:00+00:00",
        "gain_pct": 107.72852878516775,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-07-15 14:00:00+00:00",
        "gain_pct": 106.75440695098285,
        "drawdown_pct": -0.4689398417645041,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-07-24 06:00:00+00:00",
        "gain_pct": 112.32337961597796,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-07-24 07:00:00+00:00",
        "gain_pct": 112.32337961597796,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-08-14 12:00:00+00:00",
        "gain_pct": 121.39204497271987,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-08-24 19:00:00+00:00",
        "gain_pct": 119.62954015494199,
        "drawdown_pct": -0.7961012411241142,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-10-10 22:00:00+00:00",
        "gain_pct": 118.21330720575406,
        "drawdown_pct": -1.4357958378122815,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-10-11 05:00:00+00:00",
        "gain_pct": 118.21330720575406,
        "drawdown_pct": -1.4357958378122815,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-10-12 14:00:00+00:00",
        "gain_pct": 115.70290961668036,
        "drawdown_pct": -2.569710829827032,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-10-12 16:00:00+00:00",
        "gain_pct": 115.70290961668036,
        "drawdown_pct": -2.569710829827032,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-10-14 15:00:00+00:00",
        "gain_pct": 128.13295612162094,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-10-17 07:00:00+00:00",
        "gain_pct": 126.90600700085827,
        "drawdown_pct": -0.5378219533124229,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-10-17 09:00:00+00:00",
        "gain_pct": 126.90600700085827,
        "drawdown_pct": -0.5378219533124229,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-10-19 09:00:00+00:00",
        "gain_pct": 133.33519756468502,
        "drawdown_pct": 0.0,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2025-11-04 19:00:00+00:00",
        "gain_pct": 135.8948909473658,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-11-04 20:00:00+00:00",
        "gain_pct": 135.8948909473658,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-11-04 21:00:00+00:00",
        "gain_pct": 135.8948909473658,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-11-21 09:00:00+00:00",
        "gain_pct": 143.77320854904585,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-11-21 12:00:00+00:00",
        "gain_pct": 143.77320854904585,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-11-21 15:00:00+00:00",
        "gain_pct": 143.77320854904585,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-11-21 22:00:00+00:00",
        "gain_pct": 150.07928304388653,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2025-12-07 15:00:00+00:00",
        "gain_pct": 150.78844168056276,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-01-21 16:00:00+00:00",
        "gain_pct": 156.64404702508415,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-03 19:00:00+00:00",
        "gain_pct": 165.64059535372104,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-05 19:00:00+00:00",
        "gain_pct": 166.45222975976657,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-05 20:00:00+00:00",
        "gain_pct": 166.45222975976657,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-05 21:00:00+00:00",
        "gain_pct": 166.45222975976657,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-05 22:00:00+00:00",
        "gain_pct": 166.45222975976657,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-05 23:00:00+00:00",
        "gain_pct": 166.45222975976657,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-06 01:00:00+00:00",
        "gain_pct": 166.45222975976657,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-06 02:00:00+00:00",
        "gain_pct": 166.45222975976657,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-06 05:00:00+00:00",
        "gain_pct": 166.45222975976657,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-06 14:00:00+00:00",
        "gain_pct": 192.10500502789978,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-06 16:00:00+00:00",
        "gain_pct": 192.10500502789978,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-02-28 06:00:00+00:00",
        "gain_pct": 188.1341186815543,
        "drawdown_pct": -1.3594037342722687,
        "open_trades": 1,
        "exposure": 0.5
      },
      {
        "t": "2026-02-28 07:00:00+00:00",
        "gain_pct": 188.1341186815543,
        "drawdown_pct": -1.3594037342722687,
        "open_trades": 2,
        "exposure": 1.0
      },
      {
        "t": "2026-03-23 11:00:00+00:00",
        "gain_pct": 194.28092252089846,
        "drawdown_pct": 0.0,
        "open_trades": 2,
        "exposure": 1.0
      }
    ]
  },
  "recent_metrics": {
    "label": "Recent ridge_a1_H10_c8_p70_cap2",
    "variant": "ridge_a1_H10_c8_p70_cap2",
    "gain_pct": 19.62869008732119,
    "max_drawdown_pct": -1.3594037342722909,
    "capital_score": 17.589584485912752,
    "stability_score": 4.455153817504029,
    "n_trades": 11,
    "skipped_by_capacity": 46,
    "avg_trade_ret_pct": 1.6563612066068303,
    "median_trade_ret_pct": 1.3722558108335237,
    "positive_month_rate": 0.6666666666666666,
    "worst_month_pct": 0.0,
    "month_gain_concentration": 0.9217408630999854,
    "top_asset_trade_share": 0.6363636363636364,
    "long_counts": {
      "XRP": 7,
      "ETH": 3,
      "SOL": 1
    },
    "cost_bps_roundtrip": 8.0,
    "delay_bars": 1,
    "horizon_bars": 10,
    "avg_bars_held": 11.0,
    "timeouts": 11,
    "tp_hits": 0,
    "hit_rate": 0.0,
    "avg_open_trades": 1.9230769230769231,
    "max_open_trades": 2,
    "avg_exposure": 0.9615384615384616,
    "max_exposure": 1.0,
    "monthly_gain_pct": {
      "2026-01-31 00:00:00+00:00": 0.0,
      "2026-02-28 00:00:00+00:00": 15.497546089767269,
      "2026-03-31 00:00:00+00:00": 1.3157977796215192
    }
  },
  "summary": {
    "val_score": 2175.6348771042103,
    "val_selection_score": 2175.6348771042103,
    "test_score": 187.44021398519988,
    "recent_score": 17.589584485912752,
    "test_gain_pct": 199.21305509848702,
    "test_dd_pct": -7.8485607421914345,
    "recent_gain_pct": 19.62869008732119,
    "recent_dd_pct": -1.3594037342722909,
    "avg_trade_ret_pct": 1.097484338236863,
    "selected_variant": "ridge_a1_H10_c8_p70_cap2",
    "selected_horizon": 10,
    "selected_cap": 2,
    "selected_cost_bps": 8,
    "selected_pred_percentile": 70,
    "selected_threshold": 0.033558452906995294,
    "test_top_asset_share": 0.4803921568627451,
    "test_n_trades": 102,
    "test_tp_hits": 0,
    "test_timeouts": 102,
    "test_hit_rate": 0.0,
    "test_avg_bars_held": 11.0,
    "test_avg_open_trades": 1.9024390243902438,
    "test_max_open_trades": 2,
    "test_avg_exposure": 0.9512195121951219,
    "test_max_exposure": 1.0,
    "success": false
  },
  "interpretation": "Défavorable/mitigé: le Ridge close-H dédié ne satisfait pas simultanément transfert Test, recent, DD, nombre de trades et avg/trade sous sélection Validation-only.",
  "lesson": "Le score TP-prob et les features pré-entry ne suffisent pas à apprendre une utilité close-H robuste; le signal TP-touch reste difficile à transformer en rendement close-to-close tradable.",
  "next_implication": "Ne pas promouvoir; limiter la famille 125/close-H à des diagnostics ou chercher de nouvelles cibles/features plutôt qu'un nouveau retuning historique.",
  "report_url": "https://hermes.overalex.fr/reports/autonomous-ridge-closeh-dedicated-h10h20-utility-135.html",
  "results_url": "https://hermes.overalex.fr/reports/protocols/autonomous_ridge_lab/ridge_closeh_dedicated_h10h20_executable_utility_135/results.json",
  "dashboard_url": "https://hermes.overalex.fr/reports/autonomous-ridge-lab.html",
  "elapsed_sec": 62.0424702167511,
  "plots": [
    "autonomous-ridge-closeh-dedicated-h10h20-utility-135-comparison.png",
    "autonomous-ridge-closeh-dedicated-h10h20-utility-135-test-curve.png"
  ]
}