ulong

 

Непонятно:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   while(!IsStopped()) {
    ulong last_deal=ULONG_MAX; 
    if(last_deal<0) Print("last_deal = ",last_deal);
    Sleep(50);
   }
   if(_LastError!=0) Print(__FUNCTION__,__LINE__,"_LastError=",_LastError);
}
 
dupter:

Непонятно:

 

действительно странно. 
 

Также, нет предупреждения при копмиляции вашего примера, которое исправно выдается если заменить ulong на uint или прочие unsigned:

void OnStart()
  {
   while(!IsStopped())
     {
      uint last_deal=UINT_MAX;
      if(last_deal<0) Print("last_deal = ",last_deal);
      Sleep(50);
     }
   if(_LastError!=0) Print(__FUNCTION__,__LINE__,"_LastError=",_LastError);
  }

 expression is always false

0 error(s), 1 warning(s) 

В общем, с этим в сервисдеск прямая дорога.
 
Уже исправили.