может быть сформированный программой торговый приказ на открытие, закрытие или
модификацию ордера.
После того как весь код специальной функции start() эксперта будет исполнен, функция
start() закончит свою работу и вернёт управление клиентскому терминалу. Некоторое
время клиентский терминал будет удерживать управление, не запуская на исполнение ни
одну из специальных функций. Возникает пауза, в течение которой программа не
работает. В дальнейшем, при поступлении нового тика, клиентский терминал снова
передаст управление специальной функции start(), в результате чего она снова начнёт
исполняться, а по окончании исполнения вернёт управление клиентскому терминалу. На
следующем тике функция start() снова будет запущена на исполнение клиентским
терминалом.
Процесс многократного вызова на исполнение специальной функции start() клиентским
терминалом будет продолжаться до тех пор, пока программа прикреплена к окну
финансового инструмента, и может продолжаться недели и месяцы. В течение всего этого
периода эксперт может осуществлять автоматическую торговлю, т.е. выполнять своё
основное назначение. На схеме процесс многократного исполнения функции start()
показан несколькими крупными жёлтыми стрелками, огибающими специальную функцию
start().
В момент, когда трейдер отсоединит эксперт от окна финансового инструмента,
клиентский терминал один раз запустит на исполнение специальную функцию deinit().
Исполнение этой функции вызвано необходимостью корректного завершения работы
эксперта. В процессе работы программа может, например, создавать графические объекты
и глобальные переменные клиентского терминала. Поэтому в коде функции deinit()
обычно указываются программные строки, исполнение которых приводит к удалению
теперь уже ненужных объектов и переменных. После завершения исполнения
специальной функции deinit() управление возвращается клиентскому терминалу.
Исполняющиеся специальные функции могут обращаться к информационному
окружению (тонкие синие стрелки на схеме) и вызывать для исполнения пользовательские
функции (тонкие жёлтые стрелки). Обратите внимание на то, что специальные функции
выполняются в результате их вызова клиентским терминалом в порядке,
предопределённом в свойствах этих функций: сначала init(), потом (многократно) start() и
потом deinit(). Условия, при которых клиентский терминал вызывает специальные
функции, описаны в разделе Специальные функции.
111