This commit is contained in:
Dobromir Popov
2025-09-08 11:44:15 +03:00
parent fe6763c4ba
commit 4fe952dbee
6 changed files with 743 additions and 141 deletions

View File

@@ -19,13 +19,72 @@ class DashboardLayoutManager:
return html.Div([
self._create_header(),
self._create_interval_component(),
self._create_main_content()
self._create_main_content(),
self._create_prediction_tracking_section() # NEW: Prediction tracking
], className="container-fluid", style={
"backgroundColor": "#111827",
"minHeight": "100vh",
"color": "#f8f9fa"
})
def _create_prediction_tracking_section(self):
"""Create prediction tracking and model performance section"""
return html.Div([
html.Div([
html.Div([
html.H6([
html.I(className="fas fa-brain me-2"),
"🧠 Model Predictions & Performance Tracking"
], className="text-light mb-3"),
# Summary cards row
html.Div([
html.Div([
html.Div([
html.H6("0", id="total-predictions-count", className="mb-0 text-primary"),
html.Small("Total Predictions", className="text-light")
], className="card-body text-center p-2 bg-dark")
], className="card col-md-3 mx-1 bg-dark border-secondary"),
html.Div([
html.Div([
html.H6("0", id="pending-predictions-count", className="mb-0 text-warning"),
html.Small("Pending Resolution", className="text-light")
], className="card-body text-center p-2 bg-dark")
], className="card col-md-3 mx-1 bg-dark border-secondary"),
html.Div([
html.Div([
html.H6("0", id="active-models-count", className="mb-0 text-info"),
html.Small("Active Models", className="text-light")
], className="card-body text-center p-2 bg-dark")
], className="card col-md-3 mx-1 bg-dark border-secondary"),
html.Div([
html.Div([
html.H6("0.0", id="total-rewards-sum", className="mb-0 text-success"),
html.Small("Total Rewards", className="text-light")
], className="card-body text-center p-2 bg-dark")
], className="card col-md-3 mx-1 bg-dark border-secondary")
], className="row mb-3"),
# Charts row
html.Div([
html.Div([
html.H6("Recent Predictions Timeline", className="mb-2 text-light"),
dcc.Graph(id="prediction-timeline-chart", style={"height": "300px"})
], className="col-md-6"),
html.Div([
html.H6("Model Performance", className="mb-2 text-light"),
dcc.Graph(id="model-performance-chart", style={"height": "300px"})
], className="col-md-6")
], className="row")
], className="p-3")
], className="card bg-dark border-secondary mb-3")
], className="mt-3")
def _create_header(self):
"""Create the dashboard header"""
trading_mode = "SIMULATION" if (not self.trading_executor or