Помогите!! функция удаления отложенных ордеров - страница 2

 
Vitalii Ananev:

Вот этот кусочек как раз и вычисляет разницу между текущим временем и ценой открытия ордера и эта разница будет в секундах, так как переменные типа datetime хранят данные даты и времени в виде количества секунд прошедших с 1.01.1970 года.

 Если надо в минутах то TimeLimit умножаете на 60 если в часах то на 3600 (количество секунд в одном часе) 

Если разница между  TimeCurrent()-OrderOpenTime() меньше TimeLimit, значит время еще не истекло, если больше то выполняется остальной участок кода, где проверятся тип ордера и удаляется. 

Что бы не заморачиваться с приведением типов поменяйте тип переменной  TimeLimit с uint на int и тогда этот кусок будет выглядеть так:

 

так и есть именно так я и делал, но почему у меня разница тек. времени и времени открытия получается вот такой 1970.01.01 00:00:51

как я понимаю должно получиться число в секундах на пример 5 секунд или 10. Но получается вот эта дата  

 
Ruslan Udintsev:

так и есть именно так я и делал, но почему у меня разница тек. времени и времени открытия получается вот такой 1970.01.01 00:00:51

как я понимаю должно получиться число в секундах на пример 5 секунд или 10. Но получается вот эта дата  

Все правильно так и должно быть эта дата точка начало отчета, по сути это ноль. Вам надо использовать явное преобразование типов, то есть преобразовать тип datetime в тип int.

например 30.04.2015 12:17:20 минус 30.04.2015 12:17:10 получится 01.01.1970 0:0:10 если преобразовать в тип int то будет 10, то есть 10 секунд. 

 

РЕШИЛ ЭТО ТАКИМ ОБРАЗОМ

переменная = время открытия + время сколько должен существовать ордер в секундах

переменная = текущее время

если эти обе переменные равны то удаляем ордер 

 
Ruslan Udintsev:

РЕШИЛ ЭТО ТАКИМ ОБРАЗОМ

переменная = время открытия + время сколько должен существовать ордер в секундах

переменная = текущее время

если эти обе переменные равны то удаляем ордер 

Можно и так. Просто вы работаете с однотипными переменными datetime. В моем варианте переменные разных типов datetime и int.
 
Ruslan Udintsev:

РЕШИЛ ЭТО ТАКИМ ОБРАЗОМ

переменная = время открытия + время сколько должен существовать ордер в секундах

переменная = текущее время

если эти обе переменные равны то удаляем ордер 


переменная >= текущее время

иначе может проскочить момент истинного равенства, по ряду причин)

 
Vladimir Zubov:

переменная >= текущее время

иначе может проскочить момент истинного равенства, по ряду причин)

точно)) спасибо огромное всем)
 
Здравствуйте, подскажите, есть такая функция, что бы можно было перенести отложенный ордер на определённое количество пипсов, не тралить ордер а перенести его один раз на то расстояние что выставлено в настройках. С уважением Александр.
Причина обращения: