Робот открывает сделку при открытии свечи.

 
 Кто знает, где найти робота который будет открывать сделки при открытии свечи.
 
void OpenPosition(void)
  {
   static datetime time_bar = 0;
   datetime _time_bar = iTime(_Symbol, PERIOD_CURRENT, 0);
   if(time_bar == _time_bar)
      return;
   time_bar = _time_bar;
//---
  }
 

только time_bar не статик и не внутри метода, вообще лучше брать прикладную библиотеку,привыкать к хорошему :-)

приведённый код правильный, но исключительно для тестера, по быстрому проверить идею.

В реальности он даёт баг который потом фик поймаешь, про рестарты советника и терминала.

 
Maxim Kuznetsov:

только time_bar не статик и не внутри метода, вообще лучше брать прикладную библиотеку,привыкать к хорошему :-)

приведённый код правильный, но исключительно для тестера, по быстрому проверить идею.

В реальности он даёт баг который потом фик поймаешь, про рестарты советника и терминала.

Вообще проще писать отдельный класс открывашки и все. в нем и делать приватные переменные. Это так чисто эскиз на коленке написанный =)))

class COpenPosition
  {
private:
   datetime          time_bar;
   void              Open_position(void)
     { /* открываем позицию */ }
public:
                     COpenPosition(void) : time_bar(0)     {    }
   void              work(void)
     {
      datetime _time_bar = iTime(_Symbol, PERIOD_CURRENT, 0);
      if(time_bar == _time_bar)
         return;
      time_bar = _time_bar;
      Open_position();
     }
  };
И проблем намного меньше конечно. Правда тем кто только входит в программирование, конечно проще просто функцию написать