=== POST-PURGE BASELINE (SB-01 + SB-02 fixed) === Tanggal : 2026-08-21 Command : python train_model.py XAUUSDc --out repaired\post_purge\SniperGold_ML_postpurge.mqh --tag v20260821_postpurge Hash kode baru (train_model.py, setelah edit) : (lihat provenance hash di bawah) Dataset (features_XAUUSDc.npz) : E60285F55AB5AF7B397653373F0EE5B8B814708DC178DD58691DAE0BE122946A Model POST : repaired\post_purge\SniperGold_ML_postpurge.mqh (SHA256 9D8906A89DB6580A01A1F1747E6E24D4C9D3F849910AEDCE2AFE873B6F1FE44E) Determinisme : dijalankan 2x -> hasil IDENTIK (reproducible). Hasil (kode baru; SB-01 metrik validasi per-head; SB-02 purge gap=H_LABEL): SB-02 purged split: split_bar=44972 train=35652 purge=13 test=11872 max_train_outcome_end=44995 < min_test_outcome_start=44997 OK AUC validasi (SB-01 corrected): LONG=0.6796 SHORT=0.6796 mean=0.6796 (epoch terbaik 55) LONG : TRAIN AUC 0.7483 | VAL 0.6796 | TEST 0.6582 SHORT: TEST AUC 0.6582 CALIBRASI LONG A=0.6913 B=0.1935 | SHORT A=0.6913 B=-0.1935 n_tr=30304 n_purge=13 n_te=11872 split_bar=44972 tag=v20260821_postpurge PERBANDINGAN PRE vs POST: PRE (kode lama, metrik rusak, split tanpa purge): TEST 0.6270 / 0.6207 ; best_epoch=0 POST (kode baru, metrik benar, purge gap=24) : TEST 0.6582 / 0.6582 ; best_epoch=55 Interpretasi: KOREKSI METODOLOGI (bukan optimasi). Freeze lama = model ~1 epoch (early stopping memilih epoch 0 karena metrik validasi rusak ~0.5 konstan). CATATAN: - angka ini adalah ESTIMASI terkoreksi pada cache features_XAUUSDc.npz (feed XAUUSDc, split 75/25 dengan purge). Bukan klaim edge; belum divalidasi lintas feed. - freeze Include\SniperGold_ML.mqh TIDAK diubah.