<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Прошу пояснений про получение цены]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Прошу пояснений про получение цены форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 23 Apr 2026 20:21:56 +0300</pubDate>
		<item>
			<title>Прошу пояснений про получение цены</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45488/topic5400/">Прошу пояснений про получение цены</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_P38Fct9Z" href="/user/12231/" bx-tooltip-user-id="12231">Александр</a>, <br />На самом деле, заказ данных &nbsp;после CreateDataSource &nbsp;происходит независимо от заданного коллбэка. <br />Для данных на основании обезличенных сделок будут получаться все данные, <br />Для данных ТТТ в зависимости от настроек терминала для получения ТТТ, т.е. если получение пропущенных данных выключено, то будут доступны только новые данные ТТТ. <br />
			<i>25.05.2020 06:00:08, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45488/topic5400/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45488/topic5400/</guid>
			<pubDate>Mon, 25 May 2020 06:00:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Прошу пояснений про получение цены</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44929/topic5400/">Прошу пояснений про получение цены</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Xftq76cT" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Странно, обычно пользователи на оборот борются за то чтобы заказ данных происходил автоматически.Вы же почему-то пытаетесь избавиться от автозаказа.<br />=============<br />Прежде всего я хочу, чтобы код вёл себя ожидаемым образом. Если вы пишете, что данные без колбэков обновляться не должны, я ожидаю это и пронаблюдать. А наблюдаю обновление данных. И поэтому пытаюсь разобраться, почему так происходит.<br /> <br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_n2i8BOcD" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Значит где то у Вас есть подписка, возможно есть другой lua скрипт?<br />=============<br />Вот я и пытаюсь понять, где же эта подписка. Квик &quot;голый&quot;: никаких графиков, таблиц. Других скриптов нет, этот скрипт только один в списке.<br /> <br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_p3aCHpHu" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Без указанного скрипта и с закрытыми всеми графиками, в папке archive появляется что-нибудь?<br />=============<br />До запуска скрипта папка archive пустая. Сразу после запуска в этой папке появляется один файл SPBFUT_RIM0_1.dat.<br /> <br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_fZ6TL4Hl" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />А вообще на графики влияет галка &quot;Получать пропущенные данные&quot;<br />=============<br />Галка &quot;Получать пропущенные данные&quot; снята. Там же рядом есть пункты &quot;Только данные, отражающие текущее состояние&quot; и &quot;Данные, отражающие текущее состояние и всю историю изменений&quot;: пробовал оба, минутки всё равно обновляются. <br />
			<i>14.05.2020 18:00:18, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44929/topic5400/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44929/topic5400/</guid>
			<pubDate>Thu, 14 May 2020 18:00:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Прошу пояснений про получение цены</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44927/topic5400/">Прошу пояснений про получение цены</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Nw295bmw" href="/user/12231/" bx-tooltip-user-id="12231">Александр</a> написал:<br />то ли всё-таки при каких-то настройках в Квике обновление само собой происходить не будет.<br />=============<br /><br />Странно, обычно пользователи на оборот борются за то чтобы заказ данных происходил автоматически.<br />Вы же почему-то пытаетесь избавиться от автозаказа.<br /><br />Как уже было сказано CreateDataSource без колбеков будет показывать то что есть в терминале.<br />Если в терминале актуальные данные то и в CreateDataSource Вы получите актуальные данные.<br />Значит где то у Вас есть подписка, возможно есть другой lua скрипт?<br />Без указанного скрипта и с закрытыми всеми графиками, в папке archive появляется что-нибудь?<br />А вообще на графики влияет галка "Получать пропущенные данные" <br />
			<i>14.05.2020 16:46:16, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44927/topic5400/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44927/topic5400/</guid>
			<pubDate>Thu, 14 May 2020 16:46:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Прошу пояснений про получение цены</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44916/topic5400/">Прошу пояснений про получение цены</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_BB8lpB5S" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Без подписки на колбек, CreateDataSource вернет только то что в данные момент есть в терминале. Если в данный момент в терминале не актуальные данные (закрыли окна с графиками), то и от функции CreateDataSource Вы ничего внятного не добьетесь.<br />=============<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_ffG081b6" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Чтобы получить актуальные данные, требуется подписаться на информацию с сервера, для этого нужно вызвать SetUpdateCallback или SetEmptyCallback<br />=============<br /> <br />Добрый день. Я так понял, что если вызываем функцию CreateDataSource, но на колбэки не подписываемся, то данные обновляться не должны. Но мне никак не удаётся воспроизвести такую ситуацию. Вызываю CreateDataSource, не вызываю SetEmptyCallback, но данные всё равно обновляются. Код ниже. Видно, как объём на последней свече меняется, как новые свечи приходят. Удалил в Квике все графики, таблицы, вкладки. В настройках &quot;Заказ данных&quot; снял все галки, до кучи в папке с Квиком удалил archive и alltrade.dat. Запускаю скрипт, приходят минутки за три с лишним дня, и данные продолжают обновляться. Проверял, минутки правильные. Пробовал и на боевом Квике, и на демо, на разных версиях (7.27, 8.1, 8.5.2). Не могу понять, то ли при вызове CreateDataSource данные обновляются и без колбэков, то ли всё-таки при каких-то настройках в Квике обновление само собой происходить не будет. Прошу подсказки.<br /> <br />
====code====
<pre>is_run = true

class_code = "SPBFUT"
sec_code = "RIM0"

function OnInit()
end

function OnStop()
&nbsp;&nbsp;&nbsp;is_run = false
end

function main()
&nbsp;&nbsp;&nbsp;ds = CreateDataSource(class_code, sec_code, INTERVAL_M1);
&nbsp;&nbsp;&nbsp;sleep(200)
&nbsp;&nbsp;&nbsp;--ds:SetEmptyCallback();
&nbsp;&nbsp;&nbsp;while is_run do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message(ds:Size() .. " " .. ds:V(ds:Size()) .."&#92;n",1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(3000)
&nbsp;&nbsp;&nbsp;end
end
</pre>
============= <br />
			<i>14.05.2020 14:41:32, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44916/topic5400/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44916/topic5400/</guid>
			<pubDate>Thu, 14 May 2020 14:41:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Прошу пояснений про получение цены</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44720/topic5400/">Прошу пояснений про получение цены</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_LR4FT1Vw" href="/user/13943/" bx-tooltip-user-id="13943">Vitaliy</a> написал:<br />Почему?<br />=============<br />Таблица текущих торгов обновляется средами, т.е. раз в период.<br />графики обновляются по факту прихода сделки.<br />Следовательно графики всегда будут показывать более актуальную инфомрацию<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_hypZhR0A" href="/user/13943/" bx-tooltip-user-id="13943">Vitaliy</a> написал:<br />2) Чтобы один раз получить актуальные данные (при закрытых графиках) достаточно только <br />=============<br />Без подписки на колбек, CreateDataSource вернет только то что в данные момент есть в терминале. <br />Если в данный момент в терминале не актуальные данные (закрыли окна с графиками), то и от функции CreateDataSource Вы ничего внятного не добьетесь.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_O8EdGHXz" href="/user/13943/" bx-tooltip-user-id="13943">Vitaliy</a> написал:<br />после этого в любой момент работаю с последними данными в ds_sber? Все верно?<br />=============<br /><br />Чтобы получить актуальные данные, требуется подписаться на информацию с сервера, для этого нужно вызвать SetUpdateCallback или SetEmptyCallback<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_lK20E6Ft" href="/user/13943/" bx-tooltip-user-id="13943">Vitaliy</a> написал:<br />4) Какие будут последствия если при завершении скрипта не делать ds_sber:Close() <br />=============<br />ничего не будет, терминал сам закроет поток, если он не используется.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_zVisl24T" href="/user/13943/" bx-tooltip-user-id="13943">Vitaliy</a> написал:<br />5) Можно как-то определять для интервала, например М30, что свеча закрылась и началась новая свеча? <br />=============<br />Этому вопросу уже десятки лет.<br />Все просто, дайте определение термину "свеча закрылась" и Вы сами найдете ответ.<br />если <B>для Вас</B>, закрытие свечи происходит по времени, то проверяйте время.<br />если <B>для Вас</B>, закрытие свечи происходит по факту открытия новой свечи, значит проверяйте появление новой свечи<br />Ну или скомбинируйте оба варианта, как Вам нравится.<br />Само собой, если время еще не прошло, то узнать о том закрылась свеча или нет не представляется возможным, в будущее мы смотреть еще не научились.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_ns2V6wQA" href="/user/13943/" bx-tooltip-user-id="13943">Vitaliy</a> написал:<br />6) У меня в цикле 1сек обсчитываются 10-20 инструментов ( массив ), инструменты меняются, т.е. статичные ds не сделать. Как правильно организовать запрос данных (свечей) в таком случае ?<br /><br />=============<br />закрывайте старые ds и открывайте новые, не видим тут какой-либо проблемы. <br />
			<i>12.05.2020 10:38:13, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44720/topic5400/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44720/topic5400/</guid>
			<pubDate>Tue, 12 May 2020 10:38:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Прошу пояснений про получение цены</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44667/topic5400/">Прошу пояснений про получение цены</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			function main()<br />ds_sber, error_desc = CreateDataSource(&quot;TQBR&quot;,&quot;SBER&quot;, INTERVAL_M5);<br />ds_sber:SetEmptyCallback();<br />sleep(5000); --ждем пока данные прилетят<br />while 1 do<br />price_sber=ds_sber:C(ds:Size());<br />-- далее обработка цены<br />-- т.к. подписаны, то будем всегда иметь актуальный набор свечей?<br />sleep(1000);<br />end;<br />ds_sber:Close();<br />end; <br />
			<i>10.05.2020 23:14:06, Vitaliy.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44667/topic5400/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44667/topic5400/</guid>
			<pubDate>Sun, 10 May 2020 23:14:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Прошу пояснений про получение цены</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44666/topic5400/">Прошу пояснений про получение цены</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<p>Добрый день, прошу помочь с пониманием процесса получения цены.</p><p>1) Пробовал использовать getParamEx(class_code, sec_code, &quot;last&quot;).param_valueЧем не устроил: выдает цену с задержкой (разнообразной). Я вызываю его раз в секунду, цена на графике уже изменилась, а getParamEx возвращает старое значение. Если запустить на выходных, выдает старую цену игнорируя изменения цены в не торговой сессии. Т.е. на графике инструмента у меня 10,14, но getParamEx выдает 9,98, как было во время торгов. Почему?<br /><br /></p><p> </p><p>Стал разбираться с CreateDataSource. Почитал форум, возникли вопросы и хотелось бы ответов: правильно я понял или нет.</p><p>2) Чтобы один раз получить актуальные данные (при закрытых графиках) достаточно только </p>
====code====
<pre>ds_sber, error_desc = CreateDataSource("TQBR","SBER", INTERVAL_M5);</pre>
=============
<p>или это не правильно, на удачу?</p><p>3) Чтобы в ds_sber ВСЕГДА были актуальные данные, нужно ОДИН РАЗ, именно из main() надо вызвать CreateDataSource+ SetEmptyCallback<br /></p>
====code====
<pre>function main()ds_sber, error_desc = CreateDataSource("TQBR","SBER", INTERVAL_M5);ds_sber:SetEmptyCallback();sleep(5000); --ждем пока данные прилетятwhile IsRun doprice_sber=ds_sber:C(ds:Size());-- далее обработка цены-- т.к. подписаны, то будем всегда иметь актуальный набор свечей?sleep(1000);end;ds_sber:Close();end;</pre>
=============
<p></p><p>после этого в любой момент работаю с последними данными в ds_sber? Все верно?</p><p> </p><p>4) Какие будут последствия если при завершении скрипта не делать ds_sber:Close()</p><p> </p><p>5) Можно как-то определять для интервала, например М30, что свеча закрылась и началась новая свеча?</p><p> </p><p>6) У меня в цикле 1сек обсчитываются 10-20 инструментов ( массив ), инструменты меняются, т.е. статичные ds не сделать. Как правильно организовать запрос данных (свечей) в таком случае ?</p> <br />
			<i>10.05.2020 23:05:53, Vitaliy.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44666/topic5400/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44666/topic5400/</guid>
			<pubDate>Sun, 10 May 2020 23:05:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
