Files
NewStock/qmt/start.bat

75 lines
1.9 KiB
Batchfile
Raw Normal View History

2025-12-19 14:11:32 +08:00
@echo off
setlocal enabledelayedexpansion
:: ================= <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =================
:: <20><><EFBFBD><EFBFBD>Ŀ¼ (<28><>ȷ<EFBFBD><C8B7>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ȷ)
set "WORK_DIR=C:\Data\Project\NewStock\qmt"
:: Python<6F>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD>
set "SCRIPT_NAME=qmt_trader.py"
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
set MAX_RETRIES=5
:: <20><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
set RETRY_COUNT=0
:: <20><><EFBFBD>Եȴ<D4B5>ʱ<EFBFBD><CAB1>(<28><>)
set RETRY_WAIT=10
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־Ŀ¼
set "LOG_DIR=%WORK_DIR%\logs\launcher"
:: ===========================================
:: 1. <20>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>Ŀ¼
cd /d "%WORK_DIR%"
title QMT ʵ<><CAB5><EFBFBD>ػ<EFBFBD>ϵͳ [Port:8001]
:: 2. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־Ŀ¼
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"
:: <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>־<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> (<28>򵥵<EFBFBD><F2B5A5B5><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B3A3>Windows<77><73>ʽ)
set "TODAY=%date:~0,4%-%date:~5,2%-%date:~8,2%"
set "LOG_FILE=%LOG_DIR%\%TODAY%.log"
echo ==================================================
echo QMT ʵ<>̽<EFBFBD><CCBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
echo ʱ<><CAB1>: %time%
echo <20><>־: %LOG_FILE%
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: http://localhost:8001
echo ==================================================
:LOOP
echo.
echo [%time%] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>...
echo [%time%] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>... >> "%LOG_FILE%"
:: 3. <20><><EFBFBD><EFBFBD> Python <20>ű<EFBFBD>
:: ʹ<><CAB9> uv run <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2>&1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳд<D2B2><D0B4><EFBFBD><EFBFBD>־
uv run %SCRIPT_NAME% >> "%LOG_FILE%" 2>&1
:: 4. <20><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>
set EXIT_CODE=%errorlevel%
echo [%time%] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %EXIT_CODE% >> "%LOG_FILE%"
echo <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD> (Code: %EXIT_CODE%)
:: 5. <20><><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD>
if %RETRY_COUNT% GEQ %MAX_RETRIES% (
echo [%time%] <20><EFBFBD><EFB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>ϵͳֹͣ<CDA3><D6B9> >> "%LOG_FILE%"
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
msg * "QMT <20><><EFBFBD><EFBFBD>ϵͳ<CFB5>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7>Զ<EFBFBD><D4B6>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>"
goto FAIL
)
set /a RETRY_COUNT+=1
echo [%time%] <20>ȴ<EFBFBD> %RETRY_WAIT% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD> %RETRY_COUNT% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>... >> "%LOG_FILE%"
echo <20><><EFBFBD>ڵȴ<DAB5><C8B4><EFBFBD><EFBFBD><EFBFBD> (%RETRY_COUNT%/%MAX_RETRIES%)...
timeout /t %RETRY_WAIT% >nul
goto LOOP
:FAIL
title QMT ʵ<><CAB5><EFBFBD>ػ<EFBFBD>ϵͳ [<5B>ѱ<EFBFBD><D1B1><EFBFBD>]
color 4F
echo.
echo ==========================================
echo ϵͳ<CFB5><CDB3>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD>ļ<EFBFBD>: %LOG_FILE%
echo ==========================================
pause
exit /b 1