Detecting the supported filling mode (FOK/IOC)
Reads the SYMBOL_FILLING_MODE mask to pick a filling type the server accepts — sending an unsupported mode is one of the most frequent causes of "Unsupported filling mode".
Prerequisites
MetaTrader 5, MQL5
MQL5
ENUM_ORDER_TYPE_FILLING PickFillingMode(string symbol)
{
long mask = SymbolInfoInteger(symbol, SYMBOL_FILLING_MODE);
if((mask & SYMBOL_FILLING_FOK) != 0)
return ORDER_FILLING_FOK; // tout ou rien
if((mask & SYMBOL_FILLING_IOC) != 0)
return ORDER_FILLING_IOC; // exécution partielle possible
return ORDER_FILLING_RETURN; // mode marché/échange par défaut
}
// Utilisation avec une MqlTradeRequest manuelle
MqlTradeRequest req = {};
req.action = TRADE_ACTION_DEAL;
req.symbol = _Symbol;
req.type_filling = PickFillingMode(_Symbol);Result
2026.06.10 08:00:01.205 FillProbe (EURUSD,M15) SYMBOL_FILLING_MODE = 3 (FOK|IOC) 2026.06.10 08:00:01.206 FillProbe (EURUSD,M15) Mode retenu : ORDER_FILLING_FOK (tout ou rien) 2026.06.10 08:00:01.310 FillProbe (US500,M15) SYMBOL_FILLING_MODE = 2 (IOC) -> ORDER_FILLING_IOC 2026.06.10 08:00:01.412 FillProbe (BTCUSD,M15) Aucun flag -> repli ORDER_FILLING_RETURN (mode échange) 2026.06.10 08:00:01.413 FillProbe (EURUSD,M15) « Unsupported filling mode » impossible chez ce broker
Filling ModeFOKIOCCompatibilité Broker