<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Tue, 19 May 2026 19:08:42 +0300</pubDate>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80657/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Все на этом форуме - это бесплатные тестировщики QUIK. <br />
			<i>23.12.2025 21:27:28, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80657/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80657/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 21:27:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80656/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/15309/" target="_blank" rel="nofollow">Сергей</a></noindex>,<br />Вы ошибаетесь.<br /> Вы и я и все на этом форуме не клиенты разработчиков, а клиенты брокеров.<br />Брокеры - клиенты разработчиков.<br />---------------- <br />
			<i>23.12.2025 21:09:25, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80656/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80656/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 21:09:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80654/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/15991/" target="_blank" rel="nofollow">Andrey Golik</a></noindex><br />Прошу Вас ознакомится с экспериментами последних постов и конкретно написать здесь в течении какого времени проблема будет решена<br />У вас в компании должен быть регламент работы с клиентами и обозначены сроки решения проблем с рабочим местом трейдера<br />Как правило такие регламенты предполагают срок не более 1 месяца <br />
			<i>23.12.2025 19:16:14, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80654/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80654/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 19:16:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80653/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_6sW1cCLI" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Полагаю что тема про OnDestroy() &nbsp;закрыта &nbsp;<br />=============<br />Не парни, так не пойдет... &nbsp;Про OnDestroy() &nbsp;может и так, т.е. неправильно тема названа но суть темы в том что терминал теряет контроль над метками, а как это проблема должна решиться это уже вопрос разработчиков. Или де инициализацией &nbsp;или еще каким образом потому как в процессе и вашей попытки решить какими то обходными путями проблема НЕ РЕШИЛАСЬ Метка после переключения на другой актив не удаляется <br />
			<i>23.12.2025 19:09:31, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80653/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80653/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 19:09:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80649/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_iwnWYOZI" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Полагаю что тема про OnDestroy() &nbsp;закрыта <br />=============<br />Эта тема не ограничена метками. Не нужно её закрывать :) тем более что служба поддержки уверяет, что проблема решается... <br />
			<i>23.12.2025 16:46:37, Бес Паники.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80649/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80649/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 16:46:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80648/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4D42fiEo" href="/user/15309/" bx-tooltip-user-id="15309">Сергей</a> написал:<br />Ваше время :) не свое... &nbsp;А Вам благодарен Буду искать обходные варианты<br />=============<br />Если что-то придумаю, то напишу.<br /> Если Вы сделаете иначе, то напишите.<br />Успехов<br />Полагаю что тема про OnDestroy() &nbsp;закрыта &nbsp; <br />
			<i>23.12.2025 16:40:44, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80648/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80648/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 16:40:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80645/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ваше время :) не свое... &nbsp;А Вам благодарен Буду искать обходные варианты <br />
			<i>23.12.2025 15:17:38, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80645/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80645/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 15:17:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80644/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_y26nZg5k" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />После сдвига экрана функция set установит новые координаты метки. А старая метка останется на экране<br />=============<br />Да не должна она нигде остаться У нее есть id при создании и терминал его знает и помнит (должен по крайней мере) и если я делаю новые установки &nbsp;SetLabelParams() то именно к этому id<br />За все остальное отвечает сам терминал, он должен удалить и создать новый объект или к существующему применить изменения но именно с этим изначальным id. &nbsp;А уж при смене инструмента все удалить а скрипт сделает все заново.<br />Еще раз спасибо, не хочу вас дальше втягивать и тратить время <br />
			<i>23.12.2025 15:13:14, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80644/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80644/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 15:13:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80643/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_D9M0dUVd" href="/user/17127/" bx-tooltip-user-id="17127">Бес Паники</a> написал:<br />Да, и у Price нужно этот идентификатор тогда убрать, чтобы Quik точно знал, где убирать метки.<br />=============<br />Убрал и идентификатор ввел в &quot;дополнительно&quot; окна индикатора, увы... &nbsp; <br />
			<i>23.12.2025 14:55:36, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80643/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80643/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:55:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80642/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			А потом еще 30 минут объяснял Вам что и как. <br />
			<i>23.12.2025 14:50:10, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80642/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80642/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:50:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80641/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В первом моем скрипте я удалял метку.<br />Но наложение происходит.<br />Поэтому я поставил стирание всех меток.<br />-------------------<br />Возможно есть иное решение, но я его не искал.<br />Я решал Вашу задачу 5 минут. &nbsp; <br />
			<i>23.12.2025 14:48:57, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80641/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80641/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:48:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80640/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_SVkS6ucm" href="/user/15309/" bx-tooltip-user-id="15309">Сергей</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />Поэтому, полагаю, что как Вы хотите не получится<br />=============<br /> Не совсем понимаю что вообще дает стирание метки и создание ее заново если можно менять ее параметры? Это сэкономит ресурсы или еще что то?<br />Когда сменится инструмент то все предыдущее должно быть удалено в принципе и инициализировано заново как с чистого листа чего как раз и не происходит, как это должно быть реализовано это не вопрос пользователя<br /><br />Конечно если это решит сейчас проблему я так и сделаю, но это как мне кажется неправильно и просто как способ обойти проблемы функционирования самого терминала<br />В любом случае спасибо вам за подсказки и что потратили на меня время<br />=============<br />Попробую объяснить.<br />Когда мы выводим метку то на экране рисуется текст метки по координатам метки в пикселях.<br />функцией Set можно менять текст метки и параметры этого текста или картинки. Все будет нормально, пока не произойдет движение экрана. <br />После сдвига экрана функция set установит новые координаты метки. А старая метка останется на экране.<br />Т е Вы увидите наложение меток .<br />-----------------<br />Решить эту проблему можно, если мы знаем новые координаты старой метки на изменившемся экране. &nbsp;Но мы их незнаем.<br />Поэтому чтобы ее удалить я удаляю все старое и рисую новое. <br />
			<i>23.12.2025 14:44:33, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80640/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80640/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:44:33 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80639/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Да, и у Price нужно этот идентификатор тогда убрать, чтобы Quik точно знал, где убирать метки. <br />
			<i>23.12.2025 14:38:18, Бес Паники.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80639/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80639/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:38:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80638/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_41F2fsiw" href="/user/15309/" bx-tooltip-user-id="15309">Сергей</a> написал:<br />Поле Price - Дополнительно &gt; вводим идентификатор &quot;abcdef&quot;<br />=============<br />Почему Price? Это ветка стандартного графика, а не индикатора. Или у Вас индикатор так называется (имена/названия индикаторов/графиков лучше не дублировать, если что)?<br />В общем скорее всего именно в этом проблема, из-за чего не отрабатывал DelAllLabels(). <br />Нужно выбрать именно тот индикатор, который создает метки и из которого вы хотите потом все метки удалить.<br />Попробуйте так:<br />Поле &#91;ТутНазваниеВашегоИндикатора&#93; -&gt; Дополнительно -&gt; вводим идентификатор &quot;abcdef&quot; (ну или другой, но точно такой же, как задан в коде индикатора) <br />
			<i>23.12.2025 14:25:31, Бес Паники.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80638/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80638/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:25:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80637/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_jZCrikKs" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Поэтому, полагаю, что как Вы хотите не получится<br />=============<br />Не совсем понимаю что вообще дает стирание метки и создание ее заново если можно менять ее параметры? Это сэкономит ресурсы или еще что то?<br />Когда сменится инструмент то все предыдущее должно быть удалено в принципе и инициализировано заново как с чистого листа чего как раз и не происходит, как это должно быть реализовано это не вопрос пользователя<br /><br />Конечно если это решит сейчас проблему я так и сделаю, но это как мне кажется неправильно и просто как способ обойти проблемы функционирования самого терминала<br />В любом случае спасибо вам за подсказки и что потратили на меня время <br />
			<i>23.12.2025 14:24:36, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80637/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80637/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:24:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80636/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			поясняю:<br />SetLabelParams() &nbsp;создаст новую метку, но если ее координаты изменятся,<br /> то старая метка не затрется новой. <br /> Вы это и получаете.<br />---------------<br />Т е если Вы изменяете положение метки на экране, то надо удалять старую. <br />---------------------<br />Выскажу свое субъективное мнение . Если ошибаюсь, пусть разработчики поправят и объяснят.<br />----------------------------------<br />Если экран динамически изменяется,<br /> то удалить старую можно лишь удалив все метки, <br />так как координаты метки ( мое мнение являются статическими). <br />------------------------------<br />Это недоработка разработчиков. <br />Об этом надо указывать в документации или доработать функцию удаления метки. <br />
			<i>23.12.2025 14:13:38, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80636/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80636/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:13:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80635/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_xJxr61r3" href="/user/15309/" bx-tooltip-user-id="15309">Сергей</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />Я лишь показал Вам что проблема не QLua<br />=============<br /> Я имел ввиду что если не удалять метку в теле расчетов а корректировать ее положение то так и будет несколько меток после смены инструмента <br />А lua действительно не причем, это уже проблема самого рабочего места Quik<br />=============<br />У вас в скрипте ( я повторил Ваш алгоритм) &nbsp;метка выводится на новое место, когда график двигается.<br />Поэтому, полагаю, что как Вы хотите не получится.<br />Будет именно так, как у Вас и получалось. &nbsp; <br />
			<i>23.12.2025 14:05:25, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80635/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80635/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 14:05:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80634/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_JKUrMP6x" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Я лишь показал Вам что проблема не QLua<br />=============<br />Я имел ввиду что если не удалять метку в теле расчетов а корректировать ее положение то так и будет несколько меток после смены инструмента <br />А lua действительно не причем, это уже проблема самого рабочего места Quik <br />
			<i>23.12.2025 13:31:21, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80634/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80634/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 13:31:21 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80633/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_xFdzgbEt" href="/user/15309/" bx-tooltip-user-id="15309">Сергей</a> написал:<br />Но вообще говоря у меня как раз нет задачи на тиках удалять и создавать новую метку. &nbsp;Удалять и создавать новую только нужно &nbsp;только если сменился актив графика. Мептка будет нести информацию о позиции - цена входа, объем позиции и тд и обновляться раз в несколько секунд через SetLabelParams()<br />=============<br />Я лишь показал Вам что проблема не QLua, а в написании скрипта.<br />---------------<br />А уж OnDestroy() &nbsp;вообще ни при чем. <br />
			<i>23.12.2025 13:12:46, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80633/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80633/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 13:12:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80632/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Но вообще говоря у меня как раз нет задачи на тиках удалять и создавать новую метку. &nbsp;Удалять и создавать новую только нужно &nbsp;только если сменился актив графика. Мептка будет нести информацию о позиции - цена входа, объем позиции и тд и обновляться раз в несколько секунд через SetLabelParams() <br />
			<i>23.12.2025 12:36:44, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80632/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80632/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 12:36:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80631/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_2yh4iTA5" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />попробуйте этот<br />=============<br />График - Сбербанк<br />Поле Price - Дополнительно &gt; вводим идентификатор &quot;abcdef&quot;<br />Накладываем индикатор - вводим тот же идентификатор&quot;abcdef&quot;<br />Смотрим метку - есть пробуем ее подвигать мышкой Все ок<br />Переключаемся на Роснефть - сдвигаем метку и видим что их уже две <br />Но сейчас обратил внимание что две метки только в теч одной секунды, <br />потом когда пройдет удаление в коде и метка создастся заново то уже одна опять до повторного переключения<br /><br />Второй вариант лучше в нем после переключения образуются две метки<br />а в первом - три и они уже не удаляются по мере тиков <br />
			<i>23.12.2025 12:29:05, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80631/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80631/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 12:29:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80627/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/15309/" target="_blank" rel="nofollow">Сергей</a></noindex> ,<br /><br />попробуйте этот:
====code====
<pre>Settings={ Name = "*nk_test", tag ="Metka"&nbsp;&nbsp;}

params={R = 255, G = 255, B = 255, TRANSPARENCY = 0,FONT_HEIGHT = 10,TRANSPARENT_BACKGROUND = 1, FONT_FACE_NAME = 'Verdana' }

function OnCalculate(i)
&nbsp;&nbsp; if i==1 then
&nbsp;&nbsp; OnChangeSettings()
&nbsp;&nbsp;&nbsp;elseif i== Size() then&nbsp;&nbsp;&nbsp;&nbsp;-- последняя свеча
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if os.time() &#62; LastSecond&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- раз в секунду (или больше)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LastSecond = os.time();&nbsp;&nbsp;&nbsp;&nbsp;-- потиковое обновление (с задержкой)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelAllLabels(Settings.tag);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.TEXT =tostring(C(i))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.HINT = tostring(i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local h=0&nbsp;&nbsp; local&nbsp;&nbsp;m=i;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while 14&#62;i-m&nbsp;&nbsp;do if H(m) &#62; h then h=H(m) end;m=m-1;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local Ti=T(i-3)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.DATE=100*(100*Ti.year+Ti.month)+Ti.day;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.TIME=100*(100*Ti.hour+Ti.min)+Ti.sec;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.YVALUE =h;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label= AddLabel(Settings.tag, params)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end -- every second
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnChangeSettings()
sec = getDataSourceInfo().sec_code; 
DelAllLabels(Settings.tag);
LastSecond=0&nbsp;&nbsp;end
function OnDestroy() OnChangeSettings() end
function Init()&nbsp;&nbsp;return 1 end
</pre>
============= <br />
			<i>23.12.2025 11:18:26, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80627/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80627/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 11:18:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80626/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_mdqYJ7iY" href="/user/15309/" bx-tooltip-user-id="15309">Сергей</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />Мне не удалось получить наложение меток.<br />=============<br /> Попробовал Ваш скрипт в том виде как есть без каких либо изменений К сожалению метки дублируются<br />Чтобы увидеть это переключайтесь между двумя активами туда и обратно<br />Как только первый раз вернетесь на изначальный сместите метку и увидите что их две, потом еще раз на другой и обратно на исходный и будет уже три и тд<br />=============<br />У меня не дублируются.<br />сделайте картинки с указанием инструмента и интервала <br />Я повторю у себя такое же переключение. <br />
			<i>23.12.2025 11:09:45, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80626/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80626/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 11:09:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80625/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_NO5mnXA5" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Мне не удалось получить наложение меток.<br />=============<br />Попробовал Ваш скрипт в том виде как есть без каких либо изменений К сожалению метки дублируются<br />Чтобы увидеть это переключайтесь между двумя активами туда и обратно<br />Как только первый раз вернетесь на изначальный сместите метку и увидите что их две, потом еще раз на другой и обратно на исходный и будет уже три и тд <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13025&" width="242" height="246" /><br /><i>23.12.2025 10:34:11, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80625/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80625/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 10:34:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80624/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Спасибо большое <noindex><a href="https://forum.quik.ru/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> &nbsp; и &nbsp;<noindex><a href="https://forum.quik.ru/user/17127/" target="_blank" rel="nofollow">Бес Паники</a></noindex><br />Попробую все на выходных и отпишусь <br />
			<i>23.12.2025 10:10:49, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80624/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80624/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 10:10:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80623/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_D50D9ZAd" href="/user/15309/" bx-tooltip-user-id="15309">Сергей</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/17127/" target="_blank" rel="nofollow">Бес Паники</a></noindex> написал:<br />В методе GraphLabels:Clear() поле self.GraphId объекта GraphLabels содержит значение, переданное в Init() вызовом GraphLabels:Init(GRAPHID_TRADERTARGETS). Старые метки удаляются и создаются новые как раз по ci == 1<br />=============<br /> Спасибо, красивый вариант Но честно говоря не совсем уловил :)<br />GRAPHID_TRADERTARGETS - это метка из Settings ?<br />LabelSB, ..., &nbsp;LabelBS - это что?<br />=============<br /><br />Это не полный скрипт. Только часть. Он выводит метками цели купли и продажи задач торгового робота. Весь скрипт состоит из различных файлов, в одном из файлов задано и значение GRAPHID_TRADERTARGETS. Просто в виде константы (констант настоящих в Lua нет, но таковой в общем то можно считать любое неизменяемое по коду значение). Т.е. в файле констант скрипта прописано<br />GRAPHID_TRADERTARGETS = &#39;AnyStringYouWantToBeGraphIdentifier&#39; <br />(ну почти, значение, которое тут присваивается может быть любым).<br />Главное, чтобы точно такое же значение было указано в настройках (НЕ в Settings!!! Задавать в Settings - это альтернатива, опять же почти, варианту задавать константой).<br />Настройки имеются ввиду другие, а именно диалоговое окно редактирования графика Quik, набора индикаторов на графике, там у каждого графика есть вкладка &quot;Дополнительно&quot; и вот там есть поле &quot;Идентификатор&quot;. Именно его нужно прописать.<br /><br />[img]data:image/png;base64, *[/img]<br /><br />Причем прописать в настройках именно у того индикатора, который соответствует скрипту (настройки, включая идентификаторы у каждого индикатора свои).<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_1BQtR4nf" href="/user/15309/" bx-tooltip-user-id="15309">Сергей</a> написал:<br />test_Example2.lua:190: attempt to index a nil value (global &#39;GraphLabels&#39;)<br />=============<br />Туту GraphLabels - это таблица/объект. Его тоже нужно создавать/объявлять/декларировать, чтобы он стал доступен. Так удобно для громоздких скриптов упорядочивать функционал и данные и потом использовать &nbsp;это в виде библиотек в различных скриптах. Это просто вариант реализации. <br />
			<i>23.12.2025 09:50:18, Бес Паники.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80623/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80623/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 09:50:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80619/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/15309/" target="_blank" rel="nofollow">Сергей</a></noindex>,<br />Написал для вас ПРАВИЛЬНЫЙ индикатор подобно Вашему, если правильно понял алгоритм.<br />------------------------------<br />Он работает нормально и при смене инструментов и при смене интервалов и ВООБЩЕ ВСЕГДА .<br />-------------------<br />Мой индикатор делает следующее:<br />--------------------------<br />Через секунду он удаляет ранее выставленную метку и выводит новую.<br />----------------------------<br />Если это не то, то скажите что не так, я исправлю. &nbsp;
====code====
<pre>Settings={ Name = "*nk_test", tag ="Metka"&nbsp;&nbsp;}

 params={R = 255, G = 255, B = 255, TRANSPARENCY = 0,FONT_HEIGHT = 10,TRANSPARENT_BACKGROUND = 1, FONT_FACE_NAME = 'Verdana' }

function OnCalculate(i)
&nbsp;&nbsp; if i==1 then
&nbsp;&nbsp; OnChangeSettings()&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;elseif i== Size() then&nbsp;&nbsp;&nbsp;&nbsp;-- последняя свеча
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if os.time() &#62; LastSecond&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- раз в секунду (или больше)&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LastSecond = os.time();&nbsp;&nbsp;&nbsp;&nbsp;-- потиковое обновление (с задержкой)&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if Label then DelLabel(Settings.tag,Label) end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.TEXT =tostring(C(i))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.HINT = tostring(i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local h=0&nbsp;&nbsp; local&nbsp;&nbsp;m=i;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while 14&#62;i-m&nbsp;&nbsp;do if H(m) &#62; h then h=H(m) end;m=m-1;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local Ti=T(i-3)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.DATE=100*(100*Ti.year+Ti.month)+Ti.day;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.TIME=100*(100*Ti.hour+Ti.min)+Ti.sec;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.YVALUE =h;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label= AddLabel(Settings.tag, params) 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end -- every second
&nbsp;&nbsp;&nbsp;&nbsp;end 
end

function OnChangeSettings() 
sec = getDataSourceInfo().sec_code; DelAllLabels(Settings.tag); 
LastSecond=0&nbsp;&nbsp;end
function OnDestroy() OnChangeSettings() end
function Init()&nbsp;&nbsp;return 1 end</pre>
=============
[FILE ID=13021]<br /><br />[FILE ID=13022]<br /><br />[FILE ID=13023] <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13021&" width="420" height="560" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13022&" width="422" height="566" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13023&" width="406" height="576" /><br /><i>23.12.2025 08:25:45, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80619/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80619/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 08:25:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80617/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			[FILE ID=13019]<br />[FILE ID=13020] <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13019&" width="1574" height="416" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13020&" width="1562" height="384" /><br /><i>23.12.2025 06:52:47, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80617/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80617/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 06:52:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80615/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/15309/" target="_blank" rel="nofollow">Сергей</a></noindex>,<br />Я взял Ваш скрипт вот этот:
====code====
<pre>Settings=
{
Name = "*test_Example-2",
chart_ID ="Metka"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- идентификатор графика
}

n_init = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- переменная для подсчета заходов в функцию Init
n_OnCalcCount = 0&nbsp;&nbsp; -- переменная для подсчета OnCalculate
n_OnChange = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- счетчик OnChangeSettings
bars_prev = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- номер посл бара
TF_prev = -4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- таймфрейм
delay = 1.0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- задержка в цикле рассчетов параметров для метки (параметров счета)
LastSecond = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- время последнеих рассчетов 
chart_tag = '';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- идентификатор графика
label_params = {};&nbsp;&nbsp; -- параметры метки
Label_ID = nil;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- идентификатор графика
Labels = {};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Массив номеров установленных меток - для контроля

function Init()
&nbsp;&nbsp; n_init = n_init + 1
PrintDbgStr("Init() = "..n_init)
&nbsp;&nbsp; n_OnCalcCount = 0
&nbsp;&nbsp; n_OnChange = 0
&nbsp;&nbsp; bar_prev = 0
&nbsp;&nbsp; TF_prev = -4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- контроль смены таймфрейма
&nbsp;&nbsp; sec_code_prev = ''&nbsp;&nbsp; -- контроль перекл на др актив
&nbsp;&nbsp; 
&nbsp;&nbsp; return 1
end

function OnChangeSettings()
--&nbsp;&nbsp; n_OnCalcCount = 0
&nbsp;&nbsp; n_OnChange = n_OnChange + 1
&nbsp;&nbsp; chart_tag = Settings.chart_ID
PrintDbgStr("OnChangeSettings() = "..n_OnChange..', n_OnCalcCount = '..n_OnCalcCount)
end

function OnDestroy()
PrintDbgStr("OnDestroy() #Labels Array "..#Labels);
&nbsp;&nbsp; if #Labels &#62; 0 then -- Удаляет ранее установленные метки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=1,#Labels,1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local del = DelLabel(chart_tag, Labels&#91;i&#93;);&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if del then PrintDbgStr("OnDestroy() Del id "..tostring(Labels&#91;i&#93;));&nbsp;&nbsp;end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp; end;
&nbsp;&nbsp; -- стараемся найти и удалить потерянные метки 
&nbsp;&nbsp; PrintDbgStr("OnDestroy() LbDelete_2() "..LbDelete_2() .. ' labels were removed');
 
end


function OnCalculate(index)


&nbsp;&nbsp;&nbsp;&nbsp;-- Пропускаем первый проход между Init() и OnChangeSettings() при первичном&nbsp;&nbsp;добавлении индикатора
&nbsp;&nbsp;&nbsp;&nbsp;-- для исключения ошибки чтения параметра при первом запуске индикатора
&nbsp;&nbsp;&nbsp;&nbsp;-- Init() &#62; OnCalculate() &#62; OnChangeSettings() &#62; OnCalculate() 2 &#62; OnCalculate() 3
&nbsp;&nbsp; if n_OnChange == 0 then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while index &#60;= Size()&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if index == Size() then PrintDbgStr('Пропускаем цикл до вызова OnChangeSettings() после Init(), index = ' .. index); end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp; end
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;-- предпоследний бар
&nbsp;&nbsp; if index == Size() - 1 then
PrintDbgStr('---- Begin Cycle Number '..(n_OnCalcCount+1))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DSInfo&nbsp;&nbsp; = getDataSourceInfo();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sec_Code = DSInfo.sec_code;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if chart_tag == '' then message('OnCalculate Chart ID не указан!!!'); end;
PrintDbgStr("Seccode " .. Sec_Code ..",&nbsp;&nbsp;chart_ID = " .. chart_tag)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- последняя свеча
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if index == Size() then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- раз в секунду (или больше)&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if os.time() &#62; LastSecond&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- if os.time() &#62; LastSecond + 2*delay-1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LastSecond = os.time();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- потиковое обновление (с задержкой)&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label_params&#91;'TEXT'&#93; = tostring(C(index))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label_params&#91;'HINT'&#93; = tostring(index)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- корректируем параметры метки&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Label_ID&nbsp;&nbsp;~= nil and TF_prev == DSInfo.interval then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- сохраняем прежнее положение метки если переместили в теч текущ бара)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- при смене таймфрейма метка будет удалена и создана заново
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local ly = GetLabelParams(chart_tag, Label_ID)&nbsp;&nbsp; --table or nil
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ly ~= nil then&nbsp;&nbsp; -- and ly.yvalue ~= nil 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label_params&#91;'YVALUE'&#93; = ly.yvalue
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label_params&#91;'DATE'&#93;&nbsp;&nbsp; = ly.date
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label_params&#91;'TIME'&#93;&nbsp;&nbsp; = ly.time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;
--PrintDbgStr('index == Size() = ' .. Size() .. ', Label_ID&nbsp;&nbsp;' .. Label_ID .. ', C(index) ' .. tostring(C(index))&nbsp;&nbsp; )&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetLabelParams(chart_tag, Label_ID, label_params);
--&nbsp;&nbsp; PrintDbgStr('SetLabelParams Label_ID = '..Label_ID)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- первый тик нового бара или первый проход и метка еще не создавалась или смена таймфрейма
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- удаляем предыдущую и создаем новую метку с новыми координатами (метку можно смещать в удобное место...)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if bars_prev &#60; Size() or Label_ID == nil or TF_prev ~= DSInfo.interval then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bars_prev = Size()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- удаляем метку если она уже была и создаем новую
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if Label_ID ~= nil then LbDelete() end;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label_ID = labeldraw(chart_tag, index)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TF_prev = DSInfo.interval
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end -- every second
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- завершение цикла
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n_OnCalcCount = n_OnCalcCount+1
&nbsp;&nbsp; --PrintDbgStr('END Cycle index == Size() ' .. Size()..', n_OnCalcCount = '..n_OnCalcCount)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end -- index == Size()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp; end -- if index &#62; 1 
&nbsp;&nbsp; 
&nbsp;&nbsp; return nil
end

function labeldraw(tag, index)
 
&nbsp;&nbsp; local highest = 0.0&nbsp;&nbsp; 
&nbsp;&nbsp; for j = 0, 14 do
&nbsp;&nbsp;&nbsp;local m=index-j;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if m&#62;0 and H(m) &#62; highest then highest = H(m) end;
&nbsp;&nbsp; end

&nbsp;&nbsp; local _t =&nbsp;&nbsp;&nbsp;&nbsp;T(index-3)
&nbsp;&nbsp; --PrintDbgStr(_t.year.._t.month.._t.day..' '.._t.hour..':'.._t.min..':'.._t.sec)
&nbsp;&nbsp; local Y = tostring(_t.year)
&nbsp;&nbsp; local m = tostring(_t.month)&nbsp;&nbsp; if #m&nbsp;&nbsp;== 1 then&nbsp;&nbsp;m = "0"..m&nbsp;&nbsp;end;
&nbsp;&nbsp; local d = tostring(_t.day)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #d&nbsp;&nbsp;== 1 then&nbsp;&nbsp;d = "0"..d&nbsp;&nbsp;end;
&nbsp;&nbsp; local hh = tostring(_t.hour)&nbsp;&nbsp; if #hh == 1 then hh = "0"..hh end;
&nbsp;&nbsp; local mm = tostring(_t.min)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #mm == 1 then mm = "0"..mm end;
&nbsp;&nbsp; local ss = '00'; -- tostring(_t.sec) if #ss == 1 then ss = "0"..ss end;

&nbsp;&nbsp; label_params&#91;'DATE'&#93; = tonumber(Y..m..d);
&nbsp;&nbsp; label_params&#91;'TIME'&#93; = tonumber(hh..mm..ss);
&nbsp;&nbsp; label_params&#91;'YVALUE'&#93; = highest;
&nbsp;&nbsp; label_params&#91;'R'&#93; = 0; -- DOUBLE Красная компонента цвета в формате RGB. Число в интервале &#91;0;255&#93;
&nbsp;&nbsp; label_params&#91;'G'&#93; = 0; -- DOUBLE Зеленая компонента цвета в формате RGB. Число в интервале &#91;0;255&#93;
&nbsp;&nbsp; label_params&#91;'B'&#93; = 255; -- DOUBLE Синяя компонента цвета в формате RGB. Число в интервале &#91;0;255&#93;
&nbsp;&nbsp; label_params&#91;'TRANSPARENCY'&#93; = 0;
&nbsp;&nbsp; label_params&#91;'TRANSPARENT_BACKGROUND'&#93; = 1;
&nbsp;&nbsp; label_params&#91;'FONT_FACE_NAME'&#93; = 'Verdana';
&nbsp;&nbsp; label_params&#91;'FONT_HEIGHT'&#93; = 12;

&nbsp;&nbsp; local label_id = AddLabel(tag, label_params) -- number
&nbsp;&nbsp; if label_id&nbsp;&nbsp;~= nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Labels&#91;#Labels+1&#93; = label_id
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintDbgStr('Create Label_id: '..tostring(label_id)) 
&nbsp;&nbsp; else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message('Don&#92;'t create label')
&nbsp;&nbsp; end

&nbsp;&nbsp; return label_id&nbsp;&nbsp;-- number

end


----&nbsp;&nbsp;удаление меток
-- ищем и удаляем все метки независимо как и кем установленные :) 
-- функцию используем полной очистки от меток и контроля 
function LbDelete_2()
--&nbsp;&nbsp; local _labels = {}
&nbsp;&nbsp;&nbsp;&nbsp;local n = 0;
&nbsp;&nbsp; for _label_id = 1, 10000, 1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local L = GetLabelParams(chart_tag, _label_id )--table or nil&nbsp;&nbsp;Табл параметров метки - все значения имеют тип – STRING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if L ~= nil&nbsp;&nbsp;then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local del = DelLabel(chart_tag, _label_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if del == true then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = n + 1;
PrintDbgStr('LbDelete_2() Label number '..tostring(_label_id).. ' deleted ')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp; end
&nbsp;&nbsp; Label_ID = nil;
&nbsp;&nbsp; Labels = {}
&nbsp;&nbsp; return n;
end
-- Удаляет ранее установленные метки сохраненые в массиве
function LbDelete()
&nbsp;&nbsp; local n = 0
&nbsp;&nbsp; if #Labels &#62; 0 then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for j=1,#Labels,1 do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if DelLabel(chart_tag, tonumber(Labels&#91;j&#93;)) then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = n + 1
PrintDbgStr("LbDelete() id "..tostring(Labels&#91;j&#93;) .. ' deleted')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Labels = {};
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label_ID = nil;
&nbsp;&nbsp; end;
&nbsp;&nbsp; return n;
end;
</pre>
=============
и запустил его на демо сервере.<br />Мне не удалось получить наложение меток. &nbsp;Можете объяснить, что надо сделать, чтобы получить наложение?<br />вот картинки при переходе на различные инструменты.<br />Метка всегда одна и соответствует инструменту<br />[FILE ID=13015]<br /><br />[FILE ID=13016]<br /><br />[FILE ID=13017]<br />[FILE ID=13018] <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13015&" width="1570" height="512" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13016&" width="1550" height="552" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13017&" width="1596" height="562" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13018&" width="1552" height="566" /><br /><i>23.12.2025 05:45:29, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80615/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80615/topic8726/</guid>
			<pubDate>Tue, 23 Dec 2025 05:45:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80611/topic8726/">При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_aur1yUPK" href="/user/17127/" bx-tooltip-user-id="17127">Бес Паники</a> написал:<br />Вот пример как реализовано у меня и метки уверенно удаляются, долго морочился, пока не зафиксировал &quot;chart_tag&quot; в виде константы в коде<br />=============<br />Не совсем удобно но я попрошу - допишите необходимые фрагменты кода прямо в <noindex><a href="https://forum.quik.ru/messages/forum10/message76515/topic8726/#message76515" target="_blank" rel="nofollow">мой тестовый пример</a></noindex> &nbsp; &nbsp; Тогда разберусь неприменно &nbsp;Здорово выручите ! <br />
			<i>22.12.2025 22:46:23, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80611/topic8726/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80611/topic8726/</guid>
			<pubDate>Mon, 22 Dec 2025 22:46:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
