У разных брокеров и даже у разных типов счетов разрешены разные режимы заполнения. Видимо, в запросе жёстко прописан type_filling, например FOK, а новый сервер для этого символа его не принимает. Правильнее не задавать руками, а спрашивать у символа, что он разрешает:
Код:
ENUM_ORDER_TYPE_FILLING PickFilling(const string sym)
{
long modes = SymbolInfoInteger(sym, SYMBOL_FILLING_MODE);
if((modes & SYMBOL_FILLING_FOK) == SYMBOL_FILLING_FOK)
return ORDER_FILLING_FOK;
if((modes & SYMBOL_FILLING_IOC) == SYMBOL_FILLING_IOC)
return ORDER_FILLING_IOC;
return ORDER_FILLING_RETURN;
}
и в запросе req.type_filling = PickFilling(_Symbol). Если работаешь через CTrade, там есть SetTypeFillingBySymbol, делает примерно то же самое.
Только учти, что FOK и IOC ведут себя по-разному, когда объёма не хватает: FOK отклонит всю заявку, IOC исполнит, сколько сможет. Если советник рассчитан на то, что объём всегда полный, после смены режима проверь, как он переживает частичное исполнение. Описание полей запроса тут:
https://www.mql5.com/ru/docs/trading/ordersend