Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное. Тимур Машнин

Чтение книги онлайн.

Читать онлайн книгу Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин страница 9

Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин

Скачать книгу

переменную с модификатором extern.

      Отличие extern переменных от статических глобальных переменных проще всего продемонстрировать на индикаторе MACD.

      Индикатор MACD имеет включаемый файл MovingAverages, обозначенный с помощью директивы #include и расположенный в папке Include.

      Если в файле MovingAverages и файле MACD одновременно объявить extern-переменную:

      extern int a=0;

      то при компиляции обоих файлов все пройдет удачно, и переменную можно будет использовать.

      Если же в файле MovingAverages и файле MACD одновременно объявить статическую глобальную переменную:

      static int a=0;

      тогда при компиляции обоих файлов возникнет ошибка.

      Помимо команды #include полезной является также директива #define, которая позволяет делать подстановку выражения вместо идентификатора, например:

      #define PI 3.14

      Хэндл индикатора

      Начнем с цитаты:

      HANDLE идентифицирует объект, которым Вы можете манипулировать. Джеффри РИХТЕР «Windows для профессионалов».

      Переменные типа handle представляют собой указатель на некоторую системную структуру или индекс в некоторой системной таблице, которая содержит адрес структуры.

      Таким образом, получив хэндл некоторого индикатора, мы можем использовать его данные для построения своего индикатора.

      Хэндл индикатора представляет собой переменную типа int и объявляется, как правило, после объявления массивов буферов индикатора, вместе с глобальными переменными, например в индикаторе MACD:

      Объявляются два хэндла – int ExtFastMaHandle и int ExtSlowMaHandle.

      Здесь хэндлы индикаторов – это указатели на индикатор скользящего среднего с разными периодами 12 и 26.

      Объявив эти переменные, мы естественно реально ничего не получаем, так как объекта индикатора, данные которого мы хотим использовать, еще не существует.

      Создать в глобальном кеше клиентского терминала копию соответствующего технического индикатора и получить ссылку на нее можно несколькими способами.

      Если это стандартный индикатор, проще всего получить его хэндл можно с помощью стандартной функции для работы с техническими индикаторами.

      Стандартная функция для индикатора скользящего среднего это функция iMA.

      И в индикаторе MACD хэндлы индикатора скользящего среднего получаются с помощью вызова функции iMA в функции OnInit ().

      где используются свойства индикатора – InpFastEMA, InpSlowEMA и InpAppliedPrice.

      Предположим, что мы хотим использовать не стандартный, а пользовательский индикатор.

      В папке Indicators/Examples редактора MQL5 есть нужный нам индикатор – это файл Custom Moving Average.mq5.

Скачать книгу