Обсуждение статьи "Торговый эксперт с графическим интерфейсом: Создание панели (Часть I)"

 

Опубликована статья Торговый эксперт с графическим интерфейсом: Создание панели (Часть I):

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

Для визуализации данных по символам предназначен элемент типа CStandardChart. По умолчанию будет показываться график EURUSD на дневном таймфрейме. В нем задействованы следующие свойства.

  • Горизонтальный скроллинг.
  • Автоматическая подстройка ширины.
  • Автоматическая подстройка высоты.
  • Отступ от правого края главного элемента.
  • Отступ от нижнего края главного элемента.

При необходимости можно создать массив графиков, выстроенных в горизонтальный ряд. Для этого воспользуйтесь методом CStandardChart::AddSubChart() передав в него в качестве аргументов символ и таймфрейм графика. Но в данном случае нам нужен только один график, а символы и таймфреймы будем переключать с помощью других элементов управления.

Автор: Anatoli Kazharski

 

Здравствуйте. Как исправить ошибку при компиляции?:

'ON_END_CREATE_GUI' - undeclared identifier Program.mqh 307 29


 
kogriv:

Здравствуйте. Как исправить ошибку при компиляции?:

'ON_END_CREATE_GUI' - undeclared identifier Program.mqh 307 29

Обновить библиотеку: 

EasyAndFastGUI - библиотека для создания графических интерфейсов


И файлы библиотеки приложенные к статье.

Наименование файлаКомментарий
MQL5\Include\EasyAndFastGUI\Controls\Table.mqhОбновлённый класс CTable
MQL5\Include\EasyAndFastGUI\Keys.mqhОбновлённый класс CKeys
 

Анатолий, подскажите пож-ста вот по такому моменту.

На Рис.11 добавлен стандартный график. Вопрос такой. Он имеет уникальный id? Либо я плохо искал, либо, куда-то далеко он запрятан. Задача у меня такая: на этом добавленном графике нарисовать свой небольшой канвас. Спасибо за огромный труд по графической библиотеке.

 

Пытаюсь постепенно ассимилировать сей огромный и многоликий GUI комплекс, за который автору большое спасибо, но возникают вопросы.

Зачем несколько раз вызывать AddToElementsArray в процессе создания одного элемента? Если, например, таб входит в состав окна, то вызов m_tabs1.AddToElementsArray(0,m_date_scale) не должен ли автоматически вызывать CWndContainer::AddToElementsArray у родителя (насколько я понял терминологию, родители называются главными элементами, и у всех элементов они должны быть, и все они должны быть внутри CWndContainer, то есть все связи для автоматического вызова есть)?

В принципе, наличие вызовов двух "встречных" по смыслу методов (child.MainPointer(parent) и AddToElementsArray(child)) при создании элементов выглядит неоптимальным. Почему бы установку отношений начальник подчиненный не развернуть в противоположную сторону и не объединить в одном вызове а-ля parent.Add(child), который внутри сам сделает AddToElementsArray и child.MainPointer(parent) если надо?

Почему для табов нужно делать AddToElementsArray до создания объекта, а для CWndContainer после?

Почему не сделать возможной установку всех опций перед созданием элемента? Сейчас получается, что свойства искусственно делятся на 2 части: которые нужно установить до вызова Create, и те, которые нужно вызвать позже. А что мешает состояние флага и текста задавать в той же группе операторов, где указываются размер, опции и пр.?

Зачем CWndContainer::AddToElementsArray первым параметром 0, если в подавляющем большинстве случаев используется одно окно и индекс можно сделать вторым опциональным параметром.

Не было идеи унифицировать создание разнотипных элементов с помощью единого виртуального метода Create? Сейчас у каждого типа элемента своя собственная функция CreateBlaBlaBla - а зачем так?

Почему в методах-помощниках (таких как CreateComboBoxTF и пр.) через параметры задается только позиция элемента, а его размер указывается внутри? С учетом выравнивания, размер и позиция должны меняться "синхронно", в одном месте программы, т.е. если координаты сочтены достойными передачи извне в качестве параметров, то и размер там же должен быть.

В статье https://www.mql5.com/ru/articles/3366 был приведен пример эксперта со всеми контролами, но он несовместим с последней версией. Есть обновленный пример?

 

Файл TradePanel.mq5 не компилируется!

Причина обращения: