mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-22 03:37:36 +08:00
Root cause of the dashboard over-reporting profit while the account lost money: the fill sync used UserFillsByTime, which hard-caps at 100 fills per response. At 20x/4-position frequency the account does >100 fills/24h, so ~20% of fills were silently dropped — and the dropped ones skewed toward losers, inflating recorded PnL and under-counting fees. Verified: over a 46h window the DB showed net +$39 while Hyperliquid official was -$18.6, and the equity drop ($176 -> $156) confirmed the loss. Switch GetTrades to UserFills (returns up to 2000 recent fills), filtering to startTime client-side, and widen the sync lookback 24h -> 7d so gaps backfill. Verified live: a sync now pulls 675 fills where it previously always received exactly 100. Note: this stops future drift; already-corrupted historical position rows are not retroactively rebuilt (dedup blocks re-processing). Account equity remains the authoritative scoreboard.