![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1.
2.
3.
4.
5.
6.
7.
Окна настроек выше предназначены для тестирования подключения и реагирования на события интерфейса пользовательским функционалом.
Для этого откройте файл API и пропишите свои вызовы.
По умолчанию, события интерфейса вызывают функцию Alert() печатающую их идентификатор и значение параметра на событиях воздействия на элементы.
Перечень исправлений и обновлений в этом и следующем релизе:
Поведение окон контекстного меню аналогично их поведению в среде виндоус приложения.
Опции контекстного меню могут вызывать функции или окна. Если пункт меню вызывает окно, значек окна автоматически устанавливается слева.
Локальные изменения и улучшения:
Довлена возможность блокирующих сообщений.
Пример:Сначала откройте разные окна настроек. Их кнопки внизу таскбара. Затем зайдите в контекстное меню (дабл-клик на график) и откройте окно "Sorry, this order is blocked". Оно находится здесь:
Затем попробуйте кликнуть на любое ранее открытое окно при открытом окне "Sorry, this order is blocked". Любые действия с другими окнами будут заблокированы до закрытия этого окна. Однако можно ограничить список блокируемых окон в свойствах окна в киб-коде. Тогда какие то окна будут блокироваться, а какие то нет. В зависимости от решения пользователя.
Добавлено:
Теперь окна меню всегда остаются внутри пространства графика и не уходят за пределы видимости. Пример:
НЕ ВЫХОДЯТ ЗА ПРАВУЮ ГРАНИЦУ ГРАФИКА:
НЕ ВЫХОДЯТ ЗА НИЖНЮЮ ГРАНИЦУ ГРАФИКА:
Отсутствие расставленных приоритетов направлений разработки никогда не ведет к хорошим результатам. Элементарная истина которую знают все профессиональные разработчики. 4 года назад я не смог выставить законченную версию конструктора потому что не имел план завершения. Если бы план был, все бы давно закончил. Следующая причина остановки проекта в бесплодных спорах с чужими мнениями на форуме. Дебаты о подходах в программировании или нужности-ненужности графического интерфейса как такового... К сожалению, это была бесполезная потеря времени.
Так в чем же заключается завершение этого проекта? Ответ на этот вопрос очень важен, потому что определяет выбор направлений дальнейшей разработки.
И так, как я это представляю:
1. Программное управление элементами интерфейса.
Одна из главных задач на текущий момент. Сейчас юзер может только "ловить" события GUI в файле API, но не получать/менять свойства элементов или значения параметров. Взвешивая сложность, могу сказать что задача легкая и будет решена до следующего релиза. Предоставлю пользователю программный доступ к широкому набору свойств элементов и окон графического интерфейса.
2. Обычные и динамические таблицы.
Обычные таблицы уже реализованы. Их работа неоднократно тестировалась. Работали такие возможности как перетаскивание колонок и рядов (смена их места в таблице), сворачивание/разворачивание рядов таблицы (добавление элемента T_FOLDER) или скрытие/явление колонок. Работала автоматическая интеграция элементов управления в таблицу. Например чекбоксы, выпадающие списки, кнопки, слайдеры, поля ввода с кнопками и простые поля ввода - все сами встраивались в таблицу при ключевом слове IS_TABLE в заголовке группы. Значения в ячейках могли раскрашиваться в цвета в зависимости от величины. Таблицы даже могли встраиваться в древовидные списки.
Однако, стоит ли тратить время на возвращение всех прежних возможностей?
Сложно сказать.
Думаю, в первую очередь нужно вернуть базовые возможности обычных таблиц и убедится что они хорошо работают. Остальное как получится.
Но главное в интерфейсе серьезного торгового робота, это динамические таблицы. Те, что способны пропускать через себя бесконечную ленту потока данных с биржи. Именно они у меня никогда еще не были реализованы.
Вывод: динамичные таблицы - приоритетная задача.
(Нужно приступить к разработке.)
3. Древовидные списки.
Вполне реализованный элемент графического интерфейса переделанный до этого много раз. И каждый раз он лучше работал. Последняя версия особенно хороша, но не закончена. Если вспомню в деталях, смогу закончить за день-два. Но насколько он нужен в графическом интерфейсе? Думаю не помешает, но зацикливаться на нем не стоит.
Вывод: древовидный список не является приоритетом дальнейшей разработки.
(Будет время - доделаю.)
4. Динамичные окна.
Уже хорошо работают базовые механизмы - изменения размеров, прокрутка по вертикали и горизонтали, масштабирование, адаптация масштабированного окна к изменению размеров графика. Но есть немало мелких, раздражающих багов. Будучи законченными, динамичные окна идеально подойдут для крупных динамичных таблиц и длинных списков.
Вывод: завершение динамичных окон приоритетная задача.
(Может занять пару-тройку дней упорной работы с энтузиазмом.)
5. Сворачиватели групп и таблиц.
Элементы G_FOLDER и T_FOLDER. Уже очень хорошо работали в прошлом. Как они работают сейчас не знаю, т.к. не было времени на тестирование. Интересно, что в последней разработке функции явления элементов добился унификации управления древовидным списком и этими двумя типами сворачивателей. Одна функция управляла работой трех элементов и при этом была не более 400 - 500 строк в размере (что не много по моим меркам). Если верну работу этой функции (сейчас она отключена), то все три элемента заработают идеально. Посмотрим.
Вывод: элементы G_FOLDER и T_FOLDER не в приоритете.
(Будет возможность и желание - сделаю).
Ну и последняя сейчас пришедшая на ум приоритетная задача:
6. Создание ветки шаблонов групп элементов и окон написанных на языке разметки.
Это даст возможность пользователям быстро и легко собирать нужный интерфейс для решения задач, даже без глубокого знания языка.
Если у кого то есть мысли по приоритетам дальнейшей разработки, делитесь. Приму к сведению.
Да, программное управление - самое важное, нужно всем, кто будет пользоваться движком.
Для меня обязательное - динамические таблицы. Мне интерфейс нужен в основном для визуализации событий и отчётов в реальном времени. Элементы управления - это обвязка для управления ими (фильтры и пр.) С реализацией этого я бы смог начать интегрировать движок.
Второй приоритет - полноэкранное окно. Но это очень просто - у Вас уже это сделано в конструкторе. С таскбаром. А временно могу использовать максимально большое окно. Приходится подбирать размеры, муторно.
Третий приоритет - графики. Не знаю, насколько сложно. Возможно, надо использовать стандартные средства для канваса, если они достаточно гибкие. Я никогда не пробовал кроме Fast And Furious Easy And Fast v1.
Дай бог, чтобы хватило мотивации. Чаще всего она угасает после встречи с хейтерами. "Добрых людей большинство, но злые лучше организованы".
Да, программное управление - самое важное, нужно всем, кто будет пользоваться движком.
Для меня обязательное - динамические таблицы. Мне интерфейс нужен в основном для визуализации событий и отчётов в реальном времени. Элементы управления - это обвязка для управления ими (фильтры и пр.) С реализацией этого я бы смог начать интегрировать движок.
Второй приоритет - полноэкранное окно. Но это очень просто - у Вас уже это сделано в конструкторе. С таскбаром. А временно могу использовать максимально большое окно. Приходится подбирать размеры, муторно.
Третий приоритет - графики. Не знаю, насколько сложно. Возможно, надо использовать стандартные средства для канваса, если они достаточно гибкие. Я никогда не пробовал кроме Fast And Furious Easy And Fast v1.
Дай бог, чтобы хватило мотивации. Чаще всего она угасает после встречи с хейтерами. "Добрых людей большинство, но злые лучше организованы".
1. Программное управление элементами будет уже в следующем релизе. Ориентировочно через 7 - 10 дней.
2. Динамические таблицы "поступили в разработку". Сколько займут времени сказать пока не могу. Процесс может быть очень быстрым... или не очень. Неизвестно.
3. Полноэкранное окно у Вас уже есть. Попробуйте его. В свойствах окна пропишите "DINAMIC" вместо "SETTINGS". Протестируйте и напишите о впечатлениях. (Только перейдите на поледнюю релизную версию конструктора). Можете менять размеры потянув за края окна или масштабировать верхней кнопкой. Есть вариант с дабл-кликом на верхнюю полосу (где название окна), или просто ухватите окно за "шапку" и тащите вверх пока оно само не масштабируется. В обратую сторону работают те же манипуляции.
4. Напечатайте файл API своего окна и выложите сюда. Посмотрю и пойму как печатаются там таблицы. Это важно для реализации будущего программного подключения.
5. Над пользовательскими чартами серьезно подумаю. Реализацию Анатолия видел, но не пробовал повторить этот элемент.
Важный нюанс при работе с динамичным окном:
Окно не принимает элементы типа V_BOX, потому что они содержат собственный канвас. Получается наложение одного канваса на другой. Поэтому этот элемент нужно закоментировать вместе со всеми строками i, IN, "V1", .
То есть группы которые помещены в элемент V_BOX, должны быть просто в окне на "MF". Не нужно специально прописывать строку i, IN, "V1".
Если не получится, завтра покажу более подробно. В картинках.