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

MQL5 / Błędy

retcode 10045

10045 — TRADE_RETCODE_FIFO_CLOSE

Pozycje trzeba zamykać w kolejności ich otwarcia. Zasada obowiązująca na rachunkach amerykańskich.

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

Co ten kod znaczy

Rachunek pracuje w trybie FIFO: najstarsza pozycja na instrumencie musi zostać zamknięta jako pierwsza. Próba zamknięcia nowszej kończy się odmową.

Skąd się bierze

  • strategia zamykająca pozycję najbardziej zyskowną zamiast najstarszej
  • ekspert pisany pod rachunek europejski, uruchomiony u brokera amerykańskiego
  • zamykanie po numerze magicznym bez uwzględnienia kolejności

Co z tym zrobić

Tryb rachunku sprawdzisz jednym wywołaniem:

if(AccountInfoInteger(ACCOUNT_FIFO_CLOSE))
   Print("Rachunek wymaga zamykania w kolejności FIFO.");

Na takim rachunku pozycje trzeba posortować po czasie otwarcia (POSITION_TIME) i zamykać od najstarszej. Logika typu „zamknij tę, która zarabia" wymaga przepisania — inaczej ekspert będzie działał u jednego brokera i milczał u drugiego.

Powiązane