restart_server.bat startet BEIDE Server (8000 + 8001) - behebt HL-Kill-Bug

User-Vorgabe: "bei restart_server.bat sollten beide server neugestartet werden".

Dabei echten Bug gefunden: die Kill-Zeile matcht '*server.py*' und traf damit
BEIDE Prozesse -- der HL-Server wurde bei jedem MT5-Neustart still mit-erschlagen
und nie wieder gestartet. Folgen:
  - Luecken in der Lead-Lag-/Order-Flow-Datensammlung (72h Spanne, nur 2292 Samples)
  - Liquiditaetslinien verschwanden aus dem MT5-Chart

Jetzt: erst HL-Dashboard (8001, versteckt via start_hidden.vbs, wartet max 10s
aufs Lauschen), dann Oil-Backend (8000) im Vordergrund. Fail-safe wenn das
HL-Projekt fehlt.

Verifiziert: vorher lief nur 8000 (8001 tot), nachher beide; LQ-Zeilen nach 5s
wieder in sr_levels.csv.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-07-30 15:52:27 +02:00
co-authored by Claude Opus 4.8
parent 7f2285ddb3
commit f64677895e
2 changed files with 38 additions and 5 deletions
+9
View File
@@ -128,6 +128,15 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
## Workflows / Befehle
- **Änderungen aktivieren:** `restart_server.bat` (lädt core neu). Auto-Start:
Aufgabe `OilTradingServer` (Login, versteckt via VBS).
**Startet seit 2026-07-30 BEIDE Server** (User-Vorgabe): erst das
**Hyperliquid-Dashboard** (Port 8001, versteckt via dessen `start_hidden.vbs`,
wartet max. 10 s aufs Lauschen), dann das Oil-Backend (8000) im Vordergrund.
**Grund + behobener Bug:** die Kill-Zeile trifft mit `*server.py*` BEIDE Prozesse —
vorher wurde der HL-Server bei jedem MT5-Neustart still mit-erschlagen und nie wieder
gestartet. Das riss die **Lücken in die Lead-Lag-/Order-Flow-Datensammlung** (72 h
Spanne, aber nur 2292 Samples) UND ließ die Liquiditätslinien im Chart verschwinden.
Fail-safe: fehlt das HL-Projekt (`..\HyperLiquid-WTI Trader`), startet nur 8000 mit
Hinweis. Auto-Start des HL-Servers separat: Aufgabe `HyperliquidDashboard` (Login).
- **Web-Assets:** Browser cacht hart → in `web/index.html` `?v=N` **hochzählen**
bei jeder JS/CSS-Änderung; Server sendet `Cache-Control: no-store`. Hängt der
Handy-Cache: Inkognito oder Seite mit frischem `?xN` öffnen.
+29 -5
View File
@@ -1,19 +1,43 @@
@echo off
REM ============================================================
REM Oil Trading Agent - Web-Backend NEU STARTEN
REM Beendet einen laufenden server.py und startet ihn frisch.
REM Oil Trading Agent - BEIDE Server neu starten
REM 1) Hyperliquid-Dashboard (Port 8001, versteckt im Hintergrund)
REM 2) Oil Trading Backend (Port 8000, in diesem Fenster)
REM
REM ⚠ Warum beide: der MT5-Bot holt die echten Liquiditaets-Waende vom
REM HL-Dashboard (127.0.0.1:8001/api/walls). Ausserdem killte die alte
REM Fassung den HL-Server ungewollt mit (Muster '*server.py*' trifft beide)
REM -> das riss die Luecken in die Order-Flow-/Lead-Lag-Datensammlung.
REM Nutzt absolute Pfade (PATH-unabhaengig).
REM ============================================================
title Oil Trading Server - Restart
cd /d "%~dp0"
set "PS=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
set "PY=C:\Users\ah\AppData\Local\Programs\Python\Python312\python.exe"
set "HLDIR=%~dp0..\HyperLiquid-WTI Trader"
echo Beende laufenden Server ...
echo Beende laufende Server (8000 + 8001) ...
"%PS%" -NoProfile -Command "Get-CimInstance Win32_Process | Where-Object { $_.Name -eq 'python.exe' -and $_.CommandLine -like '*server.py*' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force; Write-Host (' gestoppt: PID ' + $_.ProcessId) }; Start-Sleep -Seconds 2"
echo Starte Server neu ...
REM ── 1) Hyperliquid-Dashboard zuerst (versteckt), damit die Waende schon
REM bereitstehen, wenn der Bot den ersten Level-Export schreibt.
if exist "%HLDIR%\server.py" (
echo Starte Hyperliquid-Dashboard ^(8001, Hintergrund^) ...
if exist "%HLDIR%\start_hidden.vbs" (
wscript.exe "%HLDIR%\start_hidden.vbs"
) else (
"%PS%" -NoProfile -Command "Start-Process -FilePath '%PY%' -ArgumentList '-X','utf8','server.py' -WorkingDirectory '%HLDIR%' -WindowStyle Hidden -RedirectStandardOutput '%HLDIR%\server_out.log' -RedirectStandardError '%HLDIR%\server_err.log'"
)
REM kurz warten, bis 8001 lauscht (max ~10 s) - fail-safe, blockiert nie lange
"%PS%" -NoProfile -Command "$n=0; while($n -lt 20 -and -not (Get-NetTCPConnection -LocalPort 8001 -State Listen -ErrorAction SilentlyContinue)) { Start-Sleep -Milliseconds 500; $n++ }; if (Get-NetTCPConnection -LocalPort 8001 -State Listen -ErrorAction SilentlyContinue) { Write-Host ' HL-Dashboard laeuft (8001)' } else { Write-Host ' WARNUNG: 8001 antwortet nicht - Chart bleibt ohne Liquiditaetslinien' }"
) else (
echo HL-Projekt nicht gefunden - ueberspringe ^(Liquiditaetslinien aus^).
)
REM ── 2) Oil Trading Backend im Vordergrund (Konsole bleibt sichtbar)
echo Starte Oil Trading Server ^(8000^) ...
set PYTHONIOENCODING=utf-8
"C:\Users\ah\AppData\Local\Programs\Python\Python312\python.exe" -X utf8 server.py
"%PY%" -X utf8 server.py
echo.
echo ===== Server beendet =====
pause