Ошибки, баги, вопросы - страница 1493

 
zaskok3:
В MQL4++ без extern не могу обойтись, когда нужно поменять входные параметры программно. Например, при конвертации обычного индикатора в интерактивный приходится input заменять на extern. Компилятор считает input-переменные, как const, и ругается при попытке их изменения. С extern таких проблем не возникает.
У меня возникают. Тоже давно прочитал в хелпе, дескать extern можно менять программно. Глюк на глюке, то меняет, то нет, при ините похоже сбрасываются. Плюнул, сделал копии внешних в глобальные, считываю и копирую только раз при старте программы и внутри программы использую только глобальные. Сразу все заработало, как часы.
 
zaskok3:
Жаль, что архитектура столь закостенела, что нет возможностей даже простой гибкости. Получается, интерактивность на MQL5 надо будет делать через костыль. Спрашивается, где преимущество тогда, если язык ограничивает возможности...

Вы не понимаете. Мы своим архитектурным решением сэкономили кучу памяти.

Спросите окружающих, что важнее: трудности с копи-пастом 5 строк кода или выигрыш по памяти? Мы, например, ни капельки не задумывались

 
Slawa:

...

Что Вы посоветуете владельцам нескольких мониторов? Каким образом можно организовать эффективную работу с терминалом? 
 
Slawa:

Вы не понимаете. Мы своим архитектурным решением сэкономили кучу памяти.

Верно, не понимаю. От Вас крайне мало информации о внутренней архитектуре. Честно, не могу понять, как добавление к input-переменным модификатора const позволяет создать значительно лучшую архитектуру с огромной экономией памяти. При этом казалось бы костыль в виде дубляжа перемеренных в виде выделения памяти все равно создает эту экономию. Вы же можете внутриархитектурно создать дубляж автоматически и считать, что input - это const, как и сейчас. Очень стараюсь представить, что это за архитектура, позволяющая в столь простом деле "сэкономить кучу памяти". Похоже, что вы сравнение ведете с MT4-архитектурой, которая во много была излишней и далеко не эффективной (как с перерасчетом таймфреймов) по ресурсам. Но мы говорим о разумности архитектуры в общем, а не в сравнени с продуктом N-цатой давности.


И если касаться архитектуры. То совсем не понимаю, почему нет, как почти во всех других торговых платформах, OnMarketwatch? Зачем-то предлагаются костыльные решения через таймер или еще большее извращение - OnChartEvent. Задача же востребованая и, вроде, очевидная для всез трейдеров, кто АТС создает. И это сделано специально в угоду очень эффективной внутренней архитектуре?


Это не критика, ради критики. Хочется разобраться, а не быть дилетантом "не знаю, им виднее".

 
zaskok3:

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


Ну ведь явно же сказал двумя постами выше

Глобальное хранилище индикаторов в исторической базе MT5. Для них входные параметры являются ключевыми. При изменении входных параметров индикатор со старыми параметрами уничтожается, и этот же индикатор с изменёнными параметрами заново создаётся.

Что непонятного? Входные параметры являются ключевыми для хранения экземпляров индикаторов. Если Вы изнутри меняете ключевое значение, то возникает противоречие с индексом - в индексе сказано одно, а по сути совсем другое. Ну нельзя внешние параметры менять изнутри

Я не обвиняю Вас в непонимании - это совершенно естественное желание: "сделайте мне хорошо. именно мне - на других плевать"

 

Slawa:

это совершенно естественное желание: "сделайте мне хорошо. именно мне - на других плевать"

К сожалению, в современном обществе данное желание естественное. Однако, не надо всех под одну гребенку.

Благодарен за повторное разъяснение:

Входные параметры являются ключевыми для хранения экземпляров индикаторов. Если Вы изнутри меняете ключевое значение, то возникает противоречие с индексом - в индексе сказано одно, а по сути совсем другое.

Теперь понятно, какая архитектура выбрана и почему она требует неизменяемости input-переменных. Вносить изменение в уже реализованную архитектуру ради одного недовольного пука на форуме и я бы не стал. Пук как-нибудь сам выкрутится... Узнать бы, как в MT4 устроена внутренняя индикаторная кухня.


Кстати, input являются const в советниках и скриптах именно из-за архитектурной особенности хранения индикаторов?


С благодарностью бы принял и пояснение на тему отсутствия OnMarketwatch, который востребован несколько бОльшим количеством народа, чем предыдущий пункт.

 
zaskok3:

С благодарностью бы принял и пояснение на тему отсутствия OnMarketwatch, который востребован несколько бОльшим количеством народа, чем предыдущий пункт.

Что такое OnMarketWatch?
 
Slawa:
Что такое OnMarketWatch?
Событие прихода нового тика в Marketwatch. Аналогично, как OnTick, но только реагирует на новые тики не одного символа, а всех, что подписаны в "Обзоре рынка".
 
Slawa:

...

Что Вы посоветуете владельцам нескольких мониторов? Каким образом можно организовать эффективную работу с терминалом?

 
zaskok3:
Событие прихода нового тика в Marketwatch. Аналогично, как OnTick, но только реагирует на новые тики не одного символа, а всех, что подписаны в "Обзоре рынка".
По-моему тут можно использовать OnTimer(), каждые Х миллисекунд вызывать событие.
Причина обращения: