Помогите с expiration в OrderSend

 
Как открыть ордер со сроком истечения например открыл 20.04.2007 в 14:56, надо со сроком истечения expiration 21.04.2007 в 00:00 то есть по началу следующего дня ордер удаляется.
Если не трудно напишите командную строку! Для скрипта
 
Если с конкретной датой, то можно так:
OrderSend( ..., StrToTime( "2007.04.21 00:00" ) );

А если надо всегда в начале следующего дня, то так:
OrderSend( ..., iTime( Symbol(), PERIOD_D1, 0 ) + 86400 );
 

Огромное спасибо!

 

А если определить экспирацию в начале следующего бара для любого периода, то можно записать так:

datetime Expiration = iTime(Symbol(),Period(),0)+Period() );
Правильно?
 

+Period()*60

 
Спасибо!
 
а как задать время жизни ордера например 60 секунд,
 
ex_kalibur:
а как задать время жизни ордера например 60 секунд,

Чего только извращённый вихрастый мозх не придумает:

datetime Expiration = TimeCurrent() + 60;
 
ex_kalibur:
а как задать время жизни ордера например 60 секунд,

Вроде бы минимальное время 10 минут
 
Vinin:

Вроде бы минимальное время 10 минут

Попробовал. если время жизни меньше 10 минут, постоянно ошибка 3 ERR_INVALID_TRADE_PARAMETERS. Если от 10 до 20 минут, ошибка появляется не всегда. Больше 20 минут все нормально, без ошибок.
 
Andrey Khatimlianskii:
Если с конкретной датой, то можно так:

А если надо всегда в начале следующего дня, то так:
Андрей, а можете подсказать как прописать чтобы открытые ордера закрывались в определенное время?
Причина обращения: