retcode 10027
10027 — TRADE_RETCODE_CLIENT_DISABLES_AT
Zapytanie nie wyszło z terminala, bo wyłączony jest przycisk handlu algorytmicznego albo zgoda w ustawieniach eksperta.
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
CTrade::OrderSend: market buy 0.10 EURUSD [AutoTrading disabled by client]Co ten kod znaczy
Blokada leży po stronie twojego terminala, nie serwera. Zapytanie w ogóle nie poszło w świat. Są trzy niezależne przełączniki i wszystkie trzy muszą być włączone:
- Przycisk Algo Trading na głównym pasku narzędzi terminala.
- Zgoda w oknie parametrów eksperta, zakładka Ogólne — pole zezwalające na handel algorytmiczny.
- W przypadku eksperta pobranego z rynku MQL5 — także zgoda na handel na danym rachunku.
Sprawdzenie z poziomu kodu
Zamiast czekać na odrzucone zlecenie, sprawdź stan przy starcie i powiedz użytkownikowi wprost, co ma kliknąć:
int OnInit()
{
if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
{
Print("Handel algorytmiczny jest wyłączony w terminalu — kliknij przycisk Algo Trading.");
return INIT_FAILED;
}
if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
{
Print("Ten ekspert nie ma zgody na handel — zaznacz ją w oknie parametrów.");
return INIT_FAILED;
}
if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
{
Print("Serwer brokera nie zezwala temu rachunkowi na handel automatyczny.");
return INIT_FAILED;
}
return INIT_SUCCEEDED;
}W teście strategii
Tester ignoruje przycisk terminala, więc ekspert, który w teście handluje bez zarzutu, na rachunku demo potrafi nie zrobić ani jednej transakcji i wypisywać wyłącznie ten kod. Jeśli kontrola z OnInit zwróci INIT_FAILED w testerze, zwykle znaczy to, że sprawdzasz warunek, który w testerze nie ma sensu — użyj MQLInfoInteger(MQL_TESTER), żeby go pominąć.