SDSE-1B

Live Trading Dashboard

{{ system.runner_status.toUpperCase() }}
{{ currentTime }}
Last update: {{ formatTime(timestamp) }}
IBKR
{{ system.ibkr_connected ? 'CONNECTED' : 'DISCONNECTED' }}
UPTIME
{{ formatUptime(system.uptime_seconds) }}
INSTRUMENTS
{{ system.total_instruments }}
ACTIVE POIs
{{ system.total_active_pois }}
OPEN TRADES
{{ system.total_open_trades }}
TOTAL R
{{ system.total_r >= 0 ? '+' : '' }}{{ system.total_r.toFixed(1) }}R
{{ inst.symbol }} {{ inst.exchange }}
{{ getDisplayName(inst.symbol) }}
{{ inst.last_price ? formatPrice(inst.last_price, inst.symbol) : '---' }}
{{ inst.last_candle_time ? formatTime(inst.last_candle_time) : 'No data' }}
POIs
{{ inst.long_pois }}L / {{ inst.short_pois }}S
ENTRIES
{{ inst.active_entries }}
TRADES
{{ inst.total_trades }} ({{ inst.wins }}W/{{ inst.losses }}L)
TOTAL R
{{ inst.total_r >= 0 ? '+' : '' }}{{ inst.total_r.toFixed(1) }}
{{ inst.open_trades }} OPEN TRADE{{ inst.open_trades > 1 ? 'S' : '' }}

Activity Overview

{{ period.label }}
Trades {{ period.trades.trades }}
Win Rate {{ period.trades.win_rate }}%
W/L {{ period.trades.wins }}W / {{ period.trades.losses }}L
Total R {{ period.trades.total_r >= 0 ? '+' : '' }}{{ period.trades.total_r }}R
Events {{ period.events.total }}

Recent Trades

No trades yet
Time Symbol Direction Entry Exit R Status
{{ formatDateTime(trade.entry_time) }} {{ trade.symbol }} {{ trade.direction }} {{ trade.entry_price?.toFixed(2) }} {{ trade.exit_price?.toFixed(2) || '-' }} {{ trade.r_multiple ? (trade.r_multiple >= 0 ? '+' : '') + trade.r_multiple.toFixed(2) + 'R' : '-' }} {{ trade.status === 'open' ? 'OPEN' : trade.result?.toUpperCase() }}

Event Log

No events found
{{ event.event_type }} {{ event.symbol }}
{{ formatDateTime(event.created_at) }}
{{ key }}: {{ formatValue(value) }}

System Health

DATABASE
{{ health.database_connected ? 'CONNECTED' : 'DISCONNECTED' }}
{{ health.database_latency_ms }}ms latency
IBKR
{{ health.ibkr_connected ? 'CONNECTED' : 'DISCONNECTED' }}
{{ health.ibkr_latency_ms }}ms latency
RUNNER
{{ health.runner_status?.toUpperCase() || 'UNKNOWN' }}
{{ formatUptime(health.runner_uptime_seconds) }} uptime
INSTRUMENTS OK
{{ health.instruments_ok }}
of {{ health.total_instruments }}
WARNINGS
{{ health.instruments_warning }}
instruments
CRITICAL
{{ health.instruments_critical }}
instruments
{{ health.total_unexpected_gaps }} Unexpected Gap{{ health.total_unexpected_gaps > 1 ? 's' : '' }} Detected

Some instruments have gaps in their candle data that may need to be filled.

Instrument Status

{{ inst.symbol }}
Last candle: {{ inst.last_candle_time ? formatDateTime(inst.last_candle_time) : 'N/A' }}
Gap: {{ inst.missing_candles }} candle{{ inst.missing_candles !== 1 ? 's' : '' }}
Candles: {{ inst.candle_count.toLocaleString() }}
{{ inst.unexpected_gaps }} unexpected gap{{ inst.unexpected_gaps > 1 ? 's' : '' }}

Health Check History

No health checks recorded yet
Time Type IBKR DB Gaps
{{ formatDateTime(check.created_at) }} {{ check.check_type }} {{ check.ibkr_connected ? '✓' : '✗' }} {{ check.db_connected ? '✓' : '✗' }} ({{ check.db_latency_ms }}ms) {{ check.total_unexpected_gaps }}
{{ healthCheckResult.success ? 'Health Check Complete' : 'Health Check Failed' }}
{{ healthCheckResult.message }}
Completed in {{ healthCheckResult.duration_ms }}ms

Recovery Dashboard

Command #{{ activeCommand.id }}: {{ activeCommand.command_type }} ({{ activeCommand.status }})
{{ activeCommand.result.message }}
Error: {{ activeCommand.error_message }}
Recovery in Progress
UNEXPECTED GAPS
{{ recovery.total_unexpected_gaps || 0 }}
INSTRUMENTS WITH GAPS
{{ recovery.instruments_with_gaps?.length || 0 }}
LAST SCAN
{{ recovery.scan_time ? formatDateTime(recovery.scan_time) : 'Never' }}

Detected Gaps

Symbol Start End Gap Hours Weekend
{{ gap.symbol }} {{ formatDateTime(gap.gap_start) }} {{ formatDateTime(gap.gap_end) }} {{ gap.missing_bars }} candles {{ gap.gap_hours }}h {{ gap.is_weekend ? 'Yes' : 'No' }}

POI Summary

{{ poi.symbol }}
{{ poi.active_pois }}
POIs

POI Verification Results

{{ symbol }}
{{ result.active_pois }} active {{ result.stale_pois }} stale

Recovery History

No recovery operations recorded
{{ action.action }} {{ action.target }}
{{ formatDateTime(action.created_at) }}
{{ recoveryResult.message }}

Gateway Control

Docker Not Available

Docker socket is not accessible. Gateway control is disabled. Ensure Docker socket is mounted to the dashboard container.

Paper Gateway

{{ gateway.paper?.container_name }}
Status: {{ gateway.paper?.status?.toUpperCase() || 'UNKNOWN' }}
Health: {{ gateway.paper?.health?.toUpperCase() || 'NONE' }}
Uptime: {{ formatUptime(gateway.paper?.uptime_seconds) }}

Live Gateway

{{ gateway.live?.container_name }}
PRODUCTION
Status: {{ gateway.live?.status?.toUpperCase() || 'UNKNOWN' }}
Health: {{ gateway.live?.health?.toUpperCase() || 'NONE' }}
Uptime: {{ formatUptime(gateway.live?.uptime_seconds) }}

VNC Access (for 2FA)

After restarting a gateway, use VNC to complete 2FA authentication.

Paper VNC Port:
5901
Live VNC Port:
5900

{{ gatewayLogs.gateway }} Gateway Logs

{{ gatewayLogs.content || 'Loading...' }}

Confirm Live Gateway Restart

This will disconnect live trading and require 2FA re-authentication. Any open positions will continue but new orders cannot be placed until reconnected.

{{ gatewayResult.message }}
Loading...
Connecting to database
Error
{{ error }}