import csv
from pathlib import Path

base = next((b for b in [
    Path(r"C:\Users\Administrator\OneDrive\fx_macro_intraday"),
    Path(r"C:\Users\paul_\OneDrive\fx_macro_intraday")] if b.exists()), None)

uj_p = base / "data" / "processed" / "usdjpy_trades_real_costs.csv"
eu_p = base / "data" / "processed" / "trades" / "trades_real_costs.csv"

def stats(path, pnl_col, mae_col):
    maes=[]; pnls=[]; rows=[]
    with open(path, newline="", encoding="utf-8-sig") as f:
        for r in csv.DictReader(f):
            try:
                mae=float(r.get(mae_col,0) or 0); pnl=float(r[pnl_col])
            except (ValueError,KeyError): continue
            maes.append(mae); pnls.append(pnl); rows.append(r)
    maes_s=sorted(maes)
    print(f"  {mae_col}: min={maes_s[0]:.4f} median={maes_s[len(maes_s)//2]:.4f} "
          f"max={maes_s[-1]:.4f}")
    # Show a few stop-loss trades: their realized loss vs mae, to infer scale.
    print("  Sample STOP trades (realized pnl vs mae):")
    shown=0
    for r in rows:
        if r.get("exit_reason")=="stop":
            try:
                pnl=float(r[pnl_col]); mae=float(r.get(mae_col,0) or 0)
            except: continue
            print(f"    pnl={pnl:>9.2f}  mae={mae:.4f}  "
                  f"entry={r.get('entry_price')} ")
            shown+=1
            if shown>=5: break

print("UJ (pnl_real, mae_pct):")
stats(uj_p, "pnl_real", "mae_pct")
print("\nEU (dollar_pnl_real, mae):")
# EU file: mae column is 'mae' (not mae_pct) per earlier header
stats(eu_p, "dollar_pnl_real", "mae")
