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

 
BlackTomcat:
Вчера обсуждали, страница 1687. :) Но читать лучше вот с этого сообщения на 1686-й странице: https://www.mql5.com/ru/forum/1111/page1686#comment_2790746 Кстати, человек на Ваш же вопрос отвечал. Просто получается, что схема такая. Запрос на вызов индикатора попадает в Терминал. Т.е. советник или скрипт не вызывают индикатор напрямую, терминал выступает посредником. В терминале происходит проверка, существует ли уже такой индикатор с указанными параметрами. Если да, то он возвращает программе, вызвавшей индикатор, хэндл (ссылку) на уже существующий индикатор. А в своих терминальных недрах помечает в счётчике, что был ещё один вызов на данный индикатор. Т.е. он ведёт учёт, сколько хэндлов на данный индикатор вернул. Когда кто-то делает IndicatorRelease, это не значит, что остальным, кто вызвал этот же индикатор с такими же параметрами, этот индикатор больше не нужен. Поэтому Терминал уменьшает счётчик на единицу, но оставляет индикатор активным, потому-что им ещё кто-то пользуется. Так будет продолжаться до тех пор, пока счётчик не обнулится. А вот когда он обнулится, тогда Терминал окончательно и бесповоротно удалит данный индикатор из оперативной памяти.
Если Вы попробуете создать код, который будет содержать IndicatorRelease, но при этом не будет содержать вызова самого индикатора, то я думаю, что Вы его просто-напросто не откомпилируете, потому-что в IndicatorRelease нужно передавать хэндл, а если индикатор не вызывался из программы, то и хэндл вы не узнаете.

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

Написал индикатор, который заполняет рэндомно свой буфер. Из разных мест вызываю (MT5) этот индикатор через iCustom с одними и теми же входными параметрами. И получаю совершенно разные значения буферов! Кто-то выдал желаемое за действительное, либо в MT5 баг и индикаторы не работают так, как заявлено.

 
МТ4. Задание цвета clrNONE буферу индикатора DRAW_ARROW задаёт не отсутствие цвета, а чёрный цвет. Было уже такое, и вот опять...
 
А какой смысл ставить clrNONE буферу стрелок? Просто можно ведь поставить стиль DRAW_NONE...
 
Alexey Kozitsyn - у пользователя нет такой возможности

OFF: Форум паломалсо ? Вроде по графику его ломают на выходных..
 
Alexander Puzanov:
Alexey Kozitsyn - у пользователя нет такой возможности

OFF: Форум паломалсо ? Вроде по графику его ломают на выходных..

Пользователю можно дать выбрать из DRAW_ARROW и DRAW_NONE...

Да, тоже процитировать не смог...

 
Alexey Kozitsyn:
А какой смысл ставить clrNONE буферу стрелок? Просто можно ведь поставить стиль DRAW_NONE...
Вопрос пользователям индикатора?
Если человек хочет отключить показ стрелок какого-либо буфера, то как он это сделает в настройках?
Меня многие просят сделать так, чтобы при выборе прозрачного цвета в настройках, он отсутствовал, а не был чёрным.
Раньше задание в настройках цвета как clrNone приводило к сокрытию стрелок, выводимых буфером индикатора, которому задаётся отсутствие цвета.
 
Alexey Kozitsyn:

Пользователю можно дать выбрать из DRAW_ARROW и DRAW_NONE...

Да, тоже процитировать не смог...

Обойти штатную поломку можно разными методами, но это ошибка, о которой и сообщил.
 
Artyom Trishkin:
Вопрос пользователям индикатора?
Если человек хочет отключить показ стрелок какого-либо буфера, то как он это сделает в настройках?
Меня многие просят сделать так, чтобы при выборе прозрачного цвета в настройках, он отсутствовал, а не был чёрным.
Раньше задание в настройках цвета как clrNone приводило к сокрытию стрелок, выводимых буфером индикатора, которому задаётся отсутствие цвета.

Если раньше так было - хорошо. Точнее, удобно.

Если человек хочет отключить показ стрелок и разработчики не поправят, то, как я уже сказал, можно во входные поставить флаг "показывать/не показывать", а реализовать как DRAW_ARROW/DRAW_NONE. 

 
Alexey Kozitsyn:

Если раньше так было - хорошо. Точнее, удобно.

Если человек хочет отключить показ стрелок и разработчики не поправят, то, как я уже сказал, можно во входные поставить флаг "показывать/не показывать", а реализовать как DRAW_ARROW/DRAW_NONE. 

Обойти штатную поломку можно разными методами, но это ошибка, о которой и сообщил.
 
Artyom Trishkin:
Обойти штатную поломку можно разными методами, но это ошибка, о которой и сообщил.
Да, я увидел)
Причина обращения: