}
//--------------------------------------------------------------- 8 --
В блоке 1-2 приводится комментарий описания глобальных массивов, используемых в
функции. Глобальные массивы объявлены во включаемом файле Variables.mqh. В блоке 3-
4 содержание массива Mas_Ord_New копируется в массив Mas_Ord_Old. Таким образом,
ранее известное состояние ордеров запоминается и в дальнейшем может использоваться в
программе. Далее значения элементов массивов Mas_Ord_New и Mas_Tip, отражающих
новое состояние ордеров, обнуляется перед обновлением данных в блоке 4-7.
Блок 4-7 содержит цикл for, в котором последовательно опрашиваются все рыночные и
отложенные ордера по финансовому инструменту, в окно которого прикреплён эксперт.
Отбор ордеров производится с помощью функции OrderSelect() в соответствии с
параметром MODE_TRADES, заданным по умолчанию. В блоке 5-6 вычисляются все
необходимые характеристики для отобранных ордеров, и полученные значения заносятся
в массив новых ордеров Mas_Ord_New. Одновременно производится подсчёт количества
ордеров всех типов, и полученные значения присваиваются соответствующим элементам
массива Mas_Tip. По окончании цикла общее количество ордеров по финансовому
инструменту присваивается элементу Mas_Ord_New[0][0].
Отдельно нужно заметить, что анализ закрытых рыночных и удалённых отложенных
ордеров (исполнение функции OrderSelect() с параметром MODE_HISTORY) не
выполняется. Как правило, сведения о закрытых и удалённых ордерах в торгующих
экспертах не используются. Сведения о закрытых и отложенных ордерах представляют
историю по торговому счёту. Эти сведения могут быть использованы, например, для
построения диаграмм, отражающих динамику вложения средств и фактических
результатов торгов, однако не могут принести какую бы то ни было пользу для принятия
новых торговых решений. Технически учёт этой части ордеров может быть выполнен
аналогичным способом, однако, это - отдельная задача, которая не имеет отношения к
торговле.
Анализ событий, связанных с ордерами, в программе выполняется на основе сравнения
данных, имеющихся в рассмотренных массивах. Например, если массив Mas_Ord_Old
содержит сведения о некотором отложенном ордере, номер которого 246810, а массив
Mas_Ord_New содержит сведения о том же ордере 246810, но при этом ордер имеет уже
другой тип, значит отложенный ордер был преобразован в рыночный. Анализ ордеров
882