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

 
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, то что бы позиция открывалась, а не ждала нового тика, так же и с закрытием?

 
Grenjohn:

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

Запустите таймер с нужной частотой и проверяйте в нем наступление нужного времени.

Или посчитайте, через сколько ему надо сработать (12:52:25 - время запуска), и выставьте точный интервал.

Только не нарвитесь на запрет торговли, таймер сработает даже когда рынок будет закрыт. 

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