Close all w MT5 jest serią dyspozycji, a nie gwarancją jednoczesnego zamknięcia całego rachunku. Część pozycji może pozostać po odrzuceniu, przerwaniu sekwencji albo zamknięciu aplikacji. Najpierw sprawdź, co rzeczywiście wykonano i jaki wolumen nadal istnieje. Poniższa procedura dotyczy wbudowanych operacji grupowych MT5; dodatek lub własny robot może mieć inne zasady.
Co obejmuje wybrane polecenie?
Sprawdź pełną nazwę: zamknięcie wszystkich pozycji, tylko zyskownych, stratnych, danego symbolu albo określonego kierunku. Wybór jednej pozycji może zmienić listę dostępnych poleceń. Zapis „zamknąłem wszystko” bez nazwy operacji nie pozwala odtworzyć zakresu. Nie myl zamknięcia z odwróceniem pozycji; drugie działanie może utworzyć nową ekspozycję.
Dokumentacja operacji grupowych MT5 rozdziela etapy: na hedgingu najpierw próba Close By, potem zwykłe zamknięcia pozostałych pozycji. Błąd sekwencji Close By zatrzymuje dalszy proces; w późniejszym etapie asynchronicznym odrzucenie jednej dyspozycji pozostawia jej pozycję, lecz nie zatrzymuje wysyłania pozostałych. Zamykanie według FIFO także jest sekwencyjne i zatrzymuje się po błędzie. Nie przypisuj wszystkim etapom identycznej reakcji na błąd.
Funkcje grupowe wymagają włączenia One Click Trading. Część poleceń nie jest wyświetlana na rachunkach z ograniczeniem FIFO. W właściwościach rachunku sprawdź tryb pozycji i ACCOUNT_FIFO_CLOSE, zamiast wnioskować po wyglądzie terminala. To stan konkretnego konta, nie zasada prawna dla każdego kraju.
Artykuł o hedgingu tłumaczy różnicę między przeciwnymi ticketami a wspólną pozycją netting. Operacja Close By dotyczy dwóch przeciwnych pozycji tego samego symbolu na hedgingu. Nie zakładaj, że inny instrument o podobnej nazwie stanowi drugą nogę. Własny skrypt „Close all” trzeba ocenić według jego instrukcji, a nie nazwy zapożyczonej z menu MT5.
Jak sprawdzić pięć pozycji po jednej operacji?
| Ticket | Stan początkowy | Potwierdzenie | Pozostaje |
|---|---|---|---|
| A | EUR/USD, kupno 0,10 lota | Close By z B wykonane | Brak |
| B | EUR/USD, sprzedaż 0,10 lota | Close By z A wykonane | Brak |
| C | GBP/USD, kupno 0,20 lota | Zamknięto pełne 0,20 | Brak |
| D | USD/JPY, sprzedaż 0,10 lota | Żądanie odrzucone; zamknięto 0 | Sprzedaż 0,10 |
| E | XAU/USD, kupno 0,05 lota | Zamknięto pełne 0,05 | Brak |
Po wykonaniu pary A–B liczba pozycji spada z pięciu do trzech. Następnie terminal wysyła zwykłe zamknięcia C, D i E bez czekania na potwierdzenie każdego wcześniejszego. W naszym modelu C oraz E wykonano, D odrzucono. Końcowy stan to jedna pozycja D: sprzedaż 0,10 lota USD/JPY. Trzy wysłane żądania nie są dowodem trzech zamknięć.
Pięć pozycji, lecz jedna nadal otwarta
Wniosek z diagramu: liczymy aktualne pozycje oraz potwierdzony zamknięty wolumen, nie okna komunikatów. Close By usunęło tutaj dwa tickety jedną operacją. Zwykłe zamknięcia miały osobne rezultaty. Poradnik błędów zleceń pomaga rozpoznać błąd, ale o końcu całej operacji rozstrzyga odczyt rachunku.
Zapisz dla każdego ticketu: symbol, kierunek, ilość przed operacją, identyfikator żądania lub zlecenia, odpowiedź, wykonania i pozostały wolumen. Dokumentacja właściwości wykonania udostępnia powiązanie ze zleceniem i pozycją. Jedno zlecenie może mieć kilka wykonań; nie licz każdego fragmentu jako zamknięcia całego ticketu. Zachowaj czasy wraz ze strefą oraz powód nieustalonego wyniku.
Co zmienia przerwanie, błąd lub aktywny robot?
Rozważ odrębny wariant tego samego początku: para A–B otrzymuje błąd Close By przed wykonaniem. Zakładamy, że do zamknięcia nie doszło. Sekwencja zatrzymuje się przed zwykłymi zamknięciami C, D i E; pozostaje pięć pozycji. To nie ten sam wariant co odrzucone D po udanym zamknięciu pary. W rzeczywistym incydencie brak odpowiedzi wymaga sprawdzenia, a nie założenia, że nic się nie wykonało.
Zamknięcie aplikacji przerywa proces grupowy. Nie cofa już potwierdzonych wykonań. Jeżeli A–B zamknięto, a C–E nie zostały jeszcze wysłane, pozostaną trzy pozycje w naszym wariancie. Dla dyspozycji już wysłanych ustal rezultat na serwerze. Restart terminala nie jest potwierdzeniem płaskiego rachunku i nie powinien automatycznie uruchamiać drugiej pełnej partii.
Sprawdź także, czy działający EA, druga aplikacja lub osoba nie otwierały nowych pozycji. Nowy ticket nie musi być pozycją, której zamknięcie odrzucono. Połącz go z historią, źródłem dyspozycji i czasem. W MQL5 samo OrderSend zwracające true nie dowodzi wykonania; kontroluj wynik i zdarzenia. To istotne przy własnej automatyzacji, nie powód do próbnej transakcji.
Czy pusta lista pozycji oznacza koniec ekspozycji?
Sprawdź również zlecenia oczekujące. MT5 ma dla nich osobne operacje usuwania; polecenie zamykania pozycji nie jest potwierdzeniem anulowania oczekujących. Fikcyjne oczekujące kupno P może pozostać nawet po zamknięciu wszystkich pięciu ticketów. Jeżeli później się wykona, tworzy nową pozycję. Poradnik typów zleceń rozdziela intencję anulowania od faktycznego rezultatu.
Po synchronizacji odczytaj pozycje bez aktywnego filtra ukrywającego symbol lub kierunek. Uzgodnij historię zamknięć i sprawdź oczekujące dyspozycje osobno. Stan „pusty” opisz z czasem odczytu i zakresem konta. Nie przedstawiaj pojedynczego zrzutu jako zapewnienia, że automat nigdy nie odtworzy ekspozycji. Sprawdź również ochronę pozycji, które nadal pozostają.
Dobra kontrola Close all kończy się listą tego, co nadal istnieje na rachunku. Liczba wysłanych poleceń jej nie zastępuje.
Co zrobić jutro?
- Odtwórz zakres operacji na demo. Zapisz tryb konta, pełną nazwę polecenia oraz wszystkie tickety i wolumeny. Zachowaj stan początkowy. Nie testuj zachowania przy błędzie na rachunku rzeczywistym; do analizy wystarczy model i bezpieczne środowisko demonstracyjne.
- Zestaw każdą pozycję z potwierdzonym rezultatem. Rozdziel Close By od zwykłych zamknięć. Oznacz odrzucone i nieustalone dyspozycje, następnie sprawdź aktualny wolumen. Nie ponawiaj całej partii z pamięci ani nie dopisuj wykonania tylko dlatego, że przycisk zniknął.
- Zakończ kontrolą dwóch list. Sprawdź otwarte pozycje oraz zlecenia oczekujące na właściwym rachunku, po synchronizacji i bez ukrywających filtrów. Jeśli coś pozostało, oceń bieżące ryzyko oraz dostępne działania. Zapisz końcowy stan i jego czas w dzienniku.
Sprawdź, czy rozumiesz
Jedno krótkie ćwiczenie
Około 2 min · możesz spróbować ponownie
Model: A i B zamknął Close By, C i E zamknięto, D odrzucono. Ile pierwotnych pozycji pozostaje?
- Zero, bo polecenie nazywa się Close all.
- Jedna: D, sprzedaż 0,10 lota USD/JPY.
- Trzy, bo Close By jest jednym wykonaniem.
Sprawdź odpowiedź i wyjaśnienie
Jedna: D, sprzedaż 0,10 lota USD/JPY.
Tak. Zamknięto cztery tickety; D nie ma potwierdzonego wykonania zamknięcia.

