Это можно только для отложенны ордеров. Переменная datetime expiration=TimeCurrent()+количество секунд. Это количество секунд меньше чем 11 минут быть не должно.
Integer:
Это можно только для отложенны ордеров. Переменная datetime expiration=TimeCurrent()+количество секунд. Это количество секунд меньше чем 11 минут быть не должно.
Это можно только для отложенны ордеров. Переменная datetime expiration=TimeCurrent()+количество секунд. Это количество секунд меньше чем 11 минут быть не должно.
Ордера вроде отложенные. BUYLIMIT и SELLLIMIT. Время где-то на сутки вперед ставлю. Нигде никто никаких ошибок не выдает. Это-то и странно.
Некоторые ДЦ не поддерживают время истечения ордера. Попробуйте вручную из окна ордера.
Integer:
Некоторые ДЦ не поддерживают время истечения ордера. Попробуйте вручную из окна ордера.
Некоторые ДЦ не поддерживают время истечения ордера. Попробуйте вручную из окна ордера.
Попробовал. Вручную всё ставится нормально.
В итоге всё вроде бы заработало, но как-то уж очень странно: когда ставится expire в первый раз - всё проходит без ошибок, но вызванная OrderExpiration() тут же после установки возвращает 0. При попытке поставить expire во второй раз тому же ордеру, проверка на то, что у него уже есть expiration возвращает время, установленное в первый раз.
ilias:
В итоге всё вроде бы заработало, но как-то уж очень странно: когда ставится expire в первый раз - всё проходит без ошибок, но вызванная OrderExpiration() тут же после установки возвращает 0. При попытке поставить expire во второй раз тому же ордеру, проверка на то, что у него уже есть expiration возвращает время, установленное в первый раз.
В итоге всё вроде бы заработало, но как-то уж очень странно: когда ставится expire в первый раз - всё проходит без ошибок, но вызванная OrderExpiration() тут же после установки возвращает 0. При попытке поставить expire во второй раз тому же ордеру, проверка на то, что у него уже есть expiration возвращает время, установленное в первый раз.
После модификации надо снова сделать ОrderSelect().
сталкивался с похожей проблемой, долго мучался, помог перевод из TimeCurrent в string и обратно StringToTime .
Попробуй.
Integer:
Это можно только для отложенны ордеров. Переменная datetime expiration=TimeCurrent()+количество секунд. Это количество секунд меньше чем 11 минут быть не должно.
а почему 11 минут?
Это можно только для отложенны ордеров. Переменная datetime expiration=TimeCurrent()+количество секунд. Это количество секунд меньше чем 11 минут быть не должно.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть примерно такой код:
datetime dt = TimeCurrent() + N;
Print(TimeToStr(dt)); // 1
OrderSelect(...)
bool ret = OrderModify(<все остальные параметры без изменений>, dt);
Print(ret); // 2
Print(TimeToStr(OrderExpiration())); // 3
в 1 печатается нормальное время, я ставлю где-то на сутки вперед
в 2 печатается 1 (и ошибок никаких в логе нету)
в 3 печатается 1970.01.01 00:00
Подскажите пожалуйста как правильно задать expiration именно в OrderModify.
спасибо