serve_dashboard.py _serve_wallets():
- Reads portfolio.json per-wallet forward realized (out-of-sample)
- Returns fwd_realized + fwd_bets for each followed + suggested wallet
- Splits suggestions into 'suggestions' (forward positive) and
'warnings' (forward negative despite high copy_pnl)
bot_dashboard.html renderWallets():
- Added 前瞻30d column to followed wallets table (green/red)
- Suggestions only show forward-positive wallets
- New warnings section: red badges for copy_pnl-high-but-forward-negative
wallets (e.g. oliman2 #1 copy_pnl but - forward)
Prevents the oliman2/leegunner trap: dashboard used to recommend
copy_pnl #1 and #2, but both lose money in forward testing.