retcode 10023
10023 — TRADE_RETCODE_ORDER_CHANGED
Stan zlecenia zmienił się między odczytem a próbą modyfikacji.
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Co ten kod znaczy
Klasyczny wyścig: ekspert odczytał zlecenie, policzył nowe parametry, a zanim wysłał modyfikację, zlecenie zdążyło się aktywować albo zostać anulowane.
Skąd się bierze
- zlecenie oczekujące aktywowało się w międzyczasie
- modyfikacja wysłana na podstawie danych sprzed kilku ticków
- równolegle działający drugi ekspert albo ręczna operacja użytkownika
Co z tym zrobić
To nie jest błąd wymagający naprawy, tylko sytuacja do obsłużenia. Po tym kodzie odczytaj stan od nowa zamiast ponawiać poprzednią operację:
if(wynik.retcode == TRADE_RETCODE_ORDER_CHANGED)
{
Print("Zlecenie zmieniło stan, odczytuję od nowa.");
return; // przy następnym ticku pracujemy na aktualnych danych
}Ryzyko takich wyścigów maleje, gdy dane o zleceniach odczytujesz bezpośrednio przed operacją, a nie raz na początku OnTick.