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

 
sergeev:

все зависит от размер битмапа

сделайте миллиард раз созданием+вывод битмапа и столько же раз создание и вывод меток текста.

и проконтролируйте время вывода.

Надо будет попробовать, только позже. Думал, может, кто уже проводил такие исследования...
 
tol64:
Не совсем понятно, что у Вас там за гистограмма не может нарисоваться. Вполне возможно, что Вы что-то неправильно делаете. Нужен код для воспроизведения, иначе не видно о чём Вы.

Гистограмма может нарисоваться если терминал справится с расчетами. Гистограмма рисуется, терминал подгружается, происходит громоздкий расчет индикатора, гистограмма исчезает, ожидая расчета, по окончании отображается, получается, что на потоке котировок её не видно. При удалении терминал что-то там делает, а потом удаляет графику. У меня в блоке Deinit кроме удаления ничего нет, что за пауза при удалении. Должен же быть приоритет, а также последовательность действий выхода из критических состояний системы, гистограмма должна исчезать не перед расчетом, а перед новым отображением гистограммы. И дело тут не в коде, он конечно грузит терминал, алгоритм можно сделать более щедящим, но факт, что 4-ка справляется с этим лучше налицо.

OnCalculate исполняется с каждым тиком? А если не успевает, что происходит?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
Баг в хранилище я определил. При смене пароля на сайте, в хранилище он видимо не меняется. И нужно отписаться от хранилища и подписаться заново.
 
zfs:

Гистограмма может нарисоваться если терминал справится с расчетами. Гистограмма рисуется, терминал подгружается, происходит громоздкий расчет индикатора, гистограмма исчезает, ожидая расчета, по окончании отображается, получается, что на потоке котировок её не видно. При удалении терминал что-то там делает, а потом удаляет графику. У меня в блоке Deinit кроме удаления ничего нет, что за пауза при удалении. Должен же быть приоритет, а также последовательность действий выхода из критических состояний системы, гистограмма должна исчезать не перед расчетом, а перед новым отображением гистограммы. И дело тут не в коде, он конечно грузит терминал, алгоритм можно сделать более щедящим, но факт, что 4-ка справляется с этим лучше налицо.

OnCalculate исполняется с каждым тиком? А если не успевает, что происходит?

Если код для воспроизведения для Вас большая тайна, чтобы на форуме выложить, то пишите тогда в Сервисдеск. Там подробно опишите и приложите код.
 
tol64:
Если код для воспроизведения для Вас большая тайна, чтобы на форуме выложить, то пишите тогда в Сервисдеск. Там подробно опишите и приложите код.

Я уже подметил ,что код здесь не причем. Достаточно загрузить код вычислениями и графическими элементами и недостатки выплывут сами по себе. При этом все зависит от вычислительной техники даже более чем от кода, на быстрой машине индикатор будет удаляться 2 сек, на медленной 2 мин. Так и с гистограммой где-то её будет видно всегда с хорошим ресурсом и минимумом котировок, а где-то только при запуске. Конечно, это вопрос больше к сервисдеску и вопрос скорее по терминалу, нельзя ли сделать возможность зависания терминала минимальным. Такая проблема была и в 4-ке, а здесь ситуация даже и похуже. Однако это рассуждения по сабжу.

OnCalculate исполняется с каждым тиком? А если не успевает, что происходит?

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

zfs:

... 

OnCalculate исполняется с каждым тиком? А если не успевает, что происходит? 

Думаю, что тики, которые приходили в процессе какого-то долгого вычисления будут пропущены. 

Я уже подметил ,что код здесь не причем. Достаточно загрузить код вычислениями и графическими элементами и недостатки выплывут сами по себе. При этом все зависит от вычислительной техники даже более чем от кода, на быстрой машине индикатор будет удаляться 2 сек, на медленной 2 мин. Так и с гистограммой где-то её будет видно всегда с хорошим ресурсом и минимумом котировок, а где-то только при запуске. Конечно, это вопрос больше к сервисдеску и вопрос скорее по терминалу, нельзя ли сделать возможность зависания терминала минимальным. Такая проблема была и в 4-ке, а здесь ситуация даже и похуже. Однако это рассуждения по сабжу.

Ну так выкладывайте тогда код. Протестирую у себя. Сравним результаты. Иначе впустую всё расписывали. Здесь такое не воспринимают всерьёз. )))

 
zfs:
Или вот даже ситуация, когда терминал не загружается как приложение и в диспетчере задач виден только как процесс. Необходима возможность выхода терминала из критических ситуаций, как КонтролАльтДелет в Виндоус с возможностью отключения уже приложений терминала.
У меня отображается, и как приложение и как процесс. Укажите в Сервисдеске операционную систему, разрядность и билд терминала.
 
double iCloseMQL4(string symbol,int tf,int index){
   if(index < 0) return(-1);
   double Arr[];
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   if(CopyClose(symbol,timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);

}

Ну вот взял функцию, на выходе периодически получаю -1. Спрашивается, что еще цикл задавать на отличие от -1?  Почему возможна такая ситуация. Зачем копировать целый массив, если мне нужно только одно значение - как-то не рационально.

SetLabel("LPr",chart_ID,"%="+DoubleToString(close[0]/iCloseMQL4(_Symbol,1440,1)*100-100,2),4,34,clrBrown,14);
 
tol64:

Думаю, что тики, которые приходили в процессе какого-то долгого вычисления будут пропущены. 

Ну так выкладывайте тогда код. Протестирую у себя. Сравним результаты. Иначе впустую всё расписывали. Здесь такое не воспринимают всерьёз. )))

Думаете, а надо бы это проверить или знать точно).

Я на разных компьютерах вижу разную картину, так что сравнить мне есть чем. Правды всё равно не добьемся, остаётся только брюзжать на форуме.)

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

Причина обращения: