Обсуждение статьи "Построение советника с использованием отдельных модулей"

 

Опубликована статья Построение советника с использованием отдельных модулей:

В процессе разработки индикаторов, советников и скриптов, разработчику приходится постоянно создавать законченные фрагменты кода, непосредственного отношения к стратегии торговли не имеющих. В статье рассмотрен способ проектирования советников с использованием ранее спроектированных отдельных блоков - тралов, фильтров, расписаний и т.п. Разобрана полезная особенность такого рода проектирования.

Начнем с того, что попытаемся понять, как может выглядеть такой советник, спроектированный "на коленке" и из каких частей / компонентов / модулей он может состоять. Откуда вообще такие компоненты могут появиться? Ответ прост и понятен — в процессе постоянной разработки, раз за разом, разработчик вынужден проектировать отдельные компоненты со сходным, а то и одинаковым функционалом.

Довольно быстро становится очевидным, что каждый раз изготавливать, например, трал — пустая трата времени. В общем случае, у трала для любого советника будут одинаковые задачи и примерно одинаковые входные параметры. Поэтому разработчик проектирует трал один раз и вставляет его во все советники, где имеется в этом необходимость, с минимальными усилиями. То же самое можно сказать и о множестве других компонентов — об уже упомянутом нами компоненте расписания, различных новостных фильтрах и модулях, объединяющих торговые функции и прочее.

В результате советник получается довольно хаотично изготовленным из своего рода конструктора, из отдельных программных модулей / блоков. Модули обмениваются информацией друг с другом и с "центральной частью" советника — "стратегией", принимающей решения. Отобразим возможный вариант взаимоотношений отдельных модулей:



Автор: Andrei Novichkov

 
Модульность, взаимозаменяемость, базовые принципы проектирования. Думаю для большинства кто занимается разработкой на более-менее регулярной основе это очевидно и нового ничего статья не несёт. Но для новичков, кто вообще через MQL знакомится с программированием может и откроет глаза)