Мой подход. Ядро - Движок. - страница 42

 
Maxim Kuznetsov:

вынос GUI из советника в индикатор вещь сомнительная (просто по архитектуре MT - индикаторы работают в интерфейсной нити и могут затормозить ВСЁ. Чтобы не тормозились индикаторы в MT даже часть функций им запрещена)

ну не об этом.

если горе-пользователь взял пару (сторонних) индикаторов и советник и все они GUI с вынесенным ядро-движком. Чё будет ?

PS/ Пётр, заведите уже хоть бесплатный хостинг и положите там ваше изделие. Если code-base не годится. Публикация alpha/beta/preview версий - дело пары часов. Вы не можете найти время что-ли

Ну во первых я собираюсь это сделать. И сделаю. 

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


Что касается индикаторов, - то вы правы. Графика на них тормозит. Особенно прокрутка. Уже делал эксперименты. Один и тот же код в советнике (прокрутка изображения), не вызывает торможения, а в индикаторе - тормозит.

Поэтому, движок можно сделать советником, который будет работать на любом свободном графике, а окна переносить между графиками с помощью спец. кнопок.

 
Реter Konow:

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

Насчет подключения, - не понял вашу мысль. Почему не должен подключаться к советнику. А параметры как синхронизировать?

Либо GUI полностью в советнике, либо подключается из вне. В случае подключения из вне, необходимо установить свойства подключения и синхронизировать значения параметров на двух сторонах.

Что здесь называется синхронизацией параметров? Какие свойства тут могут быть у подключения?

 
Реter Konow:

 Когда все будут пользоваться бесплатной версией.

увы, не будут, Ваш путь только конвейер на выходе которого много продуктов с графикой, во главе и в самом процессе, только Вы )))

вроде обсуждали уже, что Ваш подход не понятен тем кто умеет программировать, а тем кто не умеет программировать, без Вашей помощи никак, у Вас 2 пути:

1. Маркет

2. Фриланс

ЗЫ: повторюсь в своем мнении

а) для торговли достаточно базовых элементов графики из поставки МТ или можно использовать примеры из КБ - все это написано в классике языков программирования и не требует дополнительного времени на эксперименты и отладку, берешь и пользуешься. Все это можно будет в Маркете выложить

б) для написания аналитической платформы для личного использования оптимальнее находить готовые решения и подключать их к МТ (.dll, Питоны, R, Матлаб....) , в этом случае оптимальнее использовать стороннюю графику, чтобы МТ занимался только работой с сервером

 
Dmitry Fedoseev:

Что здесь называется синхронизацией параметров? Какие свойства тут могут быть у подключения?

Элементы управления имеют параметры.

Например Чекбокс. Имеет параметр, у которого два возможных значения: 1 и 0.

Если пользователь нажимает на чекбокс и ставит галочку, то на стороне движка, в массиве параметров элементов управления, ставится 1.

Далее, отправляется сообщение в польз. приложение с номером параметра чекбокса и значением. После этого, новое значение записывается в аналог массива параметров в приложении и вызывается функция On_Gui_Event().

Так осуществляется синхронизация значений между движком и польз. приложением.


Свойства подключения:

Ключевые слова, функции обертки устанавливающие значения элементам из советника, функции обертки открывающие/закрывающие польз. окна...

Инициализация копии массива параметров в советнике.

Примерно все.

 
Igor Makanu:

увы, не будут, Ваш путь только конвейер на выходе которого много продуктов с графикой, во главе и в самом процессе, только Вы )))

вроде обсуждали уже, (1) что Ваш подход не понятен тем кто умеет программировать, а тем кто не умеет программировать, без Вашей помощи никак, у Вас 2 пути:

1. Маркет

2. Фриланс

ЗЫ: повторюсь в своем мнении

а) для торговли достаточно базовых элементов графики из поставки МТ или можно использовать примеры из КБ - все это написано в классике языков программирования и не требует дополнительного времени на эксперименты и отладку, берешь и пользуешься. Все это можно будет в Маркете выложить

б) для написания аналитической платформы для личного использования оптимальнее находить готовые решения и подключать их к МТ (.dll, Питоны, R, Матлаб....) , (2)в этом случае оптимальнее использовать стороннюю графику, чтобы МТ занимался только работой с сервером

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

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

В общем, Ваше решение не для масс. А мое именно для масс.

 
Igor Makanu:

вроде обсуждали уже, что Ваш подход не понятен тем кто умеет программировать, а тем кто не умеет программировать, без Вашей помощи никак, у Вас 2 пути:

Конструктор графики на выходе создает движок несущий пользов.GUI + файлы подключения.

Далее, пользователь подключает движок к своему приложению (как было описано выше), и заполняет файл подключения. 

На этом, все.

Мой подход никому изучать не придется. Только освоить легкий язык констуктора.

 
Реter Konow:

Элементы управления имеют параметры.

Например Чекбокс. Имеет параметр, у которого два возможных значения: 1 и 0.

Если пользователь нажимает на чекбокс и ставит галочку, то на стороне движка, в массиве параметров элементов управления, ставится 1.

Далее, отправляется сообщение в польз. приложение с номером параметра чекбокса и значением. После этого, новое значение записывается в аналог массива параметров в приложении и вызывается функция On_Gui_Event().

Так осуществляется синхронизация значений между движком и польз. приложением.


Свойства подключения:

Ключевые слова, функции обертки устанавливающие значения элементам из советника, функции обертки открывающие/закрывающие польз. окна...

Инициализация копии массива параметров в советнике.

Примерно все.

В какие массивы это записывается? В обычные? Перезапустил терминал и все сбросилось...

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

Очень интересно, как это все будет реагировать на перезапуск терминала. Будут ли сохранять установленные пользователем параметры?

 
Dmitry Fedoseev:

В какие массивы это записывается? В обычные? Перезапустил терминал и все сбросилось...

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

Очень интересно, как это все будет реагировать на перезапуск терминала. Будут ли сохранять установленные пользователем параметры?

Перезапуск терминала ведет к перезапуску советника. Разве нет?

Синхронизируются два массива типа string (универсальный тип, подходящий для хранения любых значений параметров).

Элементы в движке отражают значения своих параметров.


Например ячейка таблицы. Хранит последнее переданное ей значение в массиве значений параметров.

В этом массиве хранятся свойства параметров.

Или свойства параметра слайдера: Мин. значение, макс. значение, шаг изменения значения, текущее значение.

Когда пользователь переключает значения поля ввода с кнопками (+/-), то изменение значения осуществляется в движке, а потом передается в советник.

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

 
Dmitry Fedoseev:

...

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

...

Где по Вашему хранить значения элементов? 

Изначально, значения элементов могут устанавливатся в конструкторе, а также могут быть установлены советником на Ините.

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

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

Есть еще огромное количество нюансов.

Например - синхронизация значений параметров между элементами. Устанавливается на уровне конструктора.

(Спросите у Олега Папкова. Я реализовал синхронизацию его элементов. Он меняет положение слайдера, а в полях ввода в разных окнах меняются значения. И все это работает на уровне движка).

Иначе, все это нужно делать пользователю самому.

А это, - не для масс.

 
Реter Konow:

(Спросите у Олега Папкова. Я реализовал синхронизацию его элементов. Он меняет положение слайдера, а в полях ввода в разных окнах меняются значения. И все это работает на уровне движка).


Ох@@ть ! Дайте два..

никогда такого небыло и вот опять :-)

это-же чудо из чудес - когда изменение одного влечёт измененние другого.

Вы хоть думайте чем хвастать :-)