Przejdź do treści
MQL5 · MetaTrader 5 · po polsku
kod odczarowany

MQL5 / Błędy

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:

  1. Przycisk Algo Trading na głównym pasku narzędzi terminala.
  2. Zgoda w oknie parametrów eksperta, zakładka Ogólne — pole zezwalające na handel algorytmiczny.
  3. 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ąć:

Kontrola pozwoleń w OnInit
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ąć.

Powiązane