{
  "fiche": "fiche-modele-v1",
  "genere_le": "2026-10-10T09:34:43.367486+00:00",
  "separation_des_mesures": {
    "auc_serveur": "validation walk-forward hors échantillon — courbe ROC, capacité de classement (pas une probabilité de gain). Source : forward-test/validation-folds.json.",
    "auc_pine": "approximation : l'indicateur TradingView affiche un indice composite 0-100 en percentiles (Spearman rangs ~0,42 avec le score serveur — deux objets distincts, écart documenté en tête du template pine v1.5+ et forward-test/pine-seuils.json). Jamais présentée comme la métrique serveur.",
    "verification_prospective": "forward test public : probabilités engagées puis mesurées après échéance. Sources : forward-test/journal.csv, balance.json, calibration.json (fiche 22)."
  },
  "references_historiques": [
    {
      "valeur": "AUC 0,588 (daily) / 0,5245 (6h)",
      "nature": "validation walk-forward du modèle initial (walkforward-initial) — référence de contrôle de dérive (DRIFT_SEUIL) et d'ancrage, datée",
      "statut": "jamais présentée comme métrique actuelle : la métrique courante est le pooled OOS du modèle du mois avec sa dispersion de folds ci-dessous"
    }
  ],
  "cible": {
    "target_id": "tgt-rfwd-075atrpct",
    "target_definition_version": "v1",
    "source": "cron/contrat_donnees.py (LABEL_CONTRACT, fiches 18/19)"
  },
  "calibration_modele": {
    "type": "isotonique (sklearn)",
    "fenetre": "3 derniers mois du panel avant le test, par fold walk-forward",
    "short": "calibration isotonique du LONG appliquée au miroir — approximation expérimentale assumée (tâche 1), validation forward en cours ; présentée séparément",
    "source": "claw_retrain.py (fit calibration_*.pkl)"
  },
  "univers": {
    "n": 81,
    "date_changement": "2026-09-25T12:30:04.646932+00:00",
    "selection": "top 80 spot USDT Binance par volume quotidien médian 30j (exclus : levier UP/DOWN/BULL/BEAR, stables/fiat, non tradables, WBTC doublon de BTC). ZENUSDT écarté après test : aucun marché de funding (perp inexistante), positionnement non mesurable.",
    "source": "univers.json"
  },
  "modeles": {
    "daily": {
      "horizon": "1d",
      "version": {
        "id": "retrain-2026-10-01",
        "entraine_le": "2026-10-01T06:00:04.505183+00:00",
        "source": "forward-test/retrain-log.json"
      },
      "cutoff": {
        "valeur": "2026-10-01T06:00:04.505183+00:00",
        "sens": "dernière donnée connue à l'entraînement — borne haute : l'horodatage du run de réentraînement ; la fenêtre exacte de fit est journalisée dans logs/retrain-*.log",
        "source": "retrain-log.json (date du run)"
      },
      "empreintes": {
        "lgbm_daily.txt": {
          "sha256": "1c750de23df1ad63bf1f3d89b6aa14e07213c1e304c8bfa7b5e791dd50a82557",
          "taille_o": 531428,
          "date_fichier_utc": "2026-10-01T06:12:46.790384+00:00"
        },
        "xgb_daily.json": {
          "sha256": "95f3c8186833a1a3849dfc7113b20e96110403434de2c6fc5cc145af2353c61a",
          "taille_o": 393693,
          "date_fichier_utc": "2026-10-01T06:12:46.800384+00:00"
        },
        "cb_daily.cbm": {
          "sha256": "5d4300962e909ba5e4ad6b2422da16e29d95cfd7587dd38675636fa670266905",
          "taille_o": 98160,
          "date_fichier_utc": "2026-10-01T06:12:46.802384+00:00"
        },
        "calibration_daily.pkl": {
          "sha256": "2969e38bff1107c528878ac85d748784c4f4988e97ed4875b2dc05ffe426badc",
          "taille_o": 1159,
          "date_fichier_utc": "2026-10-01T06:12:46.805384+00:00"
        },
        "features_daily.pkl": {
          "sha256": "dfc3b6c197361e9735b034e1afa6c6b7bc314d0d1610e1318744a4d5f5fbc756",
          "taille_o": 246,
          "date_fichier_utc": "2026-10-01T06:12:46.806384+00:00"
        }
      },
      "features": {
        "n": 24,
        "liste": [
          "ret_1",
          "ret_4",
          "ret_16",
          "rsi14",
          "atr_pct",
          "ema_dist",
          "ema_slope",
          "vol_ratio",
          "boll_b",
          "vol20",
          "dist_high",
          "dist_low",
          "h_sin",
          "h_cos",
          "mkt_ret",
          "fng",
          "fng_chg",
          "fng_z",
          "fund_sum_b",
          "fund_ma7_b",
          "fund_z_b",
          "fa_sum",
          "fa_ma7",
          "fa_z"
        ],
        "source": "modeles/features_daily.pkl"
      }
    },
    "6h": {
      "horizon": "6h",
      "version": {
        "id": "retrain-2026-10-01",
        "entraine_le": "2026-10-01T06:00:04.505183+00:00",
        "source": "forward-test/retrain-log.json"
      },
      "cutoff": {
        "valeur": "2026-10-01T06:00:04.505183+00:00",
        "sens": "dernière donnée connue à l'entraînement — borne haute : l'horodatage du run de réentraînement ; la fenêtre exacte de fit est journalisée dans logs/retrain-*.log",
        "source": "retrain-log.json (date du run)"
      },
      "empreintes": {
        "lgbm_6h.txt": {
          "sha256": "4c6fd0c2838625a0c2d4dde768737ba1533e773ef362be21a445e9ec2c9bd2ff",
          "taille_o": 537142,
          "date_fichier_utc": "2026-10-01T06:13:15.886312+00:00"
        },
        "xgb_6h.json": {
          "sha256": "797c801732bd05cd4c37be1e60b5a9a6940072d2d426e474e2f0f71798ead98d",
          "taille_o": 540276,
          "date_fichier_utc": "2026-10-01T06:13:15.899312+00:00"
        },
        "cb_6h.cbm": {
          "sha256": "5b703e46f0bcc8503e4974a0e7b4d72f76e66d87fc74c0dc3ceead364e81e9aa",
          "taille_o": 97976,
          "date_fichier_utc": "2026-10-01T06:13:15.901312+00:00"
        },
        "calibration_6h.pkl": {
          "sha256": "19bc539a60de7b9e6cbe1edd77f2ca61a3ae919655017a7d36d6c9a68d6059b4",
          "taille_o": 967,
          "date_fichier_utc": "2026-10-01T06:13:15.904312+00:00"
        },
        "features_6h.pkl": {
          "sha256": "dfc3b6c197361e9735b034e1afa6c6b7bc314d0d1610e1318744a4d5f5fbc756",
          "taille_o": 246,
          "date_fichier_utc": "2026-10-01T06:13:15.905312+00:00"
        }
      },
      "features": {
        "n": 24,
        "liste": [
          "ret_1",
          "ret_4",
          "ret_16",
          "rsi14",
          "atr_pct",
          "ema_dist",
          "ema_slope",
          "vol_ratio",
          "boll_b",
          "vol20",
          "dist_high",
          "dist_low",
          "h_sin",
          "h_cos",
          "mkt_ret",
          "fng",
          "fng_chg",
          "fng_z",
          "fund_sum_b",
          "fund_ma7_b",
          "fund_z_b",
          "fa_sum",
          "fa_ma7",
          "fa_z"
        ],
        "source": "modeles/features_6h.pkl"
      }
    }
  },
  "folds": {
    "source": "public/forward-test/validation-folds.json",
    "date_generation": "2026-10-01T06:04:44.493088+00:00",
    "protocole": "walk-forward expansif mensuel : fit sur mois < M (hyperparamètres gelés identiques à la production), test = mois M ; métriques = AUC + logloss des probabilités d'ensemble (LGBM+XGB+CB)",
    "label": "ret_fwd > 0.75 × ATR(24h)",
    "reference_declaree": null,
    "tags": {
      "daily": {
        "n_folds": 18,
        "auc_pooled_oos": 0.5607,
        "logloss_pooled_oos": 0.3358,
        "auc_reference": 0.588,
        "dispersion_auc_folds": {
          "n": 18,
          "moyenne": 0.5481,
          "ecart_type": 0.0814,
          "min": 0.3362,
          "max": 0.7005
        },
        "dispersion_logloss_folds": {
          "n": 18,
          "moyenne": 0.3354,
          "ecart_type": 0.0585,
          "min": 0.2255,
          "max": 0.4415
        },
        "folds_defavorables_affiches": [
          {
            "periode": "2025-08",
            "auc": 0.4919,
            "n_test": 2046,
            "n_pos": 253
          },
          {
            "periode": "2025-09",
            "auc": 0.4967,
            "n_test": 2004,
            "n_pos": 215
          },
          {
            "periode": "2025-12",
            "auc": 0.3362,
            "n_test": 2252,
            "n_pos": 209
          },
          {
            "periode": "2026-05",
            "auc": 0.4302,
            "n_test": 2353,
            "n_pos": 266
          }
        ],
        "folds": [
          {
            "periode": "2025-04",
            "auc": 0.5637,
            "logloss": 0.3496,
            "n_test": 1801,
            "n_pos": 201
          },
          {
            "periode": "2025-05",
            "auc": 0.6262,
            "logloss": 0.3362,
            "n_test": 1953,
            "n_pos": 214
          },
          {
            "periode": "2025-06",
            "auc": 0.5094,
            "logloss": 0.304,
            "n_test": 1916,
            "n_pos": 168
          },
          {
            "periode": "2025-07",
            "auc": 0.6483,
            "logloss": 0.4013,
            "n_test": 2021,
            "n_pos": 288
          },
          {
            "periode": "2025-08",
            "auc": 0.4919,
            "logloss": 0.4061,
            "n_test": 2046,
            "n_pos": 253
          },
          {
            "periode": "2025-09",
            "auc": 0.4967,
            "logloss": 0.3534,
            "n_test": 2004,
            "n_pos": 215
          },
          {
            "periode": "2025-10",
            "auc": 0.5399,
            "logloss": 0.2783,
            "n_test": 2117,
            "n_pos": 146
          },
          {
            "periode": "2025-11",
            "auc": 0.6383,
            "logloss": 0.2358,
            "n_test": 2099,
            "n_pos": 126
          },
          {
            "periode": "2025-12",
            "auc": 0.3362,
            "logloss": 0.3451,
            "n_test": 2252,
            "n_pos": 209
          },
          {
            "periode": "2026-01",
            "auc": 0.6027,
            "logloss": 0.3387,
            "n_test": 2317,
            "n_pos": 247
          },
          {
            "periode": "2026-02",
            "auc": 0.5299,
            "logloss": 0.2854,
            "n_test": 2072,
            "n_pos": 165
          },
          {
            "periode": "2026-03",
            "auc": 0.5492,
            "logloss": 0.2966,
            "n_test": 2294,
            "n_pos": 182
          },
          {
            "periode": "2026-04",
            "auc": 0.5408,
            "logloss": 0.3759,
            "n_test": 2243,
            "n_pos": 259
          },
          {
            "periode": "2026-05",
            "auc": 0.4302,
            "logloss": 0.3857,
            "n_test": 2353,
            "n_pos": 266
          },
          {
            "periode": "2026-06",
            "auc": 0.5191,
            "logloss": 0.2255,
            "n_test": 2280,
            "n_pos": 123
          },
          {
            "periode": "2026-07",
            "auc": 0.5639,
            "logloss": 0.2846,
            "n_test": 2374,
            "n_pos": 192
          },
          {
            "periode": "2026-08",
            "auc": 0.7005,
            "logloss": 0.3939,
            "n_test": 2427,
            "n_pos": 357
          },
          {
            "periode": "2026-09",
            "auc": 0.5792,
            "logloss": 0.4415,
            "n_test": 2337,
            "n_pos": 364
          }
        ]
      },
      "6h": {
        "n_folds": 16,
        "auc_pooled_oos": 0.5127,
        "logloss_pooled_oos": 0.5634,
        "auc_reference": 0.5245,
        "dispersion_auc_folds": {
          "n": 16,
          "moyenne": 0.5267,
          "ecart_type": 0.0375,
          "min": 0.4549,
          "max": 0.5935
        },
        "dispersion_logloss_folds": {
          "n": 16,
          "moyenne": 0.5634,
          "ecart_type": 0.0459,
          "min": 0.4779,
          "max": 0.6608
        },
        "folds_defavorables_affiches": [
          {
            "periode": "2025-11",
            "auc": 0.4982,
            "n_test": 8396,
            "n_pos": 1322
          },
          {
            "periode": "2026-01",
            "auc": 0.4549,
            "n_test": 9268,
            "n_pos": 1942
          },
          {
            "periode": "2026-04",
            "auc": 0.4931,
            "n_test": 8972,
            "n_pos": 2321
          },
          {
            "periode": "2026-05",
            "auc": 0.4705,
            "n_test": 9412,
            "n_pos": 2345
          }
        ],
        "folds": [
          {
            "periode": "2025-06",
            "auc": 0.5269,
            "logloss": 0.5409,
            "n_test": 7664,
            "n_pos": 1738
          },
          {
            "periode": "2025-07",
            "auc": 0.5239,
            "logloss": 0.6267,
            "n_test": 8084,
            "n_pos": 2416
          },
          {
            "periode": "2025-08",
            "auc": 0.5039,
            "logloss": 0.6122,
            "n_test": 8218,
            "n_pos": 2215
          },
          {
            "periode": "2025-09",
            "auc": 0.5676,
            "logloss": 0.5825,
            "n_test": 8098,
            "n_pos": 2209
          },
          {
            "periode": "2025-10",
            "auc": 0.525,
            "logloss": 0.5358,
            "n_test": 8526,
            "n_pos": 1828
          },
          {
            "periode": "2025-11",
            "auc": 0.4982,
            "logloss": 0.5386,
            "n_test": 8396,
            "n_pos": 1322
          },
          {
            "periode": "2025-12",
            "auc": 0.5678,
            "logloss": 0.511,
            "n_test": 9008,
            "n_pos": 1884
          },
          {
            "periode": "2026-01",
            "auc": 0.4549,
            "logloss": 0.5361,
            "n_test": 9268,
            "n_pos": 1942
          },
          {
            "periode": "2026-02",
            "auc": 0.5935,
            "logloss": 0.5147,
            "n_test": 8288,
            "n_pos": 1778
          },
          {
            "periode": "2026-03",
            "auc": 0.5432,
            "logloss": 0.581,
            "n_test": 9176,
            "n_pos": 2185
          },
          {
            "periode": "2026-04",
            "auc": 0.4931,
            "logloss": 0.5984,
            "n_test": 8972,
            "n_pos": 2321
          },
          {
            "periode": "2026-05",
            "auc": 0.4705,
            "logloss": 0.5795,
            "n_test": 9412,
            "n_pos": 2345
          },
          {
            "periode": "2026-06",
            "auc": 0.5673,
            "logloss": 0.4779,
            "n_test": 9120,
            "n_pos": 1665
          },
          {
            "periode": "2026-07",
            "auc": 0.5005,
            "logloss": 0.5418,
            "n_test": 9534,
            "n_pos": 2147
          },
          {
            "periode": "2026-08",
            "auc": 0.5632,
            "logloss": 0.576,
            "n_test": 9728,
            "n_pos": 2564
          },
          {
            "periode": "2026-09",
            "auc": 0.5274,
            "logloss": 0.6608,
            "n_test": 9429,
            "n_pos": 2911
          }
        ]
      }
    }
  }
}