<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Особенности OnQuote и getQuoteLevel2]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Особенности OnQuote и getQuoteLevel2 форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 24 Apr 2026 14:06:54 +0300</pubDate>
		<item>
			<title>Особенности OnQuote и getQuoteLevel2</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message15229/topic1502/">Особенности OnQuote и getQuoteLevel2</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_yRwx3QGM" href="/user/115/" bx-tooltip-user-id="115">_sk_</a>, &nbsp; &nbsp; &nbsp;Добрый день, <br /> &nbsp; &nbsp; <br /> &nbsp; &nbsp; Описаннная в данном инциденте проблема была устранена в версии 7.2.0 &nbsp; &nbsp; терминала QUIK.<br /> &nbsp; &nbsp; Рекомендуем Вам обновить версию программы.<br /> &nbsp; &nbsp; <br /> &nbsp; &nbsp; Приносим извинения за причиненные неудобства. <br />
			<i>12.04.2016 15:39:24, Zoya Skvorcova.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message15229/topic1502/</link>
			<guid>http://forum.quik.ru/messages/forum10/message15229/topic1502/</guid>
			<pubDate>Tue, 12 Apr 2016 15:39:24 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Особенности OnQuote и getQuoteLevel2</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13825/topic1502/">Особенности OnQuote и getQuoteLevel2</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_MMQPmVnH" href="/user/25/" bx-tooltip-user-id="25">Stanislav Tvorogov</a> написал:<br /><br />====quote====<br /> _sk_ &nbsp; написал:<br />1) Если в стакане отсутствуют биды/офера, то в таблице, которую возвращает getQuoteLevel2 поле bid/offer является не таблицей, как написано в документации, а пустыми строками. Наверное, надо либо исправить документацию, либо QLua.<br /><br />=============<br />Добрый день,<br /><br />Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.<br /><br />====quote====<br /> _sk_ &nbsp; написал:<br />2) В документации в разделе &quot;Функции для заказа стакана котировок&quot; опечатка в последнем пункте (должно быть IsSubscribed_Level_II_Quotes):<br />=============<br />Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.<br /><br /><br />=============<br />Добрый день.<br /> &nbsp; &nbsp; <br /> &nbsp; &nbsp; Документация будет исправлена в одной из ближайших версий программы. Приносим извинения за причиненные неудобства. <br />
			<i>10.03.2016 09:41:35, Alexey Ivannikov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13825/topic1502/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13825/topic1502/</guid>
			<pubDate>Thu, 10 Mar 2016 09:41:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Особенности OnQuote и getQuoteLevel2</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13780/topic1502/">Особенности OnQuote и getQuoteLevel2</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я провёл ещё один эксперимент на другом &quot;свежем&quot; инструменте, на стакан которого ещё не было подписок. Получается так, что при первом запуске скрипта приходит коллбэк OnQuote с первоначальным снапшотом стакана, а при повторных запусках скрипта уже нет, т.к. первый запуск скрипта сделал заказ данных по стакану.<br /><br />Выходит, что алгоритм получения первоначального снапшота и последующих обновлений таков:<br />1) вызвать getQuoteLevel2(), который может вернуть нормальный стакан (первоначальный снапшот), а может и пустой, т.к. данные не заказаны;<br />2) вызвать Subscribe_Level_II_Quotes(), чтобы заказать данные, на всякий случай;<br />3) реагировать на OnQuote(), который вернёт первоначальный снапшот, если данных не было, и последующие обновления в любом случае. <br />
			<i>09.03.2016 12:58:32, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13780/topic1502/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13780/topic1502/</guid>
			<pubDate>Wed, 09 Mar 2016 12:58:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Особенности OnQuote и getQuoteLevel2</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13778/topic1502/">Особенности OnQuote и getQuoteLevel2</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Письмо выслал. Код дублирую ниже.<br />
====code====
<pre>local myClassCode = "SPBOPT" -- код класса
local mySecCode = "RI100000BC6" -- какой-нибудь РЕДКО меняющийся в стакане опцион

-- Предполагаем, что 
-- 1) стакан по этому инструменту в терминале НЕ ОТКРЫТ
-- 2) Subscribe_Level_II_Quotes для этого инструмента не вызывался,
-- 3) известно (из другого терминала, например), что в стакане есть биды/офера

local interrupted = false

function OnQuote(classCode, secCode)
&nbsp;&nbsp;&nbsp;&nbsp;if classCode == myClassCode and secCode == mySecCode then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("OnQuote(" .. classCode .. ", " .. secCode .. ")", 1)
&nbsp;&nbsp;&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;interrupted = true
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;-- Что сейчас в стакане? Надо, чтобы ничего не было, т.к. данные ещё не заказаны.
&nbsp;&nbsp;&nbsp;&nbsp;local q = getQuoteLevel2(myClassCode, mySecCode)
&nbsp;&nbsp;&nbsp;&nbsp;message("QuoteLevel2: bid_count=" .. tonumber(q.bid_count) .. ", offer_count=" .. tonumber(q.offer_count), 1)
&nbsp;&nbsp;&nbsp;&nbsp;-- Запрашиваем данные
&nbsp;&nbsp;&nbsp;&nbsp;Subscribe_Level_II_Quotes(myClassCode, mySecCode)
&nbsp;&nbsp;&nbsp;&nbsp;-- По идее, если в стакане стоят какие-то котировки,
&nbsp;&nbsp;&nbsp;&nbsp;-- через некоторое НЕПРОДОЛЖИТЕЛЬНОЕ время придёт снапшот стакана в OnQuote
&nbsp;&nbsp;&nbsp;&nbsp;while not interrupted do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;&nbsp;end
end</pre>
============= <br />
			<i>09.03.2016 12:42:57, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13778/topic1502/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13778/topic1502/</guid>
			<pubDate>Wed, 09 Mar 2016 12:42:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Особенности OnQuote и getQuoteLevel2</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13776/topic1502/">Особенности OnQuote и getQuoteLevel2</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_2QXvZi02" href="/user/115/" bx-tooltip-user-id="115">_sk_</a> написал:<br />1) Если в стакане отсутствуют биды/офера, то в таблице, которую возвращает getQuoteLevel2 поле bid/offer является не таблицей, как написано в документации, а пустыми строками. Наверное, надо либо исправить документацию, либо QLua.<br /><br />=============<br />Добрый день,<br /><br />Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_yUeNPOXl" href="/user/115/" bx-tooltip-user-id="115">_sk_</a> написал:<br />2) В документации в разделе &quot;Функции для заказа стакана котировок&quot; опечатка в последнем пункте (должно быть IsSubscribed_Level_II_Quotes):<br />=============<br />Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_lkvB09l1" href="/user/115/" bx-tooltip-user-id="115">_sk_</a> написал:<br />3) Допустим, что я заказываю получение стакана по какому-нибудь малоликвидному опциону с помощью Subscribe. Как понять, что уже можно получать данные с помощью функции getQuoteLevel2? Эксперименты показали, что первое событие OnQuote придёт только после изменения стакана, а мне нужен и первый снапшот, как только данные стали доступными. Как понять: стакан пуст или ещё не пришли данные с сервера? Можно, конечно, долбиться раз в N секунд командой getQuoteLevel2 если стакан пуст, но как-то это неправильно выглядит.<br /><br />=============<br />Данную задачу как раз должен решать вызов функции OnQuote, которая вызывается терминалом QUIK при получении изменения стакана котировок (с первичными значениями). Если данная функция по какой-либо причине не получает первое значение котировок, просьба направить нам запрос на адрес: <noindex><a href="mailto:quiksupport@arqatech.com" target="_blank" rel="nofollow">quiksupport@arqatech.com</a></noindex> прикрепив используемый Вами код и указав ссылку на данную ветку форума. <br />
			<i>09.03.2016 12:19:56, Stanislav Tvorogov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13776/topic1502/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13776/topic1502/</guid>
			<pubDate>Wed, 09 Mar 2016 12:19:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Особенности OnQuote и getQuoteLevel2</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message13752/topic1502/">Особенности OnQuote и getQuoteLevel2</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			1) Если в стакане отсутствуют биды/офера, то в таблице, которую возвращает getQuoteLevel2 поле bid/offer является не таблицей, как написано в документации, а пустыми строками. Наверное, надо либо исправить документацию, либо QLua.<br /><br />2) В документации в разделе &quot;Функции для заказа стакана котировок&quot; опечатка в последнем пункте (должно быть IsSubscribed_Level_II_Quotes):<br />====quote====<br /><br /><ul><li><noindex><a href="http://ch15_1.htm" target="_blank" rel="nofollow">Subscribe_Level_II_Quotes</a></noindex> - заказывает на сервер &nbsp;получение стакана по указанному классу и бумаге.<br /><li><noindex><a href="http://ch15_2.htm" target="_blank" rel="nofollow">Unsubscribe_Level_II_Quotes</a></noindex> - отменяет заказ на &nbsp;получение с сервера стакана по указанному классу и бумаге.<br /><li><noindex><a href="http://ch15_3.htm" target="_blank" rel="nofollow">Unsubscribe_Level_II_Quotes</a></noindex> - позволяет узнать, &nbsp;заказан ли с сервера стакан по указанному классу и бумаге.<br /></ul><br />=============<br />3) Допустим, что я заказываю получение стакана по какому-нибудь малоликвидному опциону с помощью Subscribe. Как понять, что уже можно получать данные с помощью функции getQuoteLevel2? Эксперименты показали, что первое событие OnQuote придёт только после изменения стакана, а мне нужен и первый снапшот, как только данные стали доступными. Как понять: стакан пуст или ещё не пришли данные с сервера? Можно, конечно, долбиться раз в N секунд командой getQuoteLevel2 если стакан пуст, но как-то это неправильно выглядит.<br /><br />Просьба к разработчикам прокомментировать написанное и принять меры, если это будет признано необходимым. <br />
			<i>09.03.2016 06:46:55, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message13752/topic1502/</link>
			<guid>http://forum.quik.ru/messages/forum10/message13752/topic1502/</guid>
			<pubDate>Wed, 09 Mar 2016 06:46:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
