604
Событие 2. Клиентский терминал получил управление и информацию о содержании
торгового приказа. В период времени t 2 - t 3 клиентский терминал анализирует
содержание торгового приказа и принимает решение о дальнейших событиях.
Событие 3. Клиентский терминал осуществляет принятое решение (один из двух
вариантов).
Вариант 1. В случае, если торговый приказ, сформированный в результате исполнения
одной из торговых функций, оказался некорректным, управление передаётся программе. В
этом случае следующим является Событие 4 (это возможно, например, в случае, если
программа создала торговый приказ открыть ордер, стоимость которого превышает
количество свободных средств на счёте).
Событие 4. Программа получила управление (момент времени t 4, зелёная точка) и может
продолжить исполнение с того места, где ранее был сформирован торговый приказ. В этот
же момент программа получила информацию о том, что торговый приказ не исполнен.
Какова причина отказа исполнения торгового приказа, можно выяснить, анализируя код
возвращаемой ошибки. Как это сделать, мы рассмотрим позднее. Здесь же важно
отметить, что не все торговые приказы приводят к осуществлению торговых операций. В
данном случае программа сформировала некорректный приказ, в результате чего
клиентский терминал отклонил этот приказ и вернул управление программе. Обращение к
серверу в этом случае не происходит. Интервалы времени t 1 - t 2 - t 3 - t 4
пренебрежительно малы и в общей сложности не превышают нескольких мс.
Вариант 2. В случае, если программа сформировала корректный торговый приказ,
клиентский терминал отправляет этот приказ на сервер, и тогда следующим событием
будет Событие 5 (момент t 5) - получение торгового приказа сервером. Связь между
клиентским терминалом и сервером осуществляется по сети Internet, поэтому время,
затраченное на пересылку торгового приказа на сервер (интервал времени t 3 - t 5),
полностью зависит от качества связи. При хорошей связи этот промежуток времени может
составлять приблизительно 5 - 10 мс, а при плохой связи может измеряться секундами.
Событие 5. В момент времени t 5 сервер получил торговый приказ. Сервер может
исполнить полученный приказ или отклонить его. Решение об исполнении или
отклонении приказа может быть принято на сервере через некоторое время (в момент t 6).
Интервал времени t 5 - t 6 может колебаться в зависимости от обстоятельств от
нескольких микросекунд до десятков секунд. В одних случаях, если сервер работает в
автоматическом режиме, на рынке нет резких движений цены и нет большой активности