OrderSend error 3

 

 Вот моя функция OrderSend:

int ticket = OrderSend(Symbol(),type,lot,GetPriceToInput(),NULL,0,0," ",magic,86400,Green);

  Советник мне выдавал ошибку OrderSend error 3 пhи установке отложенных ордеров тикам образом, до тех пор, пока я не поставил значение expiration в 0 в параметре функции.

 Но мне нужно чтобы значение expiration было 86400, а не 0. Что это за глюк? Если там поставить 0, то ошибки нет, и ордера устанавливаются в нужных местах.

 
hoz:

 Вот моя функция OrderSend:

  Советник мне выдавал ошибку OrderSend error 3 пhи установке отложенных ордеров тикам образом, до тех пор, пока я не поставил значение expiration в 0 в параметре функции.

 Но мне нужно чтобы значение expiration было 86400, а не 0. Что это за глюк? Если там поставить 0, то ошибки нет, и ордера устанавливаются в нужных местах.


expiration  это время истечения (дата истечения), а не через сколько времени.

Соответственно со сроком истечения в 1970-м году ордер и не ставится

 
 Тогда как мне установить время истечения через N-секунд? Например, нужно, чтобы ордер закрылся через 12 часов. Как мне быть?
 
hoz:
 Тогда как мне установить время истечения через N-секунд? Например, нужно, чтобы ордер закрылся через 12 часов. Как мне быть?

просто прибавить N секунд к текущему времени.
По идее 

TimeCurrent( ) +N;
должно работать.

 
Да, я сегодня столкнулся с такой же проблемой, то ошибка №3, то ошибка № 130. Перепробовал много что и пришел к мнению, что возникает она потому, что некоторые переменные, которые несут в себе параметры текущей цены не обнуляются прежде чем проинициализироваться и по этому в функцию попадают старые параметры, которые по идее, пока компилятор проверяет код уже были изменены на рынке(хоть компилятор MQL и шустрый(быстрый)), и вот по этому, лично у меня возникала ошибка, что не правильные стопы, или не правильные параметры функции. У меня некоторые переменные были объявлены глобально, так как мне надо было отложенные ордера выставлять в одном и том же месте цены, а по условию, если допустим на продажу Ask меньше этой цены, то выставляем отложенный ордер по этой цене, а если Ask больше этой цены, то выставляем ордер от текущей цены Ask на покупку.И вот переменная, куда у меня присваивались все эти расчеты нормализации и которую я потом передавал в функцию OrderSend не обнулялась прежде чем должны были произойти расчеты, а была объявлена глобально и я ее объявил локально в самом условии и вроде как ошибка пропала.