fanziqi
|
ad60a53262
|
review: add code audit annotations and REVIEW.md for v5.1
P0 issues annotated (critical, must fix before live trading):
- signal_engine.py: cooldown blocks reverse-signal position close
- paper_monitor.py + signal_engine.py: pnl_r 2x inflated for TP scenarios
- signal_engine.py: entry price uses 30min VWAP instead of real-time price
- paper_monitor.py + signal_engine.py: concurrent write race on paper_trades
P1 issues annotated (long-term stability):
- db.py: ensure_partitions uses timedelta(30d) causing missed monthly partitions
- signal_engine.py: float precision drift in buy_vol/sell_vol accumulation
- market_data_collector.py: single bare connection with no reconnect logic
- db.py: get_sync_pool initialization not thread-safe
- signal_engine.py: recent_large_trades deque has no maxlen
P2/P3 issues annotated across backend and frontend:
- coinbase_premium KeyError for XRP/SOL symbols
- liquidation_collector: redundant elif condition in aggregation logic
- auth.py: JWT secret hardcoded default, login rate-limit absent
- Frontend: concurrent refresh token race, AuthContext not synced on failure
- Frontend: universal catch{} swallows all API errors silently
- Frontend: serial API requests in LatestSignals, market-indicators over-polling
docs/REVIEW.md: comprehensive audit report with all 34 issues (P0×4, P1×5,
P2×6, P3×4 backend + FE-P1×4, FE-P2×8, FE-P3×3 frontend), fix suggestions
and prioritized remediation roadmap.
|
2026-03-01 17:14:52 +08:00 |
|
root
|
9528d69a42
|
fix: deduplicate recent_large_trades to prevent memory bloat
Each evaluate cycle was re-appending all qualifying trades from
win_fast, causing duplicates. Added seen-set dedup.
|
2026-03-01 07:58:51 +00:00 |
|
root
|
022ead6d6c
|
feat: paper_trades store score_factors JSONB (direction/crowding/environment/confirmation/auxiliary breakdown)
|
2026-02-28 13:45:26 +00:00 |
|
root
|
95b45d0f07
|
fix: skip first 3 cycles after cold start to prevent duplicate paper trades
|
2026-02-28 12:03:48 +00:00 |
|
root
|
7b901a2390
|
feat: paper_monitor.py - WebSocket realtime TP/SL + frontend WS price feed (1s update)
|
2026-02-28 11:55:40 +00:00 |
|
root
|
66810701fb
|
feat: paper trading signal flip - reverse signal closes existing position then opens new
|
2026-02-28 11:45:48 +00:00 |
|
root
|
47004ece8c
|
feat: paper trading deduct taker fee 0.05% per side (0.1% round trip)
|
2026-02-28 11:30:17 +00:00 |
|
root
|
282aed138a
|
feat: paper trading switch + config API + max positions limit
|
2026-02-28 11:13:39 +00:00 |
|
root
|
e054db112d
|
feat: paper trading - backend (table+signal_engine integration+5 APIs) + frontend page
|
2026-02-28 11:10:28 +00:00 |
|
root
|
317031ab57
|
fix: signal_engine now reads real market_indicators (JSONB parsing + OI change rate)
|
2026-02-28 11:03:44 +00:00 |
|
root
|
0ac2225979
|
feat: add XRP and SOL symbols (4 coins total)
|
2026-02-28 10:11:05 +00:00 |
|
root
|
424cb993f8
|
feat: signal history list + always compute scoring even without signal
|
2026-02-28 06:09:32 +00:00 |
|
root
|
5c38a2f9bf
|
feat: upgrade signal engine to V5.1 layered scoring
|
2026-02-28 05:24:16 +00:00 |
|
root
|
fbf84f2be5
|
tune: signal-engine循环15秒(从5秒,降CPU60%)
|
2026-02-27 18:38:03 +00:00 |
|
root
|
4168c1dd88
|
refactor: SQLite→PostgreSQL migration - db.py连接层 + main/collector/signal-engine/backfill全部改PG
Phase 1: 核心数据表(agg_trades/rate_snapshots/signal*)迁PG
auth.py暂保留SQLite(低频,不影响性能)
- db.py: psycopg2同步池 + asyncpg异步池 + PG schema + 分区管理
- main.py: 全部改asyncpg查询
- collector: psycopg2 + execute_values批量写入
- signal-engine: psycopg2同步读写
- backfill: psycopg2 + ON CONFLICT DO NOTHING
|
2026-02-27 16:15:16 +00:00 |
|
root
|
547f093352
|
feat: V5 signal-engine + API endpoints for indicators/latest/trades
|
2026-02-27 15:31:12 +00:00 |
|