diff --git a/index.html b/index.html index 71fd037..880b1ad 100644 --- a/index.html +++ b/index.html @@ -1796,6 +1796,20 @@ function recordSnapshot(p){ p.snapshots=SIM_DAY?p.snapshots.filter(s=>s.date!==snap.date):p.snapshots.filter(s=>s.timestamp!==snap.timestamp); p.snapshots.push(snap);p.snapshots.sort((a,b)=>new Date(a.timestamp||a.date)-new Date(b.timestamp||b.date)); } +function agentMomentumStats(p){ + const snaps=(p.snapshots||[]).slice().filter(s=>Number.isFinite(s.return_pct)).sort((a,b)=>snapTime(a)-snapTime(b)); + const returns=snaps.map(s=>Number(s.return_pct||0)); + const last=returns[returns.length-1]||0; + const prev=returns[returns.length-2]??last; + const recent=returns.length>4?last-returns[returns.length-4]:last-prev; + const emaFast=returns.length?ema(returns,3):[0]; + const emaSlow=returns.length?ema(returns,7):[0]; + const macd=emaFast[emaFast.length-1]-emaSlow[emaSlow.length-1]; + const signalArr=ema(returns.map((_,i)=>emaFast[i]-emaSlow[i]),3); + const macdHist=macd-(signalArr[signalArr.length-1]||0); + const high=Math.max(...returns,last,0); + return {last,prev,recent,macd,macdHist,drawdown:last-high,snaps}; +} /* ---------- Trailing-week backtest seeding ---------- Marks each agent's CURRENT holdings against real Polymarket price history so the equity curves show a plausible past week instead of a flat line. */