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

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

Просмотров:
4836
Рейтинг:
(29)
Опубликован:
2016.07.06 14:44
Обновлен:
2016.11.22 07:32
\MQL4\Include\ \MQL4\Experts\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

В статье "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. Пример использования библиотеки MasterWindows

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

Галерея:

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

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

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

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

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

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

Рис. 7. Пример использования библиотеки в мультивалютной торговой панели

Рис. 7. Пример использования библиотеки в мультивалютной торговой панели

Советы:

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

Советник открывает после убытка ордера с увеличенными на коэффициент стопами.

Jupiter M Jupiter M

Мартингейл-сеточник. Главная идея советника — не точные входы, а гибкое построение сеток.

AwesomeOC AwesomeOC

Переделанный стандартный индикатор Вильямса Awesome Oscillator. Рекомендуемый таймфрейм - 15 минут.

Индикатор опционных уровней Индикатор опционных уровней

Индикатор предназначен для расчета и вывода на экран опционных уровней.