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

 

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

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

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

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

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



Автор: Andrei Novichkov

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

Спасибо, что делитесь своей работой с сообществом. Я изучаю MQL и в конечном итоге хочу создавать свои собственные советники, ваша работа с модулями и паттернами очень помогает мне.
Спасибо
Дэн
 
dmc9966 :
Господин Новичков,

Спасибо, что делитесь своей работой с сообществом. Я изучаю MQL и в конечном итоге хочу создавать свои собственные советники, ваша работа с модулями и паттернами очень помогает мне.
Спасибо
Дэн
Спасибо. Я рад помочь вам )
 

Мне очень понравился этот подход и наконец-то появилась структура для советника.

Что нужно изменить, чтобы адаптировать его к MQL4? Я использую библиотеку MQL_Easy для разработки общего кода для моего советника на обеих платформах.

Буду признателен за ваши советы. Спасибо.

 
Manuraj Dhanda:

Мне очень понравился этот подход и наконец-то появилась структура для советника.

Что нужно изменить, чтобы адаптировать его к MQL4? Я использую библиотеку MQL_Easy для разработки общего кода для моего советника на обеих платформах.

Буду признателен за ваши советы. Спасибо.

Для работы с MQL4 достаточно попробовать скомпилировать проект в MT4 )))) Ошибок быть не должно. Код довольно простой