Russian

Текущие котировки

 ПараBidAsk
EURUSD 1.3585 1.3588
GBPUSD 1.4904 1.4907
USDJPY 90.30 90.33
USDCHF 1.0763 1.0766
USDCAD 1.0276 1.0279
EURJPY 122.62 122.65
EURCHF 1.4615 1.4618
GBPJPY 134.48 134.55
GBPCHF 1.6030 1.6037
GOLD 1126.30 1127.30

* Данные обновляются каждые 15 минут.
Предоставлено forex-брокером Instaforex

Наши преимущества

Советники, узнай все                   

Советники, отзывы трейдеров

V.I.P. Партнер. Платим вдвойне

Системы торговли. Торгуй на forex

Исполняемые файлы в 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 мегабайт под работу терминала.