Исполняемые файлы в MQL-4 (скрипты, советники, индикаторы)

advertisement
Исполняемые файлы в MQL-4 (скрипты, советники, индикаторы)
В MQL-4 существуют три вида самостоятельно исполняемых файлов, каждый из которых
выполняет собственную задачу. По этой же причине, каждый их этих видов располагается в
своей директории, скрипты хранятся в папке …MetaTrader 4expertsscripts , индикаторы в
папке …MetaTrader 4expertsindicators, а советники в папке …MetaTrader 4experts , которая
содержит и папки …scripts и …indicators. Сделано это для того, чтобы уже по месту
нахождения файла можно было определить тип файла, так как расширение у них одинаковое
— *.mq4.
Каждый из этих типов файлов выполняет только свои функции. Так, отражать на графике
различные кривые наиболее простым и экономичным способом можно только из
индикаторов, а проводить торговые операции на счету можно только скриптами и
советниками. Тут можно сделать маленькое отступление: утверждение о невозможности
рисования из скриптов и советников можно, вроде бы, опровергнуть — создавать и наносить
графические объекты (линии вертикальные, горизонтальные и трендовые (в виде луча),
значки разных стилей и цветов) можно и из скриптов и советников. Но попробуйте
переключить тайм-фрейм графика — и все придется делать заново, потому что графические
объекты имеют привязку по времени и цене, и на другом тайм-фрейме нужно будет удалять
все объекты и рисовать новые.
Индикаторы, скрипты и советники также являются объектами. На график можно повесить
советника, который будет в своем коде обращаться к одному или нескольким индикаторам,
скрипт также не ограничен в вызовах индикаторов (пользовательских или стандартных).
Можно также повесить индикатор, который строится на значениях другого индикатора, а тот
в свою очередь вызывает для расчета третий индикатор. Все это в терминах ООП (объектноориентированного программирования) можно охарактеризовать так. Объект-график
содержит в себе объект-советник, который содержит в себе объекты-индикаторы. Отобразим
это представление двумя способами, стандартным и в виде диаграммы. Откроем график
EURUSD, тайм-фрейм H1. Повесим на график советник MACD Sample из стандартной
поставки MetaTrader4, разрешим ему торговать. Также набросим стандартный индикатор
Stochastic Oscillator(5,5,5) , стандартный индикатор Fractals и пользовательский индикатор
Zigzag (тоже из стандартной поставки MetaTrader4) . Получим такую картину:
Имеем три индикатора (два стандартных и один пользовательский), каждый из которых
работает независимо от остальных. Кроме того, исполняется советник. Работа каждого из
них требует машинного времени (ресурсов процессора) и размещения в оперативной памяти
(ресурсов памяти). А теперь рассмотрим это под другим ракурсом: График EURUSD , H1
представляет из себя объект-окно графика, в который помещено еще три объекта-индикатора
и один объект-эксперт (эти объекты называют дочерними). Объект-график получает ресурсы
компьютера и распределяет его между своими дочерними объектами. Если заглянуть в код
эксперта, то можно увидеть, что там содержится вызов стандартного индикатора MACD со
значениями параметров 12, 26, 9. Обращение из советника к индикатору создает в самом
эксперте еще один индикатор MACD(12,29,9), который мы не видим на графике, но, тем не
менее, этот индикатор-объект также существует. Кроме того, существуют индикаторы,
которые также обращаются в своих расчетах к значениям других индикаторов (стандартные
или пользовательские — не имеет значения). То есть, кроме объектов, которые мы видим на
графике, могут существовать и другие объекты — невидимые для нас. Но эти объекты также
требуют ресурсов компьютера (процессора и оперативной памяти). Таким образом, на самом
деле мы имеем не четыре объекта (три индикатора и один советник), а пять — три
индикатора и один советник, содержащий один индикатор.
На деле, часто на график набрасывают значительно больше трех индикаторов, и используют
советники, использующие вызовы более одного индикатора, и все эти объекты используют
ресурсы, отводимые терминалу (программе MetaTrader4). Кроме того, при тестировании
индикаторов и советников в одном терминале часто открывают до 10 и более графиков,
каждый из которых содержит индикаторы и советник. Поэтому правильное написание
исполняемых файлов и экономный алгоритм работы советников, скриптов и индикаторов
имеет первостепенное значение. Напоследок приведу скриншот моего терминала в выходные
(рынок не работает и котировки не поступают). Открыто 19 окон-графиков, каждый из
которых содержит до 4 индикаторов.
Ресурсы процессора (ЦП) практически не используются, а вот память задействовала более 70
мегабайт под работу терминала.
Download