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

 
Алексей Барбашин:

Теперь уже можно будет просто на шарп перевести )) 

Это не мой вариант.))
 
Alexey Volchanskiy:

пока по прежнему одни эмоции

Алексей, а что ты хочешь ? ты немного сумбурен после радостных событий :-)

Без эмоций - ваша любовь к .net - продукт менеджмента и эмоций. Прежде чем брать технологию, надо взвешивать за и против, а вы бежите как лемминги.
проект c .net требует 2-х оболочек для разработки ( MT и VS) . Нетленку С++ можно ваять не выходя из общей среды.
Отлаживать .net dll запущенную из MT5, при всё растущих способах защиты от отладки и трассировки, может быть и несложно, но мне лично ненадо.

Наклады на вызов DLL, они -же есть. И при модели исполнения когда MT исключительно опрашивает, они очень чуствительны. Если запузырить в DLL расчёт гиперкуба, то это незаметно.
А если постоянно опрашивать формочку, нажал ли клятый юзер Ок  то ой-ой. Да ещё в ваших любимых скальперах :-)

 
Alexey Volchanskiy:

пока по прежнему одни эмоции

Незнание дает уверенность. А вот знания умножают печали.

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

Ради гуя точно перебор.
 
Maxim Kuznetsov:

Алексей, а что ты хочешь ? ты немного сумбурен после радостных событий :-)

Без эмоций - ваша любовь к .net - продукт менеджмента и эмоций. Прежде чем брать технологию, надо взвешивать за и против, а вы бежите как лемминги.
проект c .net требует 2-х оболочек для разработки ( MT и VS) . Нетленку С++ можно ваять не выходя из общей среды.
Отлаживать .net dll запущенную из MT5, при всё растущих способах защиты от отладки и трассировки, может быть и несложно, но мне лично ненадо.

Наклады на вызов DLL, они -же есть. И при модели исполнения когда MT исключительно опрашивает, они очень чуствительны. Если запузырить в DLL расчёт гиперкуба, то это незаметно.
А если постоянно опрашивать формочку, нажал ли клятый юзер Ок  то ой-ой. Да ещё в ваших любимых скальперах :-)

Максим, если вести речь об обратной связи, то тут нет разницы net используется или с++. Вот к примеру ты реализовал на Tcl GUI. Ведь у тебя так же есть вопрос обратной связи. Тут от среды разработки никак не зависит. Так же если ты попытаешься разместить GUI на чарте, то так же возникнет проблема прорисовки. В теме вроде как вопрос производительности вообще не обсуждался. Это дело вкуса по сути.

 
Renat Fatkhullin:
Незнание дает уверенность. А вот знания умножают печали.

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

Ради гуя точно перебор.

Ренат, раз уж Вы "влезли" в тему, может подскажете как реализовать обратную связь между сторонним приложением, не важно в какой среде написанной, пусть даже с++, с МТ.

 
Алексей Барбашин:

Ренат, раз уж Вы "влезли" в тему, может подскажете как реализовать обратную связь между сторонним приложением, не важно в какой среде написанной, пусть даже с++, с МТ.

А никак. Даже внутри МТ все только по предопределенным MQ событиям.
Так какая разница? Нет ее.
 
Yuriy Asaulenko:
А никак. Даже внутри МТ все только по предопределенным. MQ событиям.
Так какая разница? Нет ее.

Ну в МТ то как раз проще, именно через события. Пришло событие - выполнили команду, нет события - отдыхаем. А дергать по таймеру внешнее приложение, совершенно не важно на чем написанное, это не совсем удобно. К тому же в отличии от того же net у МТ нет потоков. Что таймер, что события, все происходит в одном потоке, что накладывает соответствующие ограничения. Если бы можно было из вне вызвать тот же OnChartEvent, то очень многие вопросы можно было бы снять. Я в принципе не понимаю почему наложен запрет на вызов этого метода. Ведь в конце концов МТ перехватывает события среды: перемещение мыши, нажатие клавиш на клавиатуре или мыши... То есть в этом плане события взаимодействуют с виндой, тогда не ясно почему туда же нельзя направить пользовательское событие. Это было бы универсальным колбеком.

 
Односторонним опросом из мкл, пайпами, файлами или вебзапросами.

В обратную прямыми вызовами никак. Хотя можем добавить метод типа OnExternal с параметрами, но надо продумать канал передачи.

Это может быть:
 - коллбак с параметрами, регистрируемый в длл
 - именованный мьютекс как триггер
 - windows message для PostMessage

 
Алексей Барбашин:

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

Ну, так я к тому, что у внешних приложений та- же самая, ничем не отличающаяся от. программ МТ функциональность относительно событий МТ.
 
А почему остановились на дотнете для гуя?

Простые формы можно элементарно делать на C++ и других языках. И не будет проблем сопряжения и потери ресурсов.

Да и на MQL5 абсолютно несложно сделать интерфейсы по родному.
Причина обращения: