Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 4570
- Рейтинг:
- голосов: 27
- Опубликован:
- 2016.07.06 14:44
- Обновлен:
- 2016.11.22 07:32
В статье "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
Галерея:
Рис. 4. Пример использования библиотеки в торговой панели
Рис. 5. Пример использования библиотеки в игровой панели
Рис. 6. Пример использования библиотеки в торговой панели
Рис. 7. Пример использования библиотеки в мультивалютной торговой панели
Советы:
- Для лучшего отображения созданных интерфейсных окон, используйте графические схемы с чёрным фоном.

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

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

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

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