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

MQL5 / Błędy

retcode 10012

10012 — TRADE_RETCODE_TIMEOUT

Zapytanie wygasło przed uzyskaniem odpowiedzi. Najniebezpieczniejszy kod z całej listy.

1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.

Co ten kod znaczy

Serwer nie odpowiedział w wyznaczonym czasie. Kluczowe: nie wiesz, czy zlecenie zostało wykonane, czy nie. Odpowiedź mogła zaginąć już po wykonaniu operacji.

Skąd się bierze

  • zerwane albo bardzo wolne połączenie z serwerem
  • przeciążenie serwera przy publikacji danych
  • VPS o kiepskiej jakości łącza do serwera brokera

Co z tym zrobić

Nigdy nie powtarzaj zapytania po tym kodzie na ślepo. Najpierw sprawdź rzeczywisty stan rachunku:

Kontrola stanu po przekroczeniu czasu
if(wynik.retcode == TRADE_RETCODE_TIMEOUT)
  {
   Sleep(2000);                       // dajemy serwerowi chwilę
   if(PositionSelect(_Symbol))
     {
      Print("Pozycja jednak powstała — nie ponawiam.");
      return true;
     }
   Print("Pozycji brak, można spróbować ponownie.");
  }

Powtórzenie bez tej kontroli to najczęstsza przyczyna podwójnych pozycji otwartych przez eksperta w ciągu jednej sekundy — i jeden z nielicznych błędów w kodzie, który realnie kosztuje pieniądze przy pierwszym wystąpieniu.

Powiązane