355
также сообщив причину отказа в работе. Если противопоказаний общего характера нет, то
управление передаётся в блок учёта ордеров.
В блоке учёта ордеров вычисляется количество и качество ордеров, имеющихся в
терминале по некоторому финансовому инструменту (в окно которого присоединён
эксперт). В этом блоке должны быть отсеяны ордера по другим финансовым
инструментам. Если программируемая торговая стратегия предполагает использование
только рыночных ордеров (и не использует отложенные ордера), то должен быть
обнаружен факт наличия отложенных ордеров. Если стратегия допускает только один
рыночный ордер, а фактически их несколько, то этот факт также должен быть известен.
Задача блока учёта ордеров (в этой схеме) состоит в том, чтобы определить соответствует
ли текущая торговая ситуация ожидаемой, т. е такой, в которой эксперт может
полноценно работать. И если соответствует, то управление должно быть передано
следующему блоку для продолжения работы эксперта, а если нет, то необходимо
прекратить работу эксперта и сообщить об этом пользователю.
Если в терминале нет ордеров или количество и качество имеющихся ордеров
соответствует ожидаемому, то управление передаётся в блок определения торговых
критериев. В этом блоке должны быть вычислены все критерии, необходимые для
принятия торговых решений, а именно критерии для открытия, закрытия и модификации
ордеров. Далее управление передаётся в блок закрытия ордеров.
Нетрудно понять, почему в представленной схеме блок закрытия ордеров исполняется
раньше, чем блок открытия ордеров. Всегда разумнее сначала выполнить обработку
имеющихся ордеров (закрыть или модифицировать) и лишь после этого открывать новые
ордера. В целом правильно исходить из стремления иметь в терминале как можно меньше
ордеров. В процессе исполнения этого блока должны быть закрыты все ордера, для
которых сработал критерий закрытия.
После того, как необходимые ордера закрыты, управление передаётся в блок вычисления
размера новых ордеров. Существует множество алгоритмов для вычисления объема
ордера. Самый простой из них - постоянный, фиксированный лот. Этот алгоритм удобно
включать в программу для тестирования стратегии. Более распространённый способ
определения размера ордера состоит в том, что количество лотов ставится в зависимость
от суммы свободных средств, например, может составлять 30-40%. Если средств на счёте
недостаточно, то программа заканчивает работу, предварительно уведомив пользователя о
причине.