Новая версия платформы MetaTrader 4 build 1330 - страница 5

 
Хорошо бы добавить в справку по событию CHARTEVENT_OBJECT_DELETE, что тип удаленного объекта определить невозможно.
 
Владимир:
Хорошо бы добавить в справку по событию CHARTEVENT_OBJECT_DELETE, что тип удаленного объекта определить невозможно.

Если это ваш объект, то можно определить его по имени, какое вы ему дали.
Если это стандартный МТ-объект, то тоже можно определить тип объекта по имени.
Ну или же вести свою базу объектов, и при удалении проверять базу, опять таки по имени.

 
fxsaber #:


Пример использования.

Вам удалось точно выяснить, из-за чего происходило зависание? Тоже столкнулся с этой проблемой, причём она проявляется только в определённое время, что добавляет загадочности, в остальное время цикл while(1) работает нормально.
 
Иван #:
Вам удалось точно выяснить, из-за чего происходило зависание?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: Usage

fxsaber, 2021.05.01 14:17

GetMicrosecondCount может выдать значение меньше, чем на предыдущем вызове (без ULONG-переполнения). Примеры таких ситуаций.
2021.04.29 06:43:31.915   Alert: NewValue = 296000074313, PrevValue = 296001329284

2021.04.29 06:43:32.149   Alert: NewValue = 296086250613, PrevValue = 296087264090

2021.04.29 06:43:31.868   Alert: NewValue = 295129291901, PrevValue = 295130576710

2021.04.29 06:43:32.180   Alert: NewValue = 295955613012, PrevValue = 295956589070

2021.04.29 06:43:32.180   Alert: NewValue = 295146223171, PrevValue = 295147199454

2021.04.29 06:43:32.149   Alert: NewValue = 295065995432, PrevValue = 295067005968

2021.04.29 06:43:32.149   Alert: NewValue = 295078776581, PrevValue = 295079787357

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

И на MT5 подобное происходит, но значительно реже MT4.

В этом была причина. Стал специально обрабатывать подобные ситуации, зависания ушли.

 

Вот это да! Так получается, что это зависание было не из-за while(1) никакого, а из-за GetMicrosecondCount??? Да, у меня также была задействована эта функция для генерации имён рисуемых на графике объектов. Причём ещё до Вашего ответа я удалил эту функцию, заменив выдаваемый ею результат просто на преобразованное в string время тика. Офигеть... Если бы не Ваша подсказка, мне и в голову не пришло бы подозревать эту функцию. Спасибо.

Господа разрабы, что у вас с GetMicrosecondCount? Почему она вызывает зависания терминала?
 
Иван #:

Господа разрабы, что у вас с GetMicrosecondCount? Почему она вызывает зависания терминала?

Она не вызывает зависание, а выдает иногда такие значения, что пользовательский алгоритм может уйти в ОЧЕНЬ долгий цикл.

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