Обсуждение статьи "Создание торговой панели администратора на MQL5 (Часть XII): Интеграция форекс-калькулятора"

 

Опубликована статья Создание торговой панели администратора на MQL5 (Часть XII): Интеграция форекс-калькулятора:

Точный расчет ключевых торговых показателей — неотъемлемая часть рабочего процесса каждого трейдера. В этой статье мы рассмотрим интеграцию мощного инструмента — Форекс-калькулятора — в панель управления торговлей, что еще больше расширит функциональность нашей многопанельной системы администратора трейдера. Эффективное определение риска, размера позиции и потенциальной прибыли имеет важное значение при совершении сделок, и эта новая функция призвана сделать этот процесс более быстрым и интуитивно понятным прямо в панели. Присоединяйтесь к нам, чтобы изучить практическое применение MQL5 при создании продвинутых торговых панелей.

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

Для этого мы задействуем дополнительные классы из стандартной библиотеки MQL5. Вместо того чтобы поддерживать отдельные секции ввода для каждого типа ордеров, мы реализуем выпадающее меню для выбора ордера в сочетании с одной строкой ввода. Такая оптимизированная компоновка освободит место для компонентов нашего калькулятора.

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

Мы начнем с детального изучения ключевых форекс-терминов и величин, включая их определения, формулы и способы их представления в MQL5. Затем мы перейдем к этапу реализации, начиная с настройки раздела Ордеров в Панели управления торговлей, чтобы приспособить ее для пользовательского интерфейса калькулятора.

Изменения, вносимые в панель управления торговлей


Автор: Clemence Benjamin

 

Привет, Клеманс,

Очень хорошая статья. Я скачал ее, изменил расположение включаемых файлов, скомпилировал ее и она заработала! В моей предварительной оценке, я обнаружил, что верхняя вертикальная кнопка, когда нажата и больше ничего нет на графике, не полностью скрывает другие кнопки. Похоже, что ваша позиция xy не верна, так как вертикальная часть кнопки все еще распознает событие щелчка.

Также похоже, что у вас есть проблема с интервалом между некоторыми текстами. Однако это может быть вызвано моей спецификацией размера текста в Win11,


Прикрепленный файл иллюстрирует эту проблему.


Вот предложение для облегчения загрузки: создайте подкаталог в каталоге include и поместите в него все включаемые файлы, а также настройте операторы #include для распознавания подкаталога, #include <AdminPanel\....> Это также поможет загрузчикам держать свой каталог include лучше организованным.

Файлы:
EURUSDH4.png  52 kb
EURUSDH4_1.png  100 kb
 
CapeCoddah #:

Привет, Клеманс,

Очень хорошая статья. Я скачал ее, изменил расположение включаемых файлов, скомпилировал ее и она заработала! В моей предварительной оценке, я обнаружил, что верхняя вертикальная кнопка, когда нажата и больше ничего нет на графике, не полностью скрывает другие кнопки. Похоже, что ваша позиция xy не верна, так как вертикальная часть кнопки все еще распознает событие щелчка.

Также похоже, что у вас есть проблема с интервалом между некоторыми текстами. Однако это может быть вызвано моей спецификацией размера текста в Win11,


Прикрепленный файл иллюстрирует эту проблему.


Вот предложение для облегчения загрузки: создайте подкаталог в каталоге include и поместите в него все включаемые файлы, а также настройте операторы #include для распознавания подкаталога, #include <AdminPanel\....> Это также поможет загрузчикам держать свой каталог include лучше организованным.

Спасибо,@CapeCoddah, за ваш отзыв и за предложение более организованной структуры подкаталогов для файлов, связанных с этим проектом.

Я подумаю над тем, чтобы реализовать это в будущих обновлениях - это отличная идея и поможет избежать смешивания файлов из разных проектов.

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

CapeCoddah
CapeCoddah
  • 2021.05.17
  • www.mql5.com
Trader's profile
 

Здравствуйте,

Я пытался установить его, но ни одна кнопка не отображается, я вижу только два флажка. Я извлек файлы в папку Include, как упоминалось, и изображения были извлечены в папку images

 

Привет, Клеманс,

Я проверю это и дам вам знать через несколько дней.

Я использую !!! AdminPanel в качестве имени подкаталога. Двойное "!!!" поднимает подкаталог в верхнюю часть списка проводника файлов. Также при обновлении версии можно скопировать каталоги include ea и переименовать их в соответствии с номером версии, например, !!! AdmnPanel - 1.13. Если вы это сделаете, то в терминале будет оригинальный каталог EA, а также каталог с меткой поколения, так что вы сможете легко вернуться к запуску старой версии, если потребуется. Я нашел эту директиву: #property version _Version добавляет номер строки _Version к имени программы, отображаемому на экране ввода, что помогает понять, какая версия вам нужна. Я также использую Beyond Compare от Scooter Software, это потрясающая программа для сравнения версий друг с другом.

Я также собираюсь извлечь все вспомогательные функции в EA в заголовочный файл, чтобы я мог включить вашу систему в мою ea, поскольку я ценю всю отличную работу, которую вы вложили в этот проект. Мне также нравится ваше использование классов управления; я многому научусь, оценивая ваш код.

Будьте здоровы,

CapeCoddah

 

Привет еще раз,

Возможно, вы пожалеете о том дне, когда я скачал ваш советник Admin, но вот что получилось:

Я разделил уникальный код в советнике на Admin Common.mqh и скомпилировал его, и он работает.

Однако...

Когда я начал играть, кнопки сверху вниз работают хорошо, за исключением того, что нижняя кнопка ничего не делает. Но когда я перемещаю одну панель на другую, они "объединяются" и двигаются вместе. Это также происходит со всеми тремя панелями.


Экран 1 - программа с последовательным нажатием кнопок сверху вниз. Обратите внимание, что нижняя кнопка ничего не делает.

Экран 2 - наложение трех панелей. Если вы попытаетесь переместить одну из них, они все переместятся. Движение мыши должно различать, какой график следует переместить.

На экране 3 показано, как одно движение перемещает все три панели.

На экране 4 показано, что при нажатии на кнопку x одной из панелей (закрыть) программа закрывает все панели, а также завершает работу и удаляет себя.

На экране 5 показано, что при закрытии третьей панели с помощью кнопки X close и нажатии кнопки для ее повторного отображения, фоновая панель не перерисовывается.


Я также включил zip-файл, содержащий каталог includes и поместил в него исходный код !!! Кроме того, я включил мой GoldBug common. 99% его, вероятно, бесполезны, но он содержит DTS (Double to String)), так как я устал печатать длинное название. Версии DTSC не были полностью отлажены. Я планировал использовать их для вставки запятых для отображения валюты с или без $. Возможно, формат строки был бы проще.


Будьте здоровы! Ешьте свои пшеничные хлопья и счастливого программирования.


Cape CoddaH

Файлы:
 
CapeCoddah формат строки был бы проще.


Будьте здоровы! Ешьте ваши Wheaties и счастливого программирования


Кейп-КоддаХ

Спасибо@CapeCoddah за все ваши отзывы и усилия, которые вы приложили - они действительно способствуют созданию более стабильной версии этого многопанельного торгового инструмента.

Я очень ценю время, которое вы тратите на изучение и выяснение ситуации.

В настоящее время я изучаю проблемы, на которые вы обратили внимание, а также буду проверять представленные вами модификации. Улучшения уже на подходе.

С наилучшими пожеланиями,

Клеменс Бенджамин

CapeCoddah
CapeCoddah
  • 2021.05.17
  • www.mql5.com
Trader's profile
 
Oluwafemi Olabisi #:

Здравствуйте,

Я пытался установить его, но ни одна кнопка не отображается, я вижу только два флажка. Я извлек файлы в папку Include, как упоминалось, и изображения были извлечены в папку images

Здравствуйте @Oluwafemi Olabisi,

Не могли бы вы предоставить скриншот, чтобы я мог помочь вам более эффективно?

 
Clemence Benjamin #:

Здравствуйте @Oluwafemi Olabisi,

Не могли бы вы предоставить скриншот, чтобы я мог помочь вам более эффективно?

Я приложил здесь, как файлы были извлечены в каталоги INCLUDE и IMAGES соответственно.
 

Привет, Клеманс,

У меня есть несколько вопросов, и, возможно, вы сможете разрешить некоторые из них.

Первый - это тестер стратегий.

Когда я запускаю в нем свой советник, на тестовой машине не отображается ни один из текстов, кнопок панелей и т.д. Я заметил, что некоторые из ваших отображаются. У вас есть идеи, чем вызвана эта разница? Я планирую включить ваш советник в свой и попытаться определить, что вызывает различия.

Во-вторых, как вы связываетесь с MetaQuotes, чтобы передать им ошибки и предложения по улучшению. Я потратил немало времени на MQL5.com и не могу найти способ.

 
Oluwafemi Olabisi #:
Я прикрепил здесь, как файлы были извлечены в директории INCLUDE и IMAGES соответственно.

Советник должен находиться в папке experts, а не в папке include. После того, как вы переместите его, вы должны остановить советник и перезапустить его, чтобы советник появился в панели навигатора. Это одна из вещей, которую MQ должен изменить. По крайней мере, позволить пользователям сворачивать папку, либо Indicators, либо EXperts, а затем обновлять список во время команды expand, а не останавливать Terminal и перезапускать его, а затем открывать все подкаталоги, пока не достигнете цели. Еще лучше, чтобы они делали это автоматически, когда новый исполняемый файл помещается в подкаталог.