From f64677895e0a22a20e5edf304b935a2f31b2b8d9 Mon Sep 17 00:00:00 2001 From: Axel Hocks Date: Thu, 30 Jul 2026 15:52:27 +0200 Subject: [PATCH] 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 --- CLAUDE.md | 9 +++++++++ restart_server.bat | 34 +++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 95dbf40..f076ea4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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. diff --git a/restart_server.bat b/restart_server.bat index a882b4b..e55f1bf 100644 --- a/restart_server.bat +++ b/restart_server.bat @@ -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