К содержимому
Форекс
на автомате

Ошибка 10030 на новом счёте, на старом тот же советник работал

gleb_777с 01.2023
Исследователь
10сообщений
Автор темы#1
Перенёс советника на счёт другого брокера, любая заявка возвращает 10030, unsupported filling mode. На старом счёте всё открывалось. Что поменять?
Светланас 02.2022
Исследователь
7сообщений
#2
У разных брокеров и даже у разных типов счетов разрешены разные режимы заполнения. Видимо, в запросе жёстко прописан 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
Продолжить обсуждение

Для ответа войдите в свой аккаунт.

Войти
← Предыдущая темаСледующая тема →