Обсуждение статьи "Создание торговой панели администратора на MQL5 (Часть IX): Организация кода (IV). Класс для панели управления торговлей"

 

Опубликована статья Создание торговой панели администратора на MQL5 (Часть IX): Организация кода (IV). Класс для панели управления торговлей:

Обновляем панель управления торговлей (TradeManagementPanel), используемую в нашем советнике New_Admin_Panel. В новой версии будем использовать встроенные классы и получим более удобный интерфейс управления сделками. В частности, добавим кнопки для открытия позиций, а также элементы для управления открытыми сделками и отложенными ордерами. Кроме того, в панели будет встроенная система управления рисками, чтобы устанавливать значения стоп-лосса и тейк-профита непосредственно через ее интерфейс. В целом обновление улучшает организацию самого кода, что важно для таких больших программ, а также упрощает доступ к инструментам управления ордерами — в определенных моментах это будет сделать проще, чем через интерфейс терминала.

Основная цель этой серии — применять MQL5 на практике на примере различных проектов. В данной статье мы разработаем класс панели управления торговлей (Trade Management Panel). Сразу напомню, что в MQL5 заголовок класса содержит объявления однотипных переменных. В данном контексте все торговые функции, которые мы планируем включить в панель, будут наследоваться от встроенных заголовков классов CTrade, CDialog, CLabel и CEdit.

После того как класс будет полностью разработан, мы интегрируем его методы в основную программу — советник NewAdminPanel. И конечно же, в конце мы увидим результаты тестирования. Кроме того, все исходные файлы приложены к статье, чтобы вы могли изучить реализацию, позаимствовать идеи и поэкспериментировать с кодом в собственных проектах.

На данном этапе я решил оставить создание главной панели непосредственно в основной программе, так как сама по себе она не сильно увеличивает код. Хотя у предыдущего подхода были свои преимущества, я выбрал такую структуру, поскольку она упрощает разработку за счет уменьшения зависимостей. Моя цель — сохранить основной программный код максимально сжатым, используя при этом отдельный класс для каждой конкретной функции. Базовые элементы интерфейса теперь создаются напрямую в главной программе, что дает более лаконичный и эффективный дизайну. В результате у нас больше нет вызовов методов класса AdminHomeDialog в NewAdminPanel. 

На рисунке ниже показано, что мы должны получить к концу статьи. Но это всего лишь первый этап. Сама панель должна стать основой для дальнейших расширений и улучшений.

Автор: Clemence Benjamin