Fájl részletek

Ezen az oldalon egy konkrét fájl aktuális állapotát tudod megnézni.

Vissza a fájltérképhez Csak változott Stratégia-labor Monitor főoldal ← Előző módosult Következő módosult →
Fájl útvonala
/opt/bots/saturnus_monitor/app/templates/analysis_playground.html
Létezik most?
IGEN
Aktuális státusz
MODIFIED
Méret
24320
Módosítás ideje
1777141487.9146042
Korábbi baseline időpont
1776111060.7483814
SHA256 rövid

Előnézet (első 120 sor)

<!doctype html>
<html lang="hu">
<head>
  <meta charset="utf-8">
  <title>Saturnus Monitor – Stratégia-labor</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;
    }
    .card {
      background: #fff;
      border-radius: 14px;
      padding: 16px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.08);
      margin-bottom: 20px;
    }
    .grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 16px;
      margin-bottom: 20px;
    }
    .grid-2 {
      display: grid;
      grid-template-columns: 1.05fr 1fr;
      gap: 16px;
      margin-bottom: 20px;
    }
    .k {
      color: #666;
      font-size: 13px;
      margin-bottom: 4px;
    }
    .v {
      font-size: 22px;
      font-weight: bold;
      margin-bottom: 10px;
    }
    .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;
    }
    form .row {
      display: grid;
      grid-template-columns: 48px 1fr 150px;
      gap: 12px;
      align-items: center;
      margin-bottom: 10px;
    }
    form .row-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 10px;
    }
    label {
      font-size: 14px;
      font-weight: bold;
    }
    input[type="text"], input[type="number"], select {
      width: 100%;
      padding: 8px 10px;
      border: 1px solid #d0d7de;
      border-radius: 8px;
      font-size: 14px;
      box-sizing: border-box;
      background: #fff;
    }
    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;
    }
    .chart-card {
      background: #fff;
      border-radius: 14px;
      padding: 16px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.08);
      margin-bottom: 20px;
    }

Csak változott diff sorok

--- baseline +++ current @@ -178,7 +178,7 @@ - <a class="secondary-link" href="/naplo/elemzes/export.csv?rules_source={{ params.rules_source }}&start_mode={{ params.start_mode }}&initial_capital={{ params.initial_capital }}&fee_pct={{ params.fee_pct_ui }}&slippage_pct={{ params.slippage_pct_ui }}&rows_limit={{ params.rows_limit_label }}&panic_buy_confirm_ticks={{ params.panic_buy_confirm_ticks }}&ma_filter_enabled={{ '1' if params.ma_filter_enabled else '0' }}&ma_period={{ params.ma_period }}&std_sell_enabled={{ '1' if params.std_sell_enabled else '0' }}&panic_sell_enabled={{ '1' if params.panic_sell_enabled else '0' }}&std_buy_enabled={{ '1' if params.std_buy_enabled else '0' }}&panic_buy_enabled={{ '1' if params.panic_buy_enabled else '0' }}&std_sell_pct={{ params.std_sell_pct_ui }}&recovery_sell_retrace_pct={{ params.recovery_sell_retrace_pct_ui }}&panic_sell_pct={{ params.panic_sell_pct_ui }}&catastrophe_sell_pct={{ params.catastrophe_sell_pct_ui }}&std_buy_pct={{ params.std_buy_pct_ui }}&recovery_buy_rebound_pct={{ params.recovery_buy_rebound_pct_ui }}&panic_buy_pct={{ params.panic_buy_pct_ui }}&catastrophe_buy_pct={{ params.catastrophe_buy_pct_ui }}">Szimulált trade-ek CSV export</a> + <a class="secondary-link" href="/naplo/elemzes/export.csv?rules_source={{ params.rules_source }}&start_mode={{ params.start_mode }}&initial_capital={{ params.initial_capital }}&fee_pct={{ params.fee_pct_ui }}&slippage_pct={{ params.slippage_pct_ui }}&rows_limit={{ params.rows_limit_label }}&panic_buy_confirm_ticks={{ params.panic_buy_confirm_ticks }}&ma_filter_enabled={{ '1' if params.ma_filter_enabled else '0' }}&ma_period={{ params.ma_period }}&ma_sideways_band_pct={{ params.ma_sideways_band_pct_ui }}&std_sell_enabled={{ '1' if params.std_sell_enabled else '0' }}&panic_sell_enabled={{ '1' if params.panic_sell_enabled else '0' }}&std_buy_enabled={{ '1' if params.std_buy_enabled else '0' }}&panic_buy_enabled={{ '1' if params.panic_buy_enabled else '0' }}&std_sell_pct={{ params.std_sell_pct_ui }}&recovery_sell_retrace_pct={{ params.recovery_sell_retrace_pct_ui }}&recovery_profit_target_pct={{ params.recovery_profit_target_pct_ui }}&sell_reversal_min_pct={{ params.sell_reversal_min_pct_ui }}&panic_sell_pct={{ params.panic_sell_pct_ui }}&catastrophe_sell_pct={{ params.catastrophe_sell_pct_ui }}&std_buy_pct={{ params.std_buy_pct_ui }}&recovery_buy_rebound_pct={{ params.recovery_buy_rebound_pct_ui }}&panic_buy_pct={{ params.panic_buy_pct_ui }}&catastrophe_buy_pct={{ params.catastrophe_buy_pct_ui }}">Szimulált trade-ek CSV export</a> @@ -195,7 +195,7 @@ - <strong>LAB override</strong> módban az itt megadott értékekkel fut a szimuláció. + <strong>Kézi labor paraméterek</strong> esetén az itt megadott értékekkel fut a szimuláció. @@ -206,8 +206,8 @@ - <option value="lab" {% if params.rules_source == 'lab' %}selected{% endif %}>LAB override / effective lab</option> - <option value="canonical" {% if params.rules_source == 'canonical' %}selected{% endif %}>Kanonikus rules.json / effective bot</option> + <option value="lab" {% if params.rules_source == 'lab' %}selected{% endif %}>Kézi labor paraméterek</option> + <option value="canonical" {% if params.rules_source == 'canonical' %}selected{% endif %}>Canonical alap + kézi felülírás</option> @@ -257,6 +257,11 @@ + + <div class="row"> + <label for="ma_sideways_band_pct">MA oldalazási sáv %</label> + <input type="text" inputmode="decimal" name="ma_sideways_band_pct" id="ma_sideways_band_pct" value="{{ params.ma_sideways_band_pct_ui|default('0,05') }}"> + </div> @@ -283,7 +288,7 @@ - <input type="text" inputmode="decimal" name="std_sell_pct" id="std_sell_pct" value="{{ params.std_sell_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="std_sell_pct" id="std_sell_pct" value="{{ params.std_sell_pct_ui }}"> @@ -292,12 +297,17 @@ - <input type="text" inputmode="decimal" name="recovery_sell_retrace_pct" id="recovery_sell_retrace_pct" value="{{ params.recovery_sell_retrace_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="recovery_sell_retrace_pct" id="recovery_sell_retrace_pct" value="{{ params.recovery_sell_retrace_pct_ui }}"> - <input type="text" inputmode="decimal" name="recovery_profit_target_pct" id="recovery_profit_target_pct" value="{{ params.recovery_profit_target_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="recovery_profit_target_pct" id="recovery_profit_target_pct" value="{{ params.recovery_profit_target_pct_ui }}"> + </div> + <div class="row"> + <div></div> + <label for="sell_reversal_min_pct">SELL reversal minimum %</label> + <input type="text" inputmode="decimal" name="sell_reversal_min_pct" id="sell_reversal_min_pct" value="{{ params.sell_reversal_min_pct_ui }}"> @@ -309,7 +319,7 @@ - <input type="text" inputmode="decimal" name="panic_sell_pct" id="panic_sell_pct" value="{{ params.panic_sell_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="panic_sell_pct" id="panic_sell_pct" value="{{ params.panic_sell_pct_ui }}"> @@ -332,7 +342,7 @@ - <input type="text" inputmode="decimal" name="std_buy_pct" id="std_buy_pct" value="{{ params.std_buy_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="std_buy_pct" id="std_buy_pct" value="{{ params.std_buy_pct_ui }}"> @@ -341,7 +351,7 @@ - <input type="text" inputmode="decimal" name="recovery_buy_rebound_pct" id="recovery_buy_rebound_pct" value="{{ params.recovery_buy_rebound_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="recovery_buy_rebound_pct" id="recovery_buy_rebound_pct" value="{{ params.recovery_buy_rebound_pct_ui }}"> @@ -356,7 +366,7 @@ - <input type="text" inputmode="decimal" name="panic_buy_pct" id="panic_buy_pct" value="{{ params.panic_buy_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="panic_buy_pct" id="panic_buy_pct" value="{{ params.panic_buy_pct_ui }}"> @@ -579,6 +589,8 @@ + setVal('recovery_profit_target_pct', pctUi(data.recovery_profit_target_pct)); + setVal('sell_reversal_min_pct', pctUi(data.sell_reversal_min_pct));

Teljes diff

--- baseline +++ current @@ -178,7 +178,7 @@ <a href="/naplo/fajlok">Fájltérkép</a> <a href="/naplo/">Monitor főoldal</a> <a href="/naplo/download/prices">prices.csv letöltése</a> - <a class="secondary-link" href="/naplo/elemzes/export.csv?rules_source={{ params.rules_source }}&start_mode={{ params.start_mode }}&initial_capital={{ params.initial_capital }}&fee_pct={{ params.fee_pct_ui }}&slippage_pct={{ params.slippage_pct_ui }}&rows_limit={{ params.rows_limit_label }}&panic_buy_confirm_ticks={{ params.panic_buy_confirm_ticks }}&ma_filter_enabled={{ '1' if params.ma_filter_enabled else '0' }}&ma_period={{ params.ma_period }}&std_sell_enabled={{ '1' if params.std_sell_enabled else '0' }}&panic_sell_enabled={{ '1' if params.panic_sell_enabled else '0' }}&std_buy_enabled={{ '1' if params.std_buy_enabled else '0' }}&panic_buy_enabled={{ '1' if params.panic_buy_enabled else '0' }}&std_sell_pct={{ params.std_sell_pct_ui }}&recovery_sell_retrace_pct={{ params.recovery_sell_retrace_pct_ui }}&panic_sell_pct={{ params.panic_sell_pct_ui }}&catastrophe_sell_pct={{ params.catastrophe_sell_pct_ui }}&std_buy_pct={{ params.std_buy_pct_ui }}&recovery_buy_rebound_pct={{ params.recovery_buy_rebound_pct_ui }}&panic_buy_pct={{ params.panic_buy_pct_ui }}&catastrophe_buy_pct={{ params.catastrophe_buy_pct_ui }}">Szimulált trade-ek CSV export</a> + <a class="secondary-link" href="/naplo/elemzes/export.csv?rules_source={{ params.rules_source }}&start_mode={{ params.start_mode }}&initial_capital={{ params.initial_capital }}&fee_pct={{ params.fee_pct_ui }}&slippage_pct={{ params.slippage_pct_ui }}&rows_limit={{ params.rows_limit_label }}&panic_buy_confirm_ticks={{ params.panic_buy_confirm_ticks }}&ma_filter_enabled={{ '1' if params.ma_filter_enabled else '0' }}&ma_period={{ params.ma_period }}&ma_sideways_band_pct={{ params.ma_sideways_band_pct_ui }}&std_sell_enabled={{ '1' if params.std_sell_enabled else '0' }}&panic_sell_enabled={{ '1' if params.panic_sell_enabled else '0' }}&std_buy_enabled={{ '1' if params.std_buy_enabled else '0' }}&panic_buy_enabled={{ '1' if params.panic_buy_enabled else '0' }}&std_sell_pct={{ params.std_sell_pct_ui }}&recovery_sell_retrace_pct={{ params.recovery_sell_retrace_pct_ui }}&recovery_profit_target_pct={{ params.recovery_profit_target_pct_ui }}&sell_reversal_min_pct={{ params.sell_reversal_min_pct_ui }}&panic_sell_pct={{ params.panic_sell_pct_ui }}&catastrophe_sell_pct={{ params.catastrophe_sell_pct_ui }}&std_buy_pct={{ params.std_buy_pct_ui }}&recovery_buy_rebound_pct={{ params.recovery_buy_rebound_pct_ui }}&panic_buy_pct={{ params.panic_buy_pct_ui }}&catastrophe_buy_pct={{ params.catastrophe_buy_pct_ui }}">Szimulált trade-ek CSV export</a> </div> <div class="grid-2" style="margin-top:20px;"> @@ -195,7 +195,7 @@ {% endif %} </div> <div class="small" style="margin-top:8px;"> - <strong>LAB override</strong> módban az itt megadott értékekkel fut a szimuláció. + <strong>Kézi labor paraméterek</strong> esetén az itt megadott értékekkel fut a szimuláció. A <strong>Betöltés a Beállításokból</strong> gomb a runner aktuális százalékait tölti be ide. <strong>Kanonikus</strong> módban a közös rules.json / effective bot szabályhalmaz érvényesül. Közös szabályforrás szerkesztése: <strong>/rules</strong> @@ -206,8 +206,8 @@ <div> <label for="rules_source">Szabályforrás</label> <select name="rules_source" id="rules_source" onchange="this.form.submit()"> - <option value="lab" {% if params.rules_source == 'lab' %}selected{% endif %}>LAB override / effective lab</option> - <option value="canonical" {% if params.rules_source == 'canonical' %}selected{% endif %}>Kanonikus rules.json / effective bot</option> + <option value="lab" {% if params.rules_source == 'lab' %}selected{% endif %}>Kézi labor paraméterek</option> + <option value="canonical" {% if params.rules_source == 'canonical' %}selected{% endif %}>Canonical alap + kézi felülírás</option> </select> </div> <div> @@ -257,6 +257,11 @@ <label for="ma_period">MA periódus</label> <input type="number" step="1" min="5" name="ma_period" id="ma_period" value="{{ params.ma_period }}"> </div> + + <div class="row"> + <label for="ma_sideways_band_pct">MA oldalazási sáv %</label> + <input type="text" inputmode="decimal" name="ma_sideways_band_pct" id="ma_sideways_band_pct" value="{{ params.ma_sideways_band_pct_ui|default('0,05') }}"> + </div> </div> <div class="row-2"> @@ -283,7 +288,7 @@ <input type="checkbox" name="std_sell_enabled" value="1" {% if params.std_sell_enabled %}checked{% endif %}> </div> <label for="std_sell_pct">csúcs - %</label> - <input type="text" inputmode="decimal" name="std_sell_pct" id="std_sell_pct" value="{{ params.std_sell_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="std_sell_pct" id="std_sell_pct" value="{{ params.std_sell_pct_ui }}"> </div> </div> @@ -292,12 +297,17 @@ <div class="row"> <div></div> <label for="recovery_sell_retrace_pct">csúcs - % (recovery)</label> - <input type="text" inputmode="decimal" name="recovery_sell_retrace_pct" id="recovery_sell_retrace_pct" value="{{ params.recovery_sell_retrace_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="recovery_sell_retrace_pct" id="recovery_sell_retrace_pct" value="{{ params.recovery_sell_retrace_pct_ui }}"> </div> <div class="row"> <div></div> <label for="recovery_profit_target_pct">profit cél % (recovery)</label> - <input type="text" inputmode="decimal" name="recovery_profit_target_pct" id="recovery_profit_target_pct" value="{{ params.recovery_profit_target_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="recovery_profit_target_pct" id="recovery_profit_target_pct" value="{{ params.recovery_profit_target_pct_ui }}"> + </div> + <div class="row"> + <div></div> + <label for="sell_reversal_min_pct">SELL reversal minimum %</label> + <input type="text" inputmode="decimal" name="sell_reversal_min_pct" id="sell_reversal_min_pct" value="{{ params.sell_reversal_min_pct_ui }}"> </div> </div> @@ -309,7 +319,7 @@ <input type="checkbox" name="panic_sell_enabled" value="1" {% if params.panic_sell_enabled %}checked{% endif %}> </div> <label for="panic_sell_pct">bázis - %</label> - <input type="text" inputmode="decimal" name="panic_sell_pct" id="panic_sell_pct" value="{{ params.panic_sell_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="panic_sell_pct" id="panic_sell_pct" value="{{ params.panic_sell_pct_ui }}"> </div> </div> @@ -332,7 +342,7 @@ <input type="checkbox" name="std_buy_enabled" value="1" {% if params.std_buy_enabled %}checked{% endif %}> </div> <label for="std_buy_pct">mélypont + %</label> - <input type="text" inputmode="decimal" name="std_buy_pct" id="std_buy_pct" value="{{ params.std_buy_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="std_buy_pct" id="std_buy_pct" value="{{ params.std_buy_pct_ui }}"> </div> </div> @@ -341,7 +351,7 @@ <div class="row"> <div></div> <label for="recovery_buy_rebound_pct">mélypont + % (recovery)</label> - <input type="text" inputmode="decimal" name="recovery_buy_rebound_pct" id="recovery_buy_rebound_pct" value="{{ params.recovery_buy_rebound_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="recovery_buy_rebound_pct" id="recovery_buy_rebound_pct" value="{{ params.recovery_buy_rebound_pct_ui }}"> </div> <div class="small" style="margin-top:8px;"> Buy-hierarchia v2: <strong>BUY_STANDARD &lt; BUY_RECOVERY &lt; BASE &lt; BUY_PANIC &lt; BUY_CATASTROPHE</strong>. @@ -356,7 +366,7 @@ <input type="checkbox" name="panic_buy_enabled" value="1" {% if params.panic_buy_enabled %}checked{% endif %}> </div> <label for="panic_buy_pct">bázis + %</label> - <input type="text" inputmode="decimal" name="panic_buy_pct" id="panic_buy_pct" value="{{ params.panic_buy_pct_ui }}" {% if params.rules_source == 'canonical' %}disabled{% endif %}> + <input type="text" inputmode="decimal" name="panic_buy_pct" id="panic_buy_pct" value="{{ params.panic_buy_pct_ui }}"> </div> </div> @@ -579,6 +589,8 @@ setVal('std_sell_pct', pctUi(data.std_sell_pct)); setVal('recovery_sell_retrace_pct', pctUi(data.recovery_sell_retrace_pct)); + setVal('recovery_profit_target_pct', pctUi(data.recovery_profit_target_pct)); + setVal('sell_reversal_min_pct', pctUi(data.sell_reversal_min_pct)); setVal('panic_sell_pct', pctUi(data.panic_sell_pct)); setVal('catastrophe_sell_pct', pctUi(data.catastrophe_sell_pct));