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

MQL5 / Błędy

retcode 10030

10030 — TRADE_RETCODE_INVALID_FILL

Instrument nie obsługuje trybu wypełnienia podanego w zapytaniu. Kod działa u jednego brokera i przestaje u drugiego.

2 fragmenty kodu z tej strony przeszły przez kompilator MetaEditor build 6090, 2026-08-05.

CTrade::OrderSend: market buy 0.10 EURUSD [unsupported filling mode]

Co ten kod znaczy

Pole type_filling w zapytaniu określa, co serwer ma zrobić, jeśli nie da się wypełnić zlecenia w całości po żądanej cenie. Nie każdy instrument u każdego brokera obsługuje wszystkie tryby — i to jest najczęstsza przyczyna sytuacji, w której ten sam kod chodzi na jednym rachunku, a na drugim nie.

TrybZnaczenie
ORDER_FILLING_FOKwypełnij w całości albo odrzuć
ORDER_FILLING_IOCwypełnij ile się da, resztę anuluj
ORDER_FILLING_RETURNwypełnij ile się da, reszta zostaje jako zlecenie
ORDER_FILLING_BOCtylko jako zlecenie pasywne w arkuszu

Jak zapytać instrument, co obsługuje

Właściwość SYMBOL_FILLING_MODE zwraca maskę bitową. Sprawdza się ją iloczynem bitowym, nie porównaniem.

Wybór trybu obsługiwanego przez instrument
ENUM_ORDER_TYPE_FILLING DobierzWypelnienie(const string symbol)
  {
   long dozwolone = SymbolInfoInteger(symbol, SYMBOL_FILLING_MODE);

   if((dozwolone & SYMBOL_FILLING_FOK) == SYMBOL_FILLING_FOK)
      return ORDER_FILLING_FOK;

   if((dozwolone & SYMBOL_FILLING_IOC) == SYMBOL_FILLING_IOC)
      return ORDER_FILLING_IOC;

   //--- gdy maska jest pusta, instrument działa w trybie zwrotu
   return ORDER_FILLING_RETURN;
  }

Jeśli używasz klasy CTrade

CTrade ma metodę, która ustawia tryb raz na całą instancję:

#include <Trade\Trade.mqh>
CTrade handel;

int OnInit()
  {
   handel.SetTypeFillingBySymbol(_Symbol);
   return INIT_SUCCEEDED;
  }

To załatwia sprawę dla eksperta pracującego na jednym instrumencie. Przy pracy wielosymbolowej trzeba ustawiać tryb przed każdą operacją na innym symbolu.

Gdy kod działa u jednego brokera, a u drugiego nie

Ten kod jest najczęstszym objawem szerszego problemu: ustawień wpisanych na sztywno zamiast odczytanych z instrumentu. Opisaliśmy go osobno przy pułapkach CTrade.

Powiązane