Прежде, чем приступить к программированию торгующего эксперта, необходимо
обозначить общие контуры будущей программы. Каких-либо жёстких правил составления
программ не существует. Вместе с тем, однажды составив программу, программист
обычно продолжает совершенствовать её в будущем. Чтобы в дальнейшем в программе
можно было без труда разобраться, она должна быть составлена в соответствии с
осмысленной и интуитивно понятной схемой (особенно важно это бывает в случаях, когда
программа передаётся для доработки другому программисту). Наиболее удобно работать с
программой, состоящей из функциональных блоков, каждый из которых отвечает за свою
часть вычислений. Чтобы составить алгоритм торгующего эксперта, проанализируем, что
вообще должна делать работающая программа.
Одним из наиболее важных показателей при формировании торговых приказов являются
сведения о том, какие ордера в текущий момент уже имеются в терминале. Существуют
торговые стратегии, допускающие наличие только одного однонаправленного ордера. В
общем случае, если торговая стратегия это допускает, в терминале может быть открыто
одновременно несколько ордеров, однако их количество должно быть разумно
ограничено. При использовании любой стратегии торговые решения должны приниматься
с учётом текущей ситуации. Прежде, чем в программе будет принято какое бы то ни было
торговое решение, необходимо знать какие ордера уже открыты или установлены.
Поэтому программа должна содержать блок учёта ордеров, исполняемый в программе
одним из первых.
В процессе исполнения эксперта должны приниматься торговые решения, реализация
которых приводит к осуществлению торговых операций. Часть кода, отвечающую за
формирование торговых приказов, желательно выделить в отдельный блок. Эксперт
может сформировать торговый приказ для открытия нового отложенного или рыночного
ордера, закрытия или модификации какого-то из имеющихся ордеров или не осуществлять
никаких действий. В эксперте также должна вычисляться стоимость ордеров в
зависимости от пожеланий пользователя.
Торговые решения должны приниматься в программе на основе торговых критериев. От
того, насколько правильно в программе определяются торговые критерии, зависит
успешность всей программы. При вычислении торговых критериев программа может (и
должна) принимать во внимание любые сведения, которые могут оказаться полезными.
Например, эксперт может анализировать сочетание показателей технических
индикаторов, время обнародования важных новостей, текущее время, значения некоторых
686