открытие ордера на новом баре - страница 2

 
ixtorioне срабатывает всеравно...попробовал сменить с труе на фолс и в тестере сработало но в реал терминале нехочет

 Нашли, но кривую, или неправильно(не полностью) скопировали. Лучше так: 

extern int  OrdersLimit = 3;

datetime lastTime=0;

int OnInit()
{
  lastTime=Time[0];
  return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
   if(fNewBar()) func();
}
int func()
{ 
   int ticket = 0;
   if(OrdersTotal() >= OrdersLimit)
   {
      return 0;
   }
   ticket = OrderSend(Symbol(), OP_SELL, 0.01, Bid, 0, 0, 0, "", 12345, 0, Red);
   if(ticket < 0) Print("Ошибка №"+_LastError);
   else Print("Успех");
   
   return (0);
}

bool fNewBar()
{
  datetime NewTime = Time[0];
  if(lastTime != NewTime)
  {    
    lastTime = NewTime;
    return(true);
   }
  else return(false);     
}

И желательно искать только ордера советника (пересчётом в цикле, от  OrdersTotal()-1 до 0), а не сравнивать с OrdersTotal(), если торговля на счёте ведётся комбинированно.

Но для начала, можно и так.

Ну и ошибку лучше выводить с номером ошибки, чтобы проще было найти причину отказа.

Причина обращения: