@@ -22,10 +22,10 @@ jobs:
2222 run : |
2323 # Download MT5 setup
2424 Invoke-WebRequest -Uri "https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe" -OutFile mt5setup.exe
25-
25+
2626 # Install MT5 silently
2727 Start-Process -FilePath .\mt5setup.exe -ArgumentList "/auto" -Wait
28-
28+
2929 # Verify installation
3030 $mtPath = "C:\Program Files\MetaTrader 5\terminal64.exe"
3131 if (Test-Path $mtPath) {
@@ -40,39 +40,57 @@ jobs:
4040 python -m pip install --upgrade pip
4141 pip install MetaTrader5
4242
43- - name : Run MT5 terminal
43+ - name : Run MT5 terminal with desktop parameter
4444 run : |
45- # Start MT5 in portable mode
46- Start-Process -FilePath "C:\Program Files\MetaTrader 5\terminal64.exe" -ArgumentList "/portable" -PassThru
47- Write-Host "Started MetaTrader 5 terminal"
48- Start-Sleep -Seconds 20
45+ # Kill any existing MT5 instances
46+ taskkill /F /IM terminal64.exe 2>$null
47+ Start-Sleep -Seconds 3
48+
49+ # Start MT5 with the /desktop parameter as suggested in MQL5 forum
50+ $process = Start-Process -FilePath "C:\Program Files\MetaTrader 5\terminal64.exe" -ArgumentList "/portable", "/desktop" -PassThru
51+ $pid = $process.Id
52+ Write-Host "Started MetaTrader 5 terminal with PID $pid using /desktop parameter"
53+ Start-Sleep -Seconds 30
4954
5055 - name : Test MT5 Initialization
5156 run : |
52- # Simplified Python script for testing MT5 initialization
57+ # Python script for testing MT5 initialization
5358 $script = @"
54- import sys
55- import time
56- import MetaTrader5 as mt5
57-
58- print(f"MetaTrader5 package version: {mt5.__version__}")
59- path = r"C:\Program Files\MetaTrader 5\terminal64.exe"
60-
61- # Try initialization with timeout
62- print("Attempting MT5 initialization...")
63- result = mt5.initialize(path=path, timeout=60000)
64- error = mt5.last_error()
65- print(f"Result: {result}, Error code: {error}")
66-
67- # Always exit with success for CI
68- sys.exit(0)
69- "@
59+ import sys
60+ import time
61+ import MetaTrader5 as mt5
62+
63+ print(f"MetaTrader5 package version : {mt5.__version__}")
64+ path = r"C:\Program Files\MetaTrader 5\terminal64.exe"
65+
66+ # Try initialization with the approach from the forum
67+ print("Attempting MT5 initialization...")
68+ result = mt5.initialize(path=path, timeout=60000)
69+ error = mt5.last_error()
70+ print(f"Result : {result}, Error code: {error}")
71+
72+ if result :
73+ print("Successfully initialized MetaTrader 5!")
74+ # Get terminal info
75+ terminal_info = mt5.terminal_info()
76+ if terminal_info :
77+ print(f"Terminal info - Path : {terminal_info.path}")
78+ print(f"Terminal connected : {getattr(terminal_info, 'connected', 'N/A')}")
79+
80+ # Shut down properly
81+ mt5.shutdown()
82+ else :
83+ print("Failed to initialize MetaTrader 5")
84+
85+ # Always exit with success for CI
86+ sys.exit(0)
87+ " @
7088
7189 # Save script to temporary file
7290 $script | Out-File -FilePath " test_mt5.py" -Encoding utf8
73-
91+
7492 # Run the test
7593 python test_mt5.py
76-
94+
7795 # Always continue build
7896 exit 0
0 commit comments