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>
44 lines
2.5 KiB
Batchfile
44 lines
2.5 KiB
Batchfile
@echo off
|
|
REM ============================================================
|
|
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 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"
|
|
|
|
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
|
|
"%PY%" -X utf8 server.py
|
|
echo.
|
|
echo ===== Server beendet =====
|
|
pause
|