Функции терминала и передача данных через интернет

 
Здравствуйте. Написал для своего нового мультивалютного бойца следующую функцию:
double CalcLot(string sym, double lot)
{//вычисляет лот для символа sym, при заданной величине лота lot
   double min=MarketInfo(sym, MODE_MINLOT);
   double max=MarketInfo(sym, MODE_MAXLOT);
   double step=MarketInfo(sym, MODE_LOTSTEP);      
   double lt=(MathFloor(MathAbs(lot)/step))*step;
   if(lt < min) return (min);
   if(lt > max) return (max);
   return (lt);
}
Её смысл - приведение величины лота к разрешенной по максимальной и минимальной величине, и по шагу. MathAbs() тут вызывается потому, что лотом я кодирую и тип операции. Положительный лот - покупка, отрицательный - продажа. Однако возник такой вопрос. Не полезет ли она по вызовам MarketInfo() в интернет ? Этого бы явно не хотелось из-за снижения быстродействия. Может быть лучше min, max и step для каждого символа запрашивать при инициализации ? И вообще меня давно интересует вопрос, какие функции терминала лезут в интернет за информацией от торгового сервера, и какие просматривают только внутреннюю базу данных (если таковая существует). Это важно для ускорения выполнения программ, чтобы зря не гонять по проводам байты.
 

По-моему, туда лезут только функции, начинающиеся с Order...

 
Вовсе не обязательно. Думаю врядли лезет в интернет функция OrderType() после того как ордер уже выбран через OrderSelect(). Но наверняка лезет в интернет (по крайней мере при первом вызове) MarketInfo(sym, ...) если sym отличен от Symbol(). Пока мне кажется, что есть данные на сервере, и есть локальная база данных самого терминала. Вот мне и интересно узнать, что лежит в локальной базе данных, и за чем приходится лезть в интернет.
 
Проверить просто - выдерните шнурок из модема и запустите эксперта. Только не забудьте после вызовов вставить проверку на ошибки:
   int err = GetLastError();
   if (err != 0)
   {
      Print("ERR");
   }
 
MarketInfo никак не подкачивает с торгового сервера.
Причина обращения: