Page - Signals

abstract

Live and historical AI signal feed — shows every LLM-generated trading signal (BUY/SELL/HOLD) with confidence score, rationale, and which trade was executed (if any).

Route

PropertyValue
Path/signals
Filefrontend/src/app/signals/page.tsx
Auth RequiredNo
LayoutRoot layout with sidebar
Dynamic SegmentNone

Component Tree

SignalsPage (page.tsx)
├── AppHeader (title="AI Signals")
├── Filters: symbol, signal type (BUY/SELL/HOLD), date range
├── Signal Feed Table
│   └── SignalRow × N
│       ├── Time (relative + absolute)
│       ├── Symbol + Timeframe badge
│       ├── Signal badge (BUY=green, SELL=red, HOLD=gray)
│       ├── Confidence bar (0-100%)
│       ├── Rationale (truncated, expandable)
│       ├── Model used (provider + model name)
│       └── Trade link (if trade_id != null)
└── WebSocket live indicator (new signals pulse animation)

Data Layer

CallAPITriggered When
Initial loadGET /api/v1/signals?limit=50On mount
New signalWebSocket new_signal messageReal-time via useTradingStore

New signals from the WebSocket are prepended via store.addSignal(signal) (capped at 50 in store).