В блоках 4-10 выполняется анализ состояния рыночных и отложенных ордеров.
Информация о большинстве событий, связанных с изменениями ордеров, доводится до
сведения пользователя. Анализ выполняется в два этапа. На первом этапе выявляются
изменения, касающиеся пропавших (закрытых или удалённых), поменявших тип,
частично закрытых и переоткрытых ордеров (блок 4-9). На втором этапе (блок 9-10)
осуществляется поиск новых ордеров.
В блоке 4-9 производится анализ ордеров, учтённых в массиве Mas_Ord_Old. Количество
итераций во внешнем цикл for устанавливается в соответствии с общим количеством
ордеров в этом массиве (элемент массива Mas_Ord_Old[0][0]). Для того чтобы определить,
сохранился ли ордер на текущий момент, необходимо найти аналогичный ордер в массиве
ордеров Mas_Ord_New. Этот поиск выполняется во внутреннем цикле for (блок 6-8),
количество итераций которого равно количеству ордеров в массиве (элемент массива
Mas_Ord_New[0][0]). В дальнейшем изложении массив Mas_Ord_Old именуется старым
массивом, а Mas_Ord_New - новым.
В блоках 6-8 выполняется поиск только тех ордеров, характеристики которых отличаются.
Например, в блоке 6-7 производится проверка ордера по его номеру (см. соответствие
индексов массивов характеристикам ордеров в Таблице 4). Если исследуемый ордер из
старого массива совпал по номеру с одним из ордеров нового массива, то этот ордер, по
крайней мере не закрыт (или удалён). При этом необходимо выяснить также, не
поменялся ли тип ордера. И если тип ордера изменился, значит отложенный ордер
преобразовался в рыночный. В этом случае с помощью функции Inform() выводится
необходимое сообщение. Независимо от факта изменения (или сохранения) типа ордера
дальнейшие исследования этого ордера прекращаются: осуществляется выход из
внутреннего цикла и, в конечном счёте, начало новой итерации внешнего цикла.
Если при исполнении блока 6-7 обнаружено, что исследуемый ордер из старого массива
не совпал по номеру ни с одним из ордеров нового массива, то управление передаётся в
блок 7-8. Здесь выясняется, есть ли у текущего ордера из нового массива ненулевой
MagicNumber (все ордера, открываемые и устанавливаемые экспертом, имеют ненулевой
MagicNumber). Если MagicNumber есть и он совпадает с MagicNumber исследуемого
ордера из старого массива, значит исследуемый ордер присутствует в торговле, но
претерпел какие-то преобразования. Преобразования, связанные с изменением номера
ордера, возникают в двух случаях.
Случай 1. Если ордер частично закрыт. Частичное закрытие рыночного ордера (для
отложенных ордеров не предусмотрено) в соответствии с технологией, принятой в среде
553