Например: input int t_ord=1;//t_ord=1; //количество часов ............... datetime expir=TimeCurrent()+t_ord*3600;//3600-количество секунд в часе ct.BuyLimit(vol,price,sym1,0,0,ORDER_TIME_SPECIFIED,expir);
Коллеги, доброго времени суток.
Пытаюсь выставить экспирацию ордера, но в ответ получаю: invalid expiration type.
Код выглядит следующим образом:
Пожалуйста помогите.
Спасибо.
Спасибо, но предложенный Вами метод не сработал. Более того, при выставлении Вашим способом время экспирации равняется 00:00:00(ордер не выставляется с отбоем invalid expiration type), а если выставлять так:
datetime expir=TimeCurrent()+300;..то время отображается так как нужно 00:05:00, при этом ордер всё равно не выставляется с ошибкой invalid expiration type
Экспирация должна быть не менее 10 минут от текущего времени. А в приведенном примере - 5 минут.
Спасибо, но более чем на 10 мин(1 час), ордера всё равно не выставляются.
Спасибо, но более чем на 10 мин(1 час), ордера всё равно не выставляются.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
При модификации ордера возникает ошибка 131
fxsaber, 2017.09.12 19:47
Надо всего лишь написать название торгового сервера и символ, и проблема будет решена в кратчайшие сроки, потому как каждый сам сможет попробовать.
А пока складывается ощущение, что задача не найти решение, а отвечать да/нет.
Спасибо, но более чем на 10 мин(1 час), ордера всё равно не выставляются.
Надо сделать проверку на доступность установки истечения - не у всех символов она включена - SymbolInfoInteger( , SYMBOL_EXPIRATION_MODE) - вернет маску флагов разрешенных режимов.
Ошибка модификации ордера. Код ошибки=4753
Торговый сервер, символ?
Возможно, так решится
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2017.02.25 16:16
ENUM_ORDER_TYPE_TIME GetExpirationType( const string Symb, uint Expiration = ORDER_TIME_GTC )
{
const int ExpirationMode = (int)::SymbolInfoInteger(Symb, SYMBOL_EXPIRATION_MODE);
if ((Expiration > ORDER_TIME_SPECIFIED_DAY) || (((ExpirationMode >> Expiration) & 1) == 0))
{
if ((Expiration < ORDER_TIME_SPECIFIED) || (ExpirationMode < SYMBOL_EXPIRATION_SPECIFIED))
Expiration = ORDER_TIME_GTC;
else if (Expiration > ORDER_TIME_DAY)
Expiration = ORDER_TIME_SPECIFIED;
uint i = 1 << Expiration;
while ((Expiration <= ORDER_TIME_SPECIFIED_DAY) && ((ExpirationMode & i) != i))
{
i <<= 1;
Expiration++;
}
}
return((ENUM_ORDER_TYPE_TIME)Expiration);
}
if (Expiration > ORDER_TIME_DAY)
Request.expiration = Expiration;
ct.BuyLimit(vol,price,sym1,0,0,GetExpirationType(sym1, (uint)expir),(expir > ORDER_TIME_DAY) ? expir : 0);
Торговый сервер, символ?
Возможно, так решится
Боевой сервер Открытие-Брокер, FORTS, sbrf-12.17
Боевой сервер Открытие-Брокер, FORTS, sbrf-12.17
Выше решение.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Коллеги, доброго времени суток.
Пытаюсь выставить экспирацию ордера, но в ответ получаю: invalid expiration type.
Код выглядит следующим образом:
Пожалуйста помогите.
Спасибо.