Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих" - страница 10

[Удален]  
pisenysh:

при компиляции выдает ошибку

return value of 'OrderSend' should be checked my_first_ea.mq5 211 10

что может быть не так? 

А это точно ошибка?
 
pisenysh:

при компиляции выдает ошибку

return value of 'OrderSend' should be checked my_first_ea.mq5 211 10

что может быть не так? 

Компилятор говорит, что необходимо обрабатывать результат выполнения торговой функции.
 

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

 
Grenjohn:

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

Минута состоит из ста секунд -  вам в какую ?
 
server:
Минута состоит из ста секунд -  вам в какую ?
Это в анналы ;)
 

Не понял!? Минута же состоит из 60 секунд. Я программирую советника, что бы он открывал позицию например в часов 12 минут 30 и мне нужно что бы в 45 секунд срабатывала. Когда ставлю 12:30 все срабатывает сделка открывается, только пытаюсь добавить секунды не срабатывает!!!??

 

 Вот в принципе сам код:

extern int tp = 1000;

extern int sl = 1000;
extern double Lots = 0.01;
int ticket;
int start()
  {
    if(OrdersTotal()==0 && Hour ( )==23 && Minute ( )==02 && Seconds ( )==30)
     {

    ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red);
    }
      if (OrdersTotal()==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30)
    {
   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
   OrderClose(ticket,Lots,Bid,20,Green);
    }
  }
 
Grenjohn:

 Вот в принципе сам код:

extern int tp = 1000;

extern int sl = 1000;
extern double Lots = 0.01;
int ticket;
int start()
  {
    if(OrdersTotal()==0 && Hour ( )==23 && Minute ( )==02 && Seconds ( )==30)
     {

    ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red);
    }
      if (OrdersTotal()==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30)
    {
   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
   OrderClose(ticket,Lots,Bid,20,Green);
    }
  }
Гы. Поставьте проверку Seconds() >= 30, ибо одна секунда может быстро проскочить и в течение неё ни один тик не прийдет. PS А код желательно стилем кода оформлять (кнопка SRC).
 
Да теперь все получается, спасибо большое! Действительно проблема была в быстроте секунды, за нее не успевал проходить тик.
 

А подскажите еще пожалуйста! Можно ли открывать и закрывать позиции в советники, четко по времени в секундах, независимо от тиков, как бы обычный таймер. То есть если на часах 12:52:25, то что бы позиция открывалась, а не ждала нового тика, так же и с закрытием?