Скачать MetaTrader 5

Народ, кто может объяснить почему игнорируется условие и срабатывает сразу после получения тика? Вот кусок кода

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужно пополнить счет? Пополняй удобным тебе способом!
trader781
1152
trader781 2016.10.07 10:14 
 double ma50=iMA(NULL,0,Period2,0,MODE_SMA,PRICE2,0);        //50
  if(Uslovie2==1)
     {
      if((Bid<=ma50))
        {
         OrderClose(OrderTicket(),OrderLots(),Bid,50,Violet);
        }
     } 

компилятор выдает

return value of 'OrderClose' should be checked

 

 Как сделать чтоб условие не игнорировалось, и насколько я понял он при каждом тике отправляет запрос из терминала, а таких условий может быть десяток. Цель - полуавтомат кроющий при совпадающих заданных параметрах.

Просьба не судить строго, сижу с учебником, пишу для себя. 

Vitalii Ananev
8133
Vitalii Ananev 2016.10.07 10:40  
trader781:

компилятор выдает

return value of 'OrderClose' should be checked

 

 Как сделать чтоб условие не игнорировалось, и насколько я понял он при каждом тике отправляет запрос из терминала, а таких условий может быть десяток. Цель - полуавтомат кроющий при совпадающих заданных параметрах.

Просьба не судить строго, сижу с учебником, пишу для себя. 

OrderClose() функция возвращающая значение типа bool компилятор вас просто предупреждает, о том что вы не проверяете значение возвращаемое этой функцией.

Вот код для примера:  

...
bool cls=OrderClose(OrderTicket(),OrderLots(),Bid,50,Violet);
if (cls) Print("Ордер ",OrderTicket() ," закрыт");
else Print("Ошибка закрытия ордера ",OrderTicket());
...
Ihor Herasko
9041
Ihor Herasko 2016.10.07 11:48  
Покажите до этого кусок кода, который выбирает ордер. Ведь в OrderClose передаются тикет и объем выбранного ордера. А как он выбран - непонятно. Если там вообще ничего не выбрано, то вот Вам и ответ: сначала выбираете ордер, а только потом можно использовать функции типа OrderTicket(), OrderLots(), OrderOpenPrice() и др.
trader781
1152
trader781 2016.10.07 11:54  
Ihor Herasko:
Покажите до этого кусок кода, который выбирает ордер. Ведь в OrderClose передаются тикет и объем выбранного ордера. А как он выбран - непонятно. Если там вообще ничего не выбрано, то вот Вам и ответ: сначала выбираете ордер, а только потом можно использовать функции типа OrderTicket(), OrderLots(), OrderOpenPrice() и др.

Его нет, не использовал потому что подразумевалось что будут закрыты все имеющиеся ордера при совпадении с каким - либо выбранным условием. Спасибо за замечание.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий