Официальный сайт Булл Трейдерс

Исполняемые индикаторы в MQL4

Особенности реализации исполняемых файлов в ООП MQL4

Кроме того, существуют индикаторы, которые также обращаются в своих расчетах к значениям других индикаторов

исполняемые индикаторы в MQL4
исполняемые индикаторы в MQL4

Исполняемые файлы в MQL4 (скрипты, советники, индикаторы) Объект-график содержит в себе объект-советник, который содержит в себе объекты-индикаторы. Отобразим это представление двумя способами, стандартным и в виде диаграммы. Откроем график EURUSD, тайм-фрейм H1.

Повесим на график советник MACD Sample из стандартной поставки MetaTrader4, разрешим ему торговать. Также набросим стандартный индикатор Stochastic Oscillator(5,5,5) , стандартный индикатор Fractals и пользовательский индикатор Zigzag (тоже из стандартной поставки MetaTrader4) .

Получим такую картину:

стандартный индикатор Fractals
стандартный индикатор Fractals

Имеем три индикатора (два стандартных и один пользовательский), каждый из которых работает независимо от остальных. Кроме того, исполняется советник. Работа каждого из них требует машинного времени (ресурсов процессора) и размещения в оперативной памяти (ресурсов памяти). А теперь рассмотрим это под другим ракурсом: График EURUSD , H1 представляет из себя объект-окно графика, в который помещено еще три объекта-индикатора и один объект-эксперт (эти объекты называют дочерними). Объект-график получает ресурсы компьютера и распределяет его между своими дочерними объектами. Если заглянуть в код эксперта, то можно увидеть, что там содержится вызов стандартного индикатора MACD со значениями параметров 12, 26, 9. Обращение из советника к индикатору создает в самом эксперте еще один индикатор MACD(12,29,9), который мы не видим на графике, но, тем не менее, этот индикатор-объект также существует. Кроме того, существуют индикаторы, которые также обращаются в своих расчетах к значениям других индикаторов (стандартные или пользовательские - не имеет значения). То есть, кроме объектов, которые мы видим на графике, могут существовать и другие объекты - невидимые для нас. Но эти объекты также требуют ресурсов компьютера (процессора и оперативной памяти). Таким образом, на самом деле мы имеем не четыре объекта (три индикатора и один советник), а пять - три индикатора и один советник, содержащий один индикатор.

пользовательский индикатор Zigzag
пользовательский индикатор Zigzag

На деле, часто на график набрасывают значительно больше трех индикаторов, и используют советники, использующие вызовы более одного индикатора, и все эти объекты используют ресурсы, отводимые терминалу (программе MetaTrader4). Кроме того, при тестировании индикаторов и советников в одном терминале часто открывают до 10 и более графиков, каждый из которых содержит индикаторы и советник. Поэтому правильное написание исполняемых файлов и экономный алгоритм работы советников, скриптов и индикаторов имеет первостепенное значение. Напоследок приведу скриншот моего терминала в выходные (рынок не работает и котировки не поступают). Открыто 19 окон-графиков, каждый из которых содержит до 4 индикаторов.

программа MetaTrader4
программа MetaTrader4

Ресурсы процессора (ЦП) практически не используются, а вот память задействовала более 70 мегабайт под работу терминаа.