Создание GUI для MQL в графическом режиме.

 

Поднимал эту тему пару лет назад, когда начали бурно развиваться разные библиотеки для создания графического интерфейса. С тех пор их настрогали много, но сам процесс создания так и остался на уровне 30-летней давности (кто еще помнит, как мучались с интерфейсом, создавая его ручками в Win API?) Если я не прав и такой инструмент появился, с радостью приму пинок и возьму слова обратно.

-------

Вот простейший пример из VS 2017, C# Windows Forms. Слева панель инструментов управления, которые можно перетаскивать на форму.

panel    form

И вот часть кода, который генерится для этой простейшей формы. 

private void InitializeComponent()
        {
            this.btnDoSomething = new System.Windows.Forms.Button();
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            // 
            // btnDoSomething
            // 
            this.btnDoSomething.Location = new System.Drawing.Point(12, 12);
            this.btnDoSomething.Name = "btnDoSomething";
            this.btnDoSomething.Size = new System.Drawing.Size(100, 23);
            this.btnDoSomething.TabIndex = 0;
            this.btnDoSomething.Text = "Do something";
            this.btnDoSomething.UseCompatibleTextRendering = true;
            this.btnDoSomething.UseVisualStyleBackColor = true;
            // 
            // textBox1
            // 
            this.textBox1.Location = new System.Drawing.Point(12, 53);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(100, 20);
            this.textBox1.TabIndex = 1;
            this.textBox1.Text = "Hello MQL5!";
            this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(133, 98);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.btnDoSomething);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        protected System.Windows.Forms.Button btnDoSomething;
        private System.Windows.Forms.TextBox textBox1;

Вот я и демаю, кто бы взялся за проект, в котором такой код бы распарсивался и строился код для графики на основе любой из представленных на этом сайте библиотек?

Ведь в разделе "Пищи и зарабатывай на MQL5" уже с год лежит статья без автора 

 55 Распарсивание и автоматическая модификация исходных кодов MQL5 с помощью RegularExpressions  
 Получение списка  функций, глобальный переменных, дефайнов, классов и т.д.

А почему никто не берет? Да потому, что никому этот парсинг не нужен. Есть замечательная программа Doxygen, которая шлифуется и совершенствуется точно более 10 лет. И пытаться создать ее жалкое подобие (а оно точно будет жалким в сравнении) никому не интересно. И статья недавно вышла по теме Автоматическое создание документации...

Итак,

  1. Если уже такой проект. 
  2. Кому такое графическое создание интерфейса было бы интересно?
Специально сделал отдельную ветку, т.к. в ветке разделе "Пищи и зарабатывай на MQL5" быстро затеряется, да и читают ее немногие.

 

GUI для METATRADER это настолько далекая, пока, возможность. Для создания панелей - ладно. Но больше уже и не нужно. 

Хотя с Вами согласен - "Visual" MetaEditor - был бы в тему  

 
Vladislav Andruschenko:

GUI для METATRADER это настолько далекая, пока, возможность. Для создания панелей - ладно. Но больше уже и не нужно. 

Хотя с Вами согласен - "Visual" MetaEditor - был бы в тему  

Для чего так все усложнять, МТ-MQL, в частности? MQL, имхо, и так перусложнен. Ведь есть VS, и делайте панели. да и все что нужно, там.Через те-же DLL, например. Нет никакой необходимости делать из МТ-MQL монстра.))

 
Yuriy Asaulenko:

Для чего так все усложнять, МТ-MQL, в частности? MQL, имхо, и так перусложнен. Ведь есть VS, и делайте панели. да и все что нужно, там.Через те-же DLL, например. Нет никакой необходимости делать из МТ-MQL монстра.))


Ну это я так, мечтаю :-) (VISUAL для построения графики и торговых систем), понятно, что есть много конструкторов уже....

честно сказать, первую свою панель я рисовал в фотошопе. и она до сих пор... 

сейчас я пытаюсь рисовать уже напрямую в терминале, но понимаю, что этим пользуются единицы. 

А панели на заказ легче делать индивидуально. 

Хотя статьи про библиотеки для рисования я изучал плотно. Но решил, что использование этих библиотек пригодится на 1 % , бросил...

 
Yuriy Asaulenko:

Для чего так все усложнять, МТ-MQL, в частности? MQL, имхо, и так перусложнен. Ведь есть VS, и делайте панели. да и все что нужно, там.Через те-же DLL, например. Нет никакой необходимости делать из МТ-MQL монстра.))

Я так и делал раньше. Ниже пример простенькой панели настройки мульти-стратегового (о загнул!) советника. Но ведь это отсекает маркет!

И не понял, при чем тут МТ? Я всего лишь предлагаю сделать скрипт-парсер на MQL. Можно и на  C++/C#, но тогда даже в статьи не возьмут.

Оп, картинку забыл, вот она, простенькая


 
Vladislav Andruschenko:


Ну это я так, мечтаю :-) (VISUAL для построения графики и торговых систем), понятно, что есть много конструкторов уже....

честно сказать, первую свою панель я рисовал в фотошопе. и она до сих пор... 

сейчас я пытаюсь рисовать уже напрямую в терминале, но понимаю, что этим пользуются единицы. 

А панели на заказ легче делать индивидуально. 

Хотя статьи про библиотеки для рисования я изучал плотно. Но решил, что использование этих библиотек пригодится на 1 % , бросил...

То есть делаете вообще без библиотек? Просто у меня тут встала задача сделать довольно сложную панель, причем, чувствую, она будет много раз перекомпоновываться.

Пока принял решение в VS делать визуалку, потом брать ручками координаты и размеры элементов управления и опять же ручками переводить на какую-либо библиотеку. Пока склоняюсь к библиотекам от Анатолия Казрского, он там монструозно потрудился. Все быстрее будет, чем цикл правка кода->запуск->корректировка с записью результатов на бумажке->правка кода...и т.д. 

 
Alexey Volchanskiy:

То есть делаете вообще без библиотек? Просто у меня тут встала задача сделать довольно сложную панель, причем, чувствую, она будет много раз перекомпоновываться.

Пока принял решение в VS делать визуалку, потом брать ручками координаты и размеры элементов управления и опять же ручками переводить на какую-либо библиотеку. Пока склоняюсь к библиотекам от Анатолия Казрского, он там монструозно потрудился. Все быстрее будет, чем цикл правка кода->запуск->корректировка с записью результатов на бумажке->правка кода...и т.д. 

лучше использовать библу Казарского, 

но да, у меня есть библиотеки для рисования. они стандартны. (не такие , как у Казарского конечно :-)) 

Просто я использую рисование ну прям ооооооочень редко, поэтому нет смысла тратить на это время. 


а так да - рисовал в photoshope - рисовал код в Delphi и пошло поехало, по координатам :-)

сейчас то я уже бы так не делал, но тогда именно так и нарисовал свою первую панель на MQL ( до этого была на Delphi) 

и до сих пор боюсь ее трогать :-) обновляю конечно же, оптимизировал код уже 10 раз.  но задумываюсь нарисовать такую же панель обычными кнопками...... 

но есть свои за и против: обычные кнопки не красивые : Канвас не работает в тестере ...............

 
Alexey Volchanskiy:

Я так и делал раньше. Ниже пример простенькой панели настройки мульти-стратегового (о загнул!) советника. Но ведь это отсекает маркет!

И не понял, при чем тут МТ? Я всего лишь предлагаю сделать скрипт-парсер на MQL. Можно и на  C++/C#, но тогда даже в статьи не возьмут.

Оп, картинку забыл, вот она, простенькая

Если для Маркета, то да, - бяда. Only MQL. ((

А для себя, так оно и не надо, и c VS все несложно.

 
Yuriy Asaulenko:

Если для Маркета, то да, - бяда. Only MQL. ((

А для себя, так оно и не надо, и c VS все несложно.

С VS все крайне просто и быстро, я ту панельку вообще делал с доступом через общие файлы, все отлично и быстро работало.

Даже не знаю, может по быстрому замутить вариант на VS, а потом, когда детские болезни устраню, перевести на MQL?

Но ведь под панель на C# нельзя будет создать ветку на этом форуме. Значит, опять на красном работать, а тут трепом заниматься? Что скажете, уважаемые модераторы? Можно тут панель на C#, как часть проекта публиковать?

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

 
Alexey Volchanskiy:

С VS все крайне просто и быстро, я ту панельку вообще делал с доступом через общие файлы, все отлично и быстро работало.

Даже не знаю, может по быстрому замутить вариант на VS, а потом, когда детские болезни устраню, перевести на MQL?

Но ведь под панель на C# нельзя будет создать ветку на этом форуме. Значит, опять на красном работать, а тут трепом заниматься? Что скажете, уважаемые модераторы? Можно тут панель на C#, как часть проекта публиковать?

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

Мне файловый обмен оч понравился - все простенько, быстренько. Через RAM-Disk вообще никаких DLL и прибабахов не надо, скорость >1.5 ГБайт/с. Хватит на все, и даже останется.))

А всякие DLL можно уже потом, на досуге, сварганить, при необходимости.

 
Алексей, получается ли работать с вашей панелью на C# так, чтобы она отображалась внутри окна графика?