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

MQL5 / Błędy

retcode 10040

10040 — TRADE_RETCODE_LIMIT_POSITIONS

Osiągnięto maksymalną liczbę otwartych pozycji dla rachunku.

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

Co ten kod znaczy

Dotyczy przede wszystkim rachunków typu hedging, gdzie pozycji na jednym instrumencie może być wiele. Na rachunku netting limit liczy się po instrumentach.

Skąd się bierze

  • strategia otwierająca pozycję na każdym sygnale bez górnego limitu
  • limit ustawiony przez brokera niżej, niż zakłada kod
  • reguły konta proptradingowego

Co z tym zrobić

Ekspert powinien mieć własny, świadomy limit — niższy niż brokerski:

int mojeOtwarte = 0;
for(int i = PositionsTotal() - 1; i >= 0; i--)
  {
   ulong bilet = PositionGetTicket(i);
   if(bilet > 0 && PositionSelectByTicket(bilet) &&
      PositionGetInteger(POSITION_MAGIC) == (long)Magic)
      mojeOtwarte++;
  }

if(mojeOtwarte >= MaksymalnaLiczbaPozycji)
   return;

Liczenie wyłącznie własnych pozycji po numerze magicznym jest tu istotne — na rachunku bywają pozycje z innych źródeł.

Powiązane