diff --git a/dashboard/server.py b/dashboard/server.py index dbb59a5..d0325c6 100644 --- a/dashboard/server.py +++ b/dashboard/server.py @@ -204,6 +204,8 @@ async def get_backtest(name: str): async def recalc_backtest(name: str, fee_tier: int = 0, staking_tier: str = "none"): """Recalculate backtest PnL with different fee tier.""" fpath = os.path.join(BACKTEST_DIR, f"{name}.json") + if not os.path.exists(fpath): + fpath = os.path.join(HISTORICAL_DIR, f"{name}.json") if not os.path.exists(fpath): return JSONResponse({"error": "not found"}, status_code=404) with open(fpath) as f: diff --git a/dashboard/static/index.html b/dashboard/static/index.html index 6fd7b50..aa322fe 100644 --- a/dashboard/static/index.html +++ b/dashboard/static/index.html @@ -306,8 +306,8 @@ function onFeeTierChange(){ // ═══════════ Render backtest detail with fee toggle ── function renderBTDetail(full){ - var pnl=feeOn?(full.pnl||0):(full.pnl_gross||full.pnl||0); - var pnlPct=feeOn?(full.pnl_pct||0):(full.pnl_gross_pct||full.pnl_pct||0); + var pnl=feeOn?(full.pnl_net||full.pnl||0):(full.pnl_gross||full.pnl||0); + var pnlPct=feeOn?(full.pnl_net_pct||full.pnl_pct||0):(full.pnl_gross_pct||full.pnl_pct||0); var fees=full.fees_total||0; var strat=full.strategy||''; document.getElementById('det-name').textContent=strat+(feeOn?' (net of fees)':' (gross, no fees)');