Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Библиотека MasterWindows - библиотека для MetaTrader 5
- Просмотров:
- 3703
- Рейтинг:
- Опубликован:
- 2016.03.15 10:52
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
В статье "MQL5 для "чайников": Как проектировать и конструировать классы объектов" показано, как можно создать удобный интерфейс для своих программ. Реализация интерактивных окон базируется на использовании библиотеки классов 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. Базовые варианты и возможности библиотеки
Например, для статьи "Исследование быстродействия скользящих средних в MQL5" был создан вот такой интерфейс с использованием предлагаемой библиотеки.
Рис. 3. Пример использования библиотеки MasterWindows
Советы:
- Для лучшего отображения созданных интерфейсных окон, используйте графические схемы с чёрным фоном.
Индикатор CCI в основном окне графика относительно индикатора скользящая средняя.
RSI_ChartИндикатор RSI в основном окне графика относительно индикатора скользящая средняя.
Альтернатива индикатору Bollinger Bands® с использованием Average True Range.
XMA_KLx7_Cloud_HTFИндикатор XMA_KLx7_Cloud с возможностью изменения таймфрейма индикатора во входных параметрах.