Fájl részletek
Ezen az oldalon egy konkrét fájl aktuális állapotát tudod megnézni.
Fájl útvonala
/opt/bots/saturnus_monitor/app/templates/dashboard.html
Aktuális státusz
MODIFIED
Módosítás ideje
1778952032.1747887
Korábbi baseline időpont
1775672480.146238
Előnézet (első 120 sor)
<!doctype html>
<html lang="hu">
<head>
<meta charset="utf-8">
<title>Saturnus Monitor</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
background: #f5f6fa;
color: #222;
}
h1, h2, h3 {
margin-top: 0;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 16px;
margin-bottom: 20px;
}
.card {
background: #fff;
border-radius: 14px;
padding: 16px;
box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}
.k {
color: #666;
font-size: 13px;
margin-bottom: 4px;
}
.v {
font-size: 22px;
font-weight: bold;
margin-bottom: 8px;
}
.small {
font-size: 13px;
color: #555;
}
.muted {
color: #777;
}
.actions a, .actions button {
display: inline-block;
margin-right: 10px;
margin-top: 8px;
text-decoration: none;
background: #1f6feb;
color: #fff;
padding: 8px 12px;
border-radius: 8px;
font-size: 14px;
border: none;
cursor: pointer;
}
.secondary-link {
background: #374151 !important;
}
.chart-card {
background: #fff;
border-radius: 14px;
padding: 16px;
box-shadow: 0 2px 10px rgba(0,0,0,0.08);
margin-bottom: 20px;
}
table {
width: 100%;
border-collapse: collapse;
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 10px rgba(0,0,0,0.08);
margin-bottom: 20px;
}
th, td {
padding: 10px 8px;
border-bottom: 1px solid #eee;
text-align: left;
font-size: 13px;
vertical-align: top;
}
th {
background: #eef3ff;
}
.tag-rule {
display: inline-block;
background: #eef3ff;
color: #194fb5;
padding: 3px 8px;
border-radius: 999px;
font-size: 12px;
font-weight: bold;
}
.tag-trade {
display: inline-block;
background: #edfdf3;
color: #0a7f2e;
padding: 3px 8px;
border-radius: 999px;
font-size: 12px;
font-weight: bold;
}
#recalc-msg {
min-height: 18px;
}
</style>
</head>
<body>
<h1>Saturnus Monitor</h1>
<p class="small">Read-only monitor UI. Nem avatkozik be a bot működésébe.</p>
<div style="margin: 14px 0 18px 0; padding: 12px; border: 1px solid #dbe4ff; border-radius: 10px; background: #f8fbff;">
<form method="get" action="" style="display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; margin:0;">
<div>
<label for="rules_source" style="display:block; font-size:12px; font-weight:bold; color:#194fb5; margin-bottom:6px;">
Szabályforrás
</label>
Csak változott diff sorok
--- baseline
+++ current
@@ -242,6 +242,69 @@
+
+ <h2>MA Trendmotor (Phase-1)</h2>
+
+ <div class="grid">
+
+ <div class="card">
+ <div class="k">Trend state</div>
+ <div class="v">{{ state_raw.get("trend_state", "—") }}</div>
+
+ <div class="k">MA trend state</div>
+ <div class="small">{{ state_raw.get("ma_trend_state", "—") }}</div>
+ </div>
+
+ <div class="card">
+ <div class="k">Raw slope</div>
+ <div class="v">{{ state_raw.get("ma_slope_raw", "—") }}</div>
+
+ <div class="k">EMA slope</div>
+ <div class="small">{{ state_raw.get("ma_slope_ema", "—") }}</div>
+ </div>
+
+ <div class="card">
+ <div class="k">Raw state</div>
+ <div class="v">{{ state_raw.get("ma_raw_state", "—") }}</div>
+
+ <div class="k">Warmup ready</div>
+ <div class="small">{{ state_raw.get("ma_warmup_ready", "—") }}</div>
+ </div>
+
+ <div class="card">
+ <div class="k">Votes</div>
+
+ <div class="small">
+ Rising: {{ state_raw.get("ma_votes_rising", "—") }}
+ </div>
+
+ <div class="small">
+ Falling: {{ state_raw.get("ma_votes_falling", "—") }}
+ </div>
+
+ <div class="small">
+ Sideways: {{ state_raw.get("ma_votes_sideways", "—") }}
+ </div>
+ </div>
+
+ <div class="card">
+ <div class="k">Confirm window</div>
+ <div class="v">{{ state_raw.get("ma_confirm_window", "—") }}</div>
+
+ <div class="k">Confirm need</div>
+ <div class="small">{{ state_raw.get("ma_confirm_need", "—") }}</div>
+ </div>
+
+ <div class="card">
+ <div class="k">Enter band</div>
+ <div class="v">{{ state_raw.get("ma_band_enter_pct", "—") }}</div>
+
+ <div class="k">Exit band</div>
+ <div class="small">{{ state_raw.get("ma_band_exit_pct", "—") }}</div>
+ </div>
+
+ </div>
+
Teljes diff
--- baseline
+++ current
@@ -242,6 +242,69 @@
</p>
<p class="small muted" id="analysis-note">{{ analysis_summary.note }}</p>
+
+ <h2>MA Trendmotor (Phase-1)</h2>
+
+ <div class="grid">
+
+ <div class="card">
+ <div class="k">Trend state</div>
+ <div class="v">{{ state_raw.get("trend_state", "—") }}</div>
+
+ <div class="k">MA trend state</div>
+ <div class="small">{{ state_raw.get("ma_trend_state", "—") }}</div>
+ </div>
+
+ <div class="card">
+ <div class="k">Raw slope</div>
+ <div class="v">{{ state_raw.get("ma_slope_raw", "—") }}</div>
+
+ <div class="k">EMA slope</div>
+ <div class="small">{{ state_raw.get("ma_slope_ema", "—") }}</div>
+ </div>
+
+ <div class="card">
+ <div class="k">Raw state</div>
+ <div class="v">{{ state_raw.get("ma_raw_state", "—") }}</div>
+
+ <div class="k">Warmup ready</div>
+ <div class="small">{{ state_raw.get("ma_warmup_ready", "—") }}</div>
+ </div>
+
+ <div class="card">
+ <div class="k">Votes</div>
+
+ <div class="small">
+ Rising: {{ state_raw.get("ma_votes_rising", "—") }}
+ </div>
+
+ <div class="small">
+ Falling: {{ state_raw.get("ma_votes_falling", "—") }}
+ </div>
+
+ <div class="small">
+ Sideways: {{ state_raw.get("ma_votes_sideways", "—") }}
+ </div>
+ </div>
+
+ <div class="card">
+ <div class="k">Confirm window</div>
+ <div class="v">{{ state_raw.get("ma_confirm_window", "—") }}</div>
+
+ <div class="k">Confirm need</div>
+ <div class="small">{{ state_raw.get("ma_confirm_need", "—") }}</div>
+ </div>
+
+ <div class="card">
+ <div class="k">Enter band</div>
+ <div class="v">{{ state_raw.get("ma_band_enter_pct", "—") }}</div>
+
+ <div class="k">Exit band</div>
+ <div class="small">{{ state_raw.get("ma_band_exit_pct", "—") }}</div>
+ </div>
+
+ </div>
+
<h2>Aktuális állapot</h2>
<div class="grid">