<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: SetUpdateCallback Опять косячит ?]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме SetUpdateCallback Опять косячит ? форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Mon, 27 Apr 2026 01:53:28 +0300</pubDate>
		<item>
			<title>SetUpdateCallback Опять косячит ?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message72894/topic8386/">SetUpdateCallback Опять косячит ?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_XfNpTji2" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />В теории да. Но меня прямо коробит (без обид) такая запись. Переменная ds глобальная, объявляется где-то там.<br />В первом варианте анонимная функция хотя бы видит ее как up-value, а во втором - вся надежда на то, что она объявлена и инициализирована.<br /><br />Хотя бы объявите переменную в самом начале кода.<br />=============<br />Да рукожоп я. Я забыл зону видимости. Передал &quot;ds&quot; в колбек через замыкание. <br />
			<i>04.12.2023 17:25:20, Quikos_1.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message72894/topic8386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message72894/topic8386/</guid>
			<pubDate>Mon, 04 Dec 2023 17:25:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback Опять косячит ?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message72893/topic8386/">SetUpdateCallback Опять косячит ?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В теории да. Но меня прямо коробит (без обид) такая запись. Переменная ds глобальная, объявляется где-то там.<br />В первом варианте анонимная функция хотя бы видит ее как up-value, а во втором - вся надежда на то, что она объявлена и инициализирована.<br /><br />Хотя бы объявите переменную в самом начале кода. <br />
			<i>04.12.2023 17:21:35, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message72893/topic8386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message72893/topic8386/</guid>
			<pubDate>Mon, 04 Dec 2023 17:21:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback Опять косячит ?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message72892/topic8386/">SetUpdateCallback Опять косячит ?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте,<br /><br />Развейте пожалуйста мои сомнения насчет того, что Quik и в частности SetUpdateCallback() - опять работают, какбудто бы их написал через %опу, и что руки их %опы, растут, как раз таки у меня.<br /><br />Использую такой простейший код для теста: просто вывожу последнюю цену сделки и обьем по последней минутной свече:<br /><br />
====code====
<pre>function main()
&nbsp;&nbsp;&nbsp;&nbsp;local class_code = "TQBR" -- Код класса
&nbsp;&nbsp;&nbsp;&nbsp;local sec_code = "SBER" -- Код бумаги

&nbsp;&nbsp;&nbsp;&nbsp;ds = CreateDataSource(class_code, sec_code, INTERVAL_M1)
&nbsp;&nbsp;&nbsp;&nbsp;ds:SetUpdateCallback(function(index)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local last_price = ds:C(index)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local volume = ds:V(index) -- Получение объема по свече
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Last Price of " .. sec_code .. ": " .. tostring(last_price) .. ", Volume: " .. tostring(volume)) -- Вывод цены и объема по свече
&nbsp;&nbsp;&nbsp;&nbsp;end)

&nbsp;&nbsp;&nbsp;&nbsp;while true do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;&nbsp;end
end</pre>
=============
<br />Данный код исправно работает.<br />НО, как только я вывожу код SetUpdateCallback в отдельный колбек, то ничего более не работает. Ошибок также в скрипте нет, но он не сообщает ни о каких измененениях, то есть колбек функция указанная в качестве параметра для SetUpdateCallback - тупо не вызывается при изменнеии цены:
====code====
<pre>
function updateCallback(index)
&nbsp;&nbsp;&nbsp;&nbsp;local last_price = ds:C(index)
&nbsp;&nbsp;&nbsp;&nbsp;local volume = ds:V(index) -- Получение объема по свече
&nbsp;&nbsp;&nbsp;&nbsp;message("Last Price of " .. sec_code .. ": " .. tostring(last_price) .. ", Volume: " .. tostring(volume)) -- Вывод цены и объема по свече
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;local class_code = "TQBR" -- Код класса
&nbsp;&nbsp;&nbsp;&nbsp;local sec_code = "SBER" -- Код бумаги

&nbsp;&nbsp;&nbsp;&nbsp;ds = CreateDataSource(class_code, sec_code, INTERVAL_M1)
&nbsp;&nbsp;&nbsp;&nbsp;ds:SetUpdateCallback(updateCallback)

&nbsp;&nbsp;&nbsp;&nbsp;while true do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;&nbsp;end
end</pre>
=============
Кто из нас рукожоп ? Я или разрабы Квика ? Надеюсь, что я. <br />
			<i>04.12.2023 16:47:27, Quikos_1.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message72892/topic8386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message72892/topic8386/</guid>
			<pubDate>Mon, 04 Dec 2023 16:47:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
