Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Библиотека MasterWindows - библиотека для MetaTrader 5

Просмотров:
3703
Рейтинг:
(34)
Опубликован:
2016.03.15 10:52
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

В статье "MQL5 для "чайников": Как проектировать и конструировать классы объектов" показано, как можно создать удобный интерфейс для своих программ. Реализация интерактивных окон базируется на использовании библиотеки классов MasterWindows.

Рис. 1. Вариант применения библиотеки MasterWindows

Рис. 1. Вариант использования библиотеки MasterWindows

Библиотека MasterWindows состоит из 3-х базовых классов:

  • базовый класс ячейка CCell:
    //+------------------------------------------------------------------+
    //| Базовый класс ЯЧЕЙКА  CCell                                      |
    //+------------------------------------------------------------------+
    class CCell
      {
    private:
    protected:
       bool              on_event;      // флаг обработки событий
       ENUM_OBJECT       type;          // тип ячейки
    public:
       WinCell           Property;      // свойства ячейки
       string            name;          // имя ячейки
       //+---------------------------------------------------------------+
       // Конструктор класса
       void              CCell();
       virtual     // Метод: нарисовать объект
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // Метод обработки события OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
  • базовый класс строка CRow, состоит из ячеек класса CCell:
    //+------------------------------------------------------------------+
    //| Базовый класс СТРОКА  CRow                                       |
    //+------------------------------------------------------------------+
    class CRow
      {
    protected:
       bool              on_event;      // флаг обработки событий
    public:
       string            name;          // имя строки
       WinCell           Property;      // свойства строки
       //+---------------------------------------------------------------+
       // Конструктор класса
       void              CRow();
       virtual     // Метод: нарисовать строку
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // Метод обработки события OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
  • базовый класс окно CWin, состоит из строк класса CRow:
    //+------------------------------------------------------------------+
    //| Базовый класс ОКНО  CWin                                         |
    //+------------------------------------------------------------------+
    class CWin
      {
    private:
       void              SetXY(int m_corner);// Метод расчёта координат
    protected:
       bool              on_event;   // флаг обработки событий
    public:
       string            name;       // имя окна
       int               w_corner;   // угол привязки
       int               w_xdelta;   // вертикальный отступ
       int               w_ydelta;   // горизонтальный отступ
       int               w_xpos;     // координата X точки привязки
       int               w_ypos;     // координата Y точки привязки
       int               w_bsize;    // ширина окна
       int               w_hsize;    // высота окна
       int               w_h_corner; // угол привязки HIDE режима
       WinCell           Property;   // свойства окна
       //---
       CRowType1         STR1;       // объявление строки класса
       CRowType2         STR2;       // объявление строки класса
       CRowType3         STR3;       // объявление строки класса
       CRowType4         STR4;       // объявление строки класса
       CRowType5         STR5;       // объявление строки класса
       CRowType6         STR6;       // объявление строки класса
       //+---------------------------------------------------------------+
       // Конструктор класса
       void              CWin();
       // Метод получения данных
       void              SetWin(string m_name,
                                int m_xdelta,
                                int m_ydelta,
                                int m_bsize,
                                int m_corner);
       virtual     // Метод: нарисовать окно формы
       void              Draw(int &MMint[][3],
                              string &MMstr[][3],
                              int count);
       virtual     // Метод обработки события OnEventTick
       void              OnEventTick();
       virtual     // Метод обработки события OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };

и 10-ти наследников.

Шаблоны и образцы кода, где используется библиотека MasterWindows, прилагаются. Все коды были сгенерированы с помощью визуального конструктора окон MasterWindows for MQL5. Тестовые программы представляют собой макеты, т.е. без функционала (кроме двух функций: закрыть и спрятать окно).

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

Рис. 2. Базовые варианты интерфейсных окон.

Рис. 2. Базовые варианты и возможности библиотеки

Например, для статьи "Исследование быстродействия скользящих средних в MQL5" был создан вот такой интерфейс с использованием предлагаемой библиотеки.

Рис. 3. Пример использования библиотеки.

Рис. 3. Пример использования библиотеки MasterWindows

Советы:

  • Для лучшего отображения созданных интерфейсных окон, используйте графические схемы с чёрным фоном.
CCI_Chart CCI_Chart

Индикатор CCI в основном окне графика относительно индикатора скользящая средняя.

RSI_Chart RSI_Chart

Индикатор RSI в основном окне графика относительно индикатора скользящая средняя.

True_Range_Bands True_Range_Bands

Альтернатива индикатору Bollinger Bands® с использованием Average True Range.

XMA_KLx7_Cloud_HTF XMA_KLx7_Cloud_HTF

Индикатор XMA_KLx7_Cloud с возможностью изменения таймфрейма индикатора во входных параметрах.