<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Не работает getDataSourceInfo в индикаторе]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Не работает getDataSourceInfo в индикаторе форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 17 Apr 2026 04:33:51 +0300</pubDate>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79778/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Т.к. с 7-ой версии, кажется, разрешены пропуски на графике, то в теории первый бар может иметь не индекс 1. <br />
			<i>13.10.2025 15:19:02, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79778/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79778/topic9277/</guid>
			<pubDate>Mon, 13 Oct 2025 15:19:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79777/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_jdJufrif" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Только учитывайте, что этот подход рассчитан на то, что будет вызван OnCalculate для индекса 1. Что в большинстве случаев верно, конечно. Но, судя по сему - не гарантировано. Но предпочитаю более надежный подход через инициализацию переменных в замыкании и проверке первого вызова для любого индекса. &nbsp;<br />=============<br />Можете доказать, что i может не быть равным 1 ? <br />Учитывая то, что при старте OnCallulate вызывается два раза. И i==1 будет обязательно. <br />
			<i>13.10.2025 15:15:37, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79777/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79777/topic9277/</guid>
			<pubDate>Mon, 13 Oct 2025 15:15:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79774/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_GLzhOO5u" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Только учитывайте, что этот подход рассчитан на то, что будет вызван OnCalculate для индекса 1. Что в большинстве случаев верно, конечно. Но, судя по сему - не гарантировано. Но предпочитаю более надежный подход через инициализацию переменных в замыкании и проверке первого вызова для любого индекса. &nbsp;<br />=============<br />Проверил, да, есть нюанс. Работает у Вас как-то по другому. Если ввести переменную, которую инициализировать в OnInit в 1, например, а в OnCalculate проверять ее и увеличить на 1, если она равна 1, то работает надежнее. Особенно, если график привязан к таблице текущих торгов и ты по ней ходишь. Вернул как было у меня :) <br />
			<i>13.10.2025 13:37:56, Андрей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79774/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79774/topic9277/</guid>
			<pubDate>Mon, 13 Oct 2025 13:37:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79773/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Только учитывайте, что этот подход рассчитан на то, что будет вызван OnCalculate для индекса 1. Что в большинстве случаев верно, конечно. Но, судя по сему - не гарантировано. Но предпочитаю более надежный подход через инициализацию переменных в замыкании и проверке первого вызова для любого индекса. &nbsp; <br />
			<i>13.10.2025 11:55:13, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79773/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79773/topic9277/</guid>
			<pubDate>Mon, 13 Oct 2025 11:55:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79772/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ubS1Wcfz" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/12743/" target="_blank" rel="nofollow">Андрей</a></noindex> написал:<br />Пишу индикатор. Для целей его использования нужен sec_code.<br />Для его получения использую getDataSourceInfo, но она возвращает все значения пустыми, кроме интервала. его возвращает корректно. <br />Что делать? как получить sec_code?<br /><br />function Init()<br />	local info = getDataSourceInfo()<br />	for key, val in pairs(info) do<br /> &nbsp; &nbsp;message(&quot;Индикатор запущен для: &quot; .. tostring(key)..&quot;/&quot;..tostring(val))<br />	end	<br /> &nbsp; &nbsp;return #Settings.line &nbsp; &nbsp; &nbsp; &nbsp;-- Количество линий совпадает с числом элементов в массиве line<br />end<br />=============<br /> получаю его вот так уже ...надцать лет и без проблем:<br />--------------- 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; OnCalculate (i)
 if&nbsp;&nbsp;i =&nbsp;&nbsp;=&nbsp;&nbsp;1&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;tinfo =&nbsp;&nbsp;getDataSourceInfo ();
&nbsp;&nbsp;&nbsp;&nbsp;clas = tinfo.class_code;
&nbsp;&nbsp;&nbsp;&nbsp;sec = tinfo.sec_code; 
&nbsp;&nbsp;&nbsp;&nbsp; interval = tinfo.interval;
 end 
 --..... 
 end 

&nbsp;&nbsp;</pre>
=============
 <br />=============<br />Спасибо. Так примерно и сделал, но у вас чуть элегантнее. Поправил у себя. &nbsp; <br />
			<i>13.10.2025 11:46:31, Андрей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79772/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79772/topic9277/</guid>
			<pubDate>Mon, 13 Oct 2025 11:46:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79769/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_23uwJYMx" href="/user/12743/" bx-tooltip-user-id="12743">Андрей</a> написал:<br />Пишу индикатор. Для целей его использования нужен sec_code.<br />Для его получения использую getDataSourceInfo, но она возвращает все значения пустыми, кроме интервала. его возвращает корректно. <br />Что делать? как получить sec_code?<br /><br />function Init()<br />	local info = getDataSourceInfo()<br />	for key, val in pairs(info) do<br /> &nbsp; &nbsp;message(&quot;Индикатор запущен для: &quot; .. tostring(key)..&quot;/&quot;..tostring(val))<br />	end	<br /> &nbsp; &nbsp;return #Settings.line &nbsp; &nbsp; &nbsp; &nbsp;-- Количество линий совпадает с числом элементов в массиве line<br />end<br />=============<br />получаю его вот так уже ...надцать лет и без проблем:<br />---------------
====code====
<pre>function OnCalculate(i)
if i==1 then
&nbsp;&nbsp;&nbsp;&nbsp;tinfo=getDataSourceInfo();
&nbsp;&nbsp;&nbsp;&nbsp;clas=tinfo.class_code;
&nbsp;&nbsp;&nbsp;&nbsp;sec=tinfo.sec_code; 
&nbsp;&nbsp;&nbsp;&nbsp; interval=tinfo.interval;
end
--.....
end

</pre>
============= <br />
			<i>13.10.2025 05:39:09, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79769/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79769/topic9277/</guid>
			<pubDate>Mon, 13 Oct 2025 05:39:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79768/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_c29l87B1" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Его не стоит применять в Init. Запуск индикаторов у Квика устроены очень странно. Вызывайте на первом вызове колбека OnCalculate.<br />=============<br />Спасибо за ответ!Методом научного тыка догадался. Чем больше работаю с QUIK тем больше поражаюсь, как чудесно он сделан :(. &nbsp; <br />
			<i>12.10.2025 23:55:44, Андрей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79768/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79768/topic9277/</guid>
			<pubDate>Sun, 12 Oct 2025 23:55:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79766/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Его не стоит применять в Init. Запуск индикаторов у Квика устроены очень странно. Вызывайте на первом вызове колбека OnCalculate. <br />
			<i>12.10.2025 16:43:20, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79766/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79766/topic9277/</guid>
			<pubDate>Sun, 12 Oct 2025 16:43:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не работает getDataSourceInfo в индикаторе</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79760/topic9277/">Не работает getDataSourceInfo в индикаторе</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Пишу индикатор. Для целей его использования нужен sec_code.<br />Для его получения использую getDataSourceInfo, но она возвращает все значения пустыми, кроме интервала. его возвращает корректно. <br />Что делать? как получить sec_code?<br /><br />function Init()<br />	local info = getDataSourceInfo()<br />	for key, val in pairs(info) do<br /> &nbsp; &nbsp;message(&quot;Индикатор запущен для: &quot; .. tostring(key)..&quot;/&quot;..tostring(val))<br />	end	<br /> &nbsp; &nbsp;return #Settings.line &nbsp; &nbsp; &nbsp; &nbsp;-- Количество линий совпадает с числом элементов в массиве line<br />end <br />
			<i>12.10.2025 15:51:57, Андрей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79760/topic9277/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79760/topic9277/</guid>
			<pubDate>Sun, 12 Oct 2025 15:51:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
