Fix fee tier recalculation for historical backtests
Server: recalc endpoint now checks HISTORICAL_DIR as fallback when file not found in BACKTEST_DIR. Previously historical backtests returned "not found" on recalc. Frontend: renderBTDetail now accepts pnl_net/pnl_net_pct from recalc response (the endpoint returns pnl_net not pnl). Verified: VIP 0 → VIP 6 on OBI historical backtest changes net PnL from 54.31% to 66.57% with fees dropping $18.10 → $5.85.
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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)');
|
||||
|
||||
Reference in New Issue
Block a user