<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Ошибки в функции getQuoteLevel2!!!]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Ошибки в функции getQuoteLevel2!!! форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 17:37:21 +0300</pubDate>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32023/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_46YKf5f6" href="/user/1717/" bx-tooltip-user-id="1717">Kolossi</a> написал:<br /><br />====quote====<br /> Egor Zaytsev &nbsp; написал:<br />Добрый день.<br /><br /><br />Lua не работает с таблицами QUIK, а берет информацию напрямую с сервера брокера.<br />Поэтому в этом месте рекомендуем обратиться к брокеру и если брокер затруднится в разборе проблемы,<br />то инициируйте обращение к нам. Будем разбираться.<br />=============<br />Начинается обычный пинг-понг и пользователь в качестве мячика :( <br />--<br />По вопросу написания и использования скриптов, прошу обращаться в техническую поддержку разработчика ПО Quik: &nbsp;<noindex><a href="http://arqatech.com/ru/support/" target="_blank" rel="nofollow">http://arqatech.com/ru/support/</a></noindex> <br /><br />С уважением,<br /><br />Владислав Сидельников<br />Эксперт<br />Департамент брокерского обслуживания<br />Банк ВТБ (ПАО)<br />--<br />=============<br />Ответили Вам почтой. <br />
			<i>02.07.2018 11:59:22, Egor Zaytsev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32023/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32023/topic685/</guid>
			<pubDate>Mon, 02 Jul 2018 11:59:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32022/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_jkGOWyvK" href="/user/19/" bx-tooltip-user-id="19">Egor Zaytsev</a> написал:<br />Добрый день.<br /><br /><br />Lua не работает с таблицами QUIK, а берет информацию напрямую с сервера брокера.<br />Поэтому в этом месте рекомендуем обратиться к брокеру и если брокер затруднится в разборе проблемы,<br />то инициируйте обращение к нам. Будем разбираться.<br />=============<br />Начинается обычный пинг-понг и пользователь в качестве мячика :( <br />--<br />По вопросу написания и использования скриптов, прошу обращаться в техническую поддержку разработчика ПО Quik: <noindex><a href="http://arqatech.com/ru/support/" target="_blank" rel="nofollow">http://arqatech.com/ru/support/</a></noindex><br /><br />С уважением,<br /><br />Владислав Сидельников<br />Эксперт<br />Департамент брокерского обслуживания<br />Банк ВТБ (ПАО)<br />-- <br />
			<i>02.07.2018 10:09:12, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32022/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32022/topic685/</guid>
			<pubDate>Mon, 02 Jul 2018 10:09:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32019/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день.<br /><br /><br />Lua не работает с таблицами QUIK, а берет информацию напрямую с сервера брокера.<br />Поэтому в этом месте рекомендуем обратиться к брокеру и если брокер затруднится в разборе проблемы,<br />то инициируйте обращение к нам. Будем разбираться. <br />
			<i>02.07.2018 06:29:51, Egor Zaytsev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32019/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32019/topic685/</guid>
			<pubDate>Mon, 02 Jul 2018 06:29:51 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32013/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день !<br /><br />Вчера (пятница 29/06/18) произошел странный сбой, который обошелся мне в приличную сумму.<br />С утра перестал отвечать основной сервер брокера ВТБ и все переключились на Сервер2.<br />Ближе к обеду я обратил внимание на некорректное выставление заявок скриптом QUIK.<br />После разбирательства выяснилось, что функция getQuoteLevel2() возвращает данные, которые не соответствуют содержимому стакана.<br /><br />Конкретный трейс - в открытом стакане Алросы нижний оффер 98.64, верхний бид 98.62. Картинка статичная, сделок нет.<br /><br />Запрос<br />...<br />local gql=getQuoteLevel2(x_classcode,x_seccode)<br />return gql.bid&#91;1&#93;.price<br />...<br />возвращает значения: &nbsp;98.64, 98.68, 98.42...<br /><br />В общем вместо первого бида в таблице возвращалось что-попало.<br /><br />В связи с этим хотел узнать , берет ли функция данные из открытого в квике стакана или это дерьмо лезет напрямую с сервера брокера ?<br /><br /> &nbsp;Если будут предложения, как в такую ситуацию больше не попадать, заранее спасибо! <br />
			<i>30.06.2018 09:03:38, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32013/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32013/topic685/</guid>
			<pubDate>Sat, 30 Jun 2018 09:03:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message9360/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_WsjrigZg" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> пишет: <br /><br />====quote====<br /> DronGO пишет: <br /><br />====quote====<br /> Sergey Gorokhov пишет: <br />Здравствуйте,<br />Просьба привести пример скрипта считывающего bid_count и offer_count<br />Также сообщите версию терминала и уточните это боевой доступ или тестовый?<br /><br />=============<br />Добрый день Сергей. Версия терминала 6.17.1.17Сервер реальных торгов. Скрипт небольшой написал, в нем нужно только два параметра установить, в соответствии с Вашей глубиной стакана.Скрипт выводит информацию на консоль программы DebugView для визуального контроля. А так же сохраняет в файл log_errors_in_quotes.txt<br /><br />=============<br />Здравствуйте!<br /> <br /> Информация получена, проблема изучается. Постараемся в ближайшее время дать ответ.<br /><br />=============<br />Добрый день. <br /> <br /> Обнаруженная Вами ошибка исправлена в серверном ПО QUIK версии 5.0. <br />
			<i>12.10.2015 06:52:27, Alexey Ivannikov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message9360/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message9360/topic685/</guid>
			<pubDate>Mon, 12 Oct 2015 06:52:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message7031/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_AeD383KU" href="/user/21/" bx-tooltip-user-id="21">Michael Bulychev</a> пишет: <br /><br />====quote====<br /> Николай Камынин пишет: <br />Если надо работать с очередями с 5000 элементов, <br />то надо просто написать спец модуль такой очереди для луа на СИ.<br />-------------------------------------------------<br />Я делаю именно так для обработки больших массивов, очередей, списков, пулов, ну и т д<br />---------------------------------<br />Полагаю, что если чел смело берется за потоки с очередями в 5000 элементов, <br />то создать спец модуль очереди для него - раз плюнуть.<br /><br />=============<br />Мне кажется что различные очереди в скрипте как раз проще делать на Lua.<br /><br />=============<br />Если важно ПРОЩЕ, то, безусловно, Луа,<br /> но если важно БЫСТРО то , безусловно, СИ<br />Но для очередей в 5000 элементов - важно быстро, так как иначе - нет смысла . <br />
			<i>15.07.2015 08:13:29, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message7031/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message7031/topic685/</guid>
			<pubDate>Wed, 15 Jul 2015 08:13:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message7025/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_pSoWPa3v" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> пишет: <br />Если надо работать с очередями с 5000 элементов, <br />то надо просто написать спец модуль такой очереди для луа на СИ.<br />-------------------------------------------------<br />Я делаю именно так для обработки больших массивов, очередей, списков, пулов, ну и т д<br />---------------------------------<br />Полагаю, что если чел смело берется за потоки с очередями в 5000 элементов, <br />то создать спец модуль очереди для него - раз плюнуть.<br /><br />=============<br />Мне кажется что различные очереди в скрипте как раз проще делать на Lua. <br />
			<i>14.07.2015 18:19:19, Michael Bulychev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message7025/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message7025/topic685/</guid>
			<pubDate>Tue, 14 Jul 2015 18:19:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message7024/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_GLW3j5V8" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> пишет: <br />Michael Bulychev , тогда тем более не понятно, почему за основу потокобезопасных функций вы взяли table.insert/table.remove, а не свой вариант.<br /><br />=============<br />Потому что именно их и просили. <br />
			<i>14.07.2015 18:16:20, Michael Bulychev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message7024/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message7024/topic685/</guid>
			<pubDate>Tue, 14 Jul 2015 18:16:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message7023/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Реже-чаще... Предлагаю сделать запись изменений стакана в QUIK и ITInvest в одно и то же время и сравнить. <br />
			<i>14.07.2015 16:34:39, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message7023/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message7023/topic685/</guid>
			<pubDate>Tue, 14 Jul 2015 16:34:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message7022/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Не &nbsp;ITInvest реже, а Квик чаще, дергая OnQoute не по делу, когда стакан в процессе изменений. <br />И пока что не видно способа надежно детектировать такие состояния стакана. <br />
			<i>14.07.2015 16:06:50, user.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message7022/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message7022/topic685/</guid>
			<pubDate>Tue, 14 Jul 2015 16:06:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message7021/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_fh6QSoUm" href="/user/1069/" bx-tooltip-user-id="1069">user</a> пишет: <br />количество событий OnQuote в Квике всегда заметно больше, чем в itinvest (за тот же интервал времени, при одинаковой глубине стакана)<br /><br />=============<br />Думаю, это говорит отнюдь не в пользу ITInvest. Скорей всего, это значит, что они передают изменения стакана реже, чем это делает Quik. <br />
			<i>14.07.2015 14:14:37, Дмитрий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message7021/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message7021/topic685/</guid>
			<pubDate>Tue, 14 Jul 2015 14:14:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message7001/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			стакан - это отображение очереди заявок.<br />очередь заявок формирует сервер биржи.<br />Он же производит исполнение сделок.<br />Так вот, когда приходит заявка на покупку по цене выше лучшей цены продажи, <br />то она в стакане должна встать выше лучшей цены продажи.<br />Но она туда не ставится а производится совершение сделок и удаление из очереди заявок на продажу которые удовлетворяют данную заявку на покупку.<br />Вот эти состояния очереди и не передает брокерам сервер биржи. т е такие не уравновешенные стаканы клиенты брокеров не видят.<br />-----------------------------------<br />Как правило, сервер брокера транслирует клиентам не стакан а лишь изменения в стакане (про квик не знаю, но так делает транзак).<br />Т е в терминале клиента тоже возникают момент удаления, перемещения и замещения записей.<br />Если состояние изменяющегося На терминале стакана доступно клиенту, то будем видеть переменное число записей в стакане.<br />Таким образом, те состояния стакана, которые видим в терминале - могут содержать переходные состояния с переменным числом элементов. <br />Такой вид стакана - это не реальное состояние очереди, а техническое состояние таблицы на стороне терминала. <br />Т е на сленге можно назвать это мусором. <br />Показ такого мусора никто не регламентирует. <br />
			<i>14.07.2015 06:57:35, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message7001/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message7001/topic685/</guid>
			<pubDate>Tue, 14 Jul 2015 06:57:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6997/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_n9LVJ72o" href="/user/55/" bx-tooltip-user-id="55">Alexandr Shumilin</a> пишет: <br />В разных клиентских терминалах, например Quik и прямой терминал биржи - стаканы должны и будут совпадать.<br /><br />=============<br />У меня есть записи стаканов от itinvest. Там не наблюдается такого, чтобы bid_count или offer_count стали в какой-то момент больше номинала ( по 50, в каждую сторону). Еще, замечено, что количество событий OnQuote в Квике всегда заметно больше, чем в itinvest (за тот же интервал времени, при одинаковой глубине стакана). <br />
			<i>14.07.2015 00:13:34, user.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6997/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6997/topic685/</guid>
			<pubDate>Tue, 14 Jul 2015 00:13:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6996/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_KvCb7f0u" href="/user/55/" bx-tooltip-user-id="55">Alexandr Shumilin</a> пишет: <br />Сервер Quik получает стаканы с биржи и отображает их в терминале ровно в том виде, в котором они транслируются.<br />В разных клиентских терминалах, например Quik и прямой терминал биржи - стаканы должны и будут совпадать.<br /><br />=============<br />А почему тогда у разных брокеров или на разных серверах одного брокера стаканы разной глубины?<br />Сервер Quik просто удаляет "лишние" строки (полученные с биржи) перед отправкой на терминал клиента? Или они приходят с биржи разной глубины? <br />
			<i>13.07.2015 23:03:42, Дмитрий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6996/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6996/topic685/</guid>
			<pubDate>Mon, 13 Jul 2015 23:03:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6994/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_1FoHM3lC" href="/user/55/" bx-tooltip-user-id="55">Alexandr Shumilin</a> пишет: <br />Сервер Quik получает стаканы с биржи и отображает их в терминалеровно в том виде, в котором они транслируются, без "очередей" и "рождения стакана на серверной стороне брокера". В разных клиентских терминалах, например Quik и прямой терминал биржи - стаканы должны и будут совпадать.<br /><br />=============<br />Спасибо. Прояснили :) <br />
			<i>13.07.2015 20:53:21, DronGO.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6994/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6994/topic685/</guid>
			<pubDate>Mon, 13 Jul 2015 20:53:21 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6993/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день!<br /><br />Сервер Quik получает стаканы с биржи и отображает их в терминале &nbsp;ровно в том виде, в котором они транслируются, без "очередей" и "рождения стакана на серверной стороне брокера". В разных клиентских терминалах, например Quik и прямой терминал биржи - стаканы должны и будут совпадать. <br />
			<i>13.07.2015 20:47:54, Alexandr Shumilin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6993/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6993/topic685/</guid>
			<pubDate>Mon, 13 Jul 2015 20:47:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6992/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_RX712SUw" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> пишет: <br />Предположу, что не совсем так. <br />Просто сервер биржи не транслирует стакана, пока не урегулирует очередь.<br /><br />=============<br />Предположу, что сервер биржи вообще <B>ничего не знает</B> о стакане. Стакана ещё нет!!! Биржа передаёт поток транзакций(новые заявки, отменённые заявки, переставленные заявки, частично исполненные) не более. А этот поток уже принимает серверная часть брокера, там то и рождается стакан!!! &nbsp;Причём, мой брокер на одном сервере создаёт стакан с глубиной <B>10</B>, а на другом сервере с глубиной<B> 20, </B>из одного и того же потока два разных стакана. <br />
			<i>13.07.2015 20:29:57, DronGO.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6992/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6992/topic685/</guid>
			<pubDate>Mon, 13 Jul 2015 20:29:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6988/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_pBi45HvJ" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> пишет: <br />Просто сервер биржи не транслирует стакана, пока не урегулирует очередь.<br />Но обновление очереди на сервере QUIK или в терминале может проходить без запрета и мы видим <B>промежуточное состояние стакана</B>.<br /><br />=============<br />"Без запрета" чего? Что такое "промежуточное состояние стакана". Откуда оно появилось, если первоисточником для QUIK является биржа? <br />
			<i>13.07.2015 18:01:09, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6988/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6988/topic685/</guid>
			<pubDate>Mon, 13 Jul 2015 18:01:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6984/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_m1B8K4Ch" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> пишет: <br /><br />====quote====<br /> user пишет: <br />Ту информацию, что ближе к спреду надо бы обновлять более приоритетно.<br /><br />=============<br />При чём тут приоритетное обновление?!<br />Есть правила торгов, согласно которым исполняются ордера. Согласно этим правилам, ордера всегда исполняются последовательно (пусть даже по несколько штук в единицу времени) в порядке очереди.<br />Исполнение ордеров приводит к изменению стакана таким же образом в строгой последовательности.<br />Если соблюдать эту последовательность изменений при отображении "стакана", то никогда даже при частичном обновлении "ценовых уровней" не возникнет пересечения котировок. Отсюда вытекает вывод, что в QUIK эта последовательность изменений строк в "стаканах" нарушается.<br /><br />=============<br />Предположу, что не совсем так. <br />Просто сервер биржи не транслирует стакана, пока не урегулирует очередь.<br />Но обновление очереди на сервере QUIK или в терминале может проходить без запрета и мы видим промежуточное состояние стакана.<br />Но это состояние уже прошло, как и много других до того как мы это увидели.<br />Кроме того, право разработчика сделать так как он считает нужным, поскольку нигде не регламентируется работа КВИК с очередями. <br />
			<i>13.07.2015 17:33:47, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6984/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6984/topic685/</guid>
			<pubDate>Mon, 13 Jul 2015 17:33:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6952/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_DNuvJE5M" href="/user/1069/" bx-tooltip-user-id="1069">user</a> пишет: <br />Ту информацию, что ближе к спреду надо бы обновлять более приоритетно.<br /><br />=============<br />При чём тут приоритетное обновление?!<br />Есть правила торгов, согласно которым исполняются ордера. Согласно этим правилам, ордера <B>всегда исполняются последовательно</B> (пусть даже по несколько штук в единицу времени) в порядке очереди.<br />Исполнение ордеров приводит к изменению стакана таким же образом в строгой последовательности.<br />Если соблюдать эту последовательность изменений при отображении "стакана", то никогда даже при частичном обновлении "ценовых уровней" не возникнет пересечения котировок. Отсюда вытекает вывод, что в QUIK эта последовательность изменений строк в "стаканах" нарушается. <br />
			<i>13.07.2015 11:32:58, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6952/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6952/topic685/</guid>
			<pubDate>Mon, 13 Jul 2015 11:32:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6948/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Сделал распечатку стаканов в моменты времени, когда bid_count&gt;50 || offer_count&gt;50.<br /><noindex><a href="http://pastebin.com/WfF4FkDg" target="_blank" rel="nofollow">http://pastebin.com/WfF4FkDg</a></noindex><br />что там:<br />-штамп времени<br />-три стакана в ряд (до проблемного момента, сам момент и следующий за ним)<br />для каждого стакана в скобках указано bid_count и offer_count, bids - слева от цены, asks - справа. Инструмент - RIZ2, цена - &nbsp;в шагах.<br />Что интересного подметил. На примере последней тройки стаканов. Появляется "лишний" 51-ый bid на цене 13866 (средний стакан). Зачем? Ответ - в следующем стакане(справа) исчезает bid на цене 13916, снова все нормально. <br />Вывод: на момент времени среднего стакана уже было известно, что bid по 13916 исчез, но узнаем мы об этом с задержкой, ничем не обоснованной. Ту информацию, что ближе к спреду надо бы обновлять более приоритетно. <br />
			<i>13.07.2015 10:58:15, user.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6948/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6948/topic685/</guid>
			<pubDate>Mon, 13 Jul 2015 10:58:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6884/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_601Rccon" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> пишет: <br />Если надо работать с очередями с 5000 элементов, <br />то надо просто написать спец модуль такой очереди для луа на СИ.<br />-------------------------------------------------<br />Я делаю именно так для обработки больших массивов, очередей, списков, пулов, ну и т д<br />---------------------------------<br />Полагаю, что если чел смело берется за потоки с очередями в 5000 элементов, <br />то создать спец модуль очереди для него - раз плюнуть.<br /><br />=============<br />Тоже пришел к такому выводу. Минимум на луа, остальное всё во внешней dll. <br />
			<i>10.07.2015 14:39:20, DronGO.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6884/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6884/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 14:39:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6883/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_i3idU9V1" href="/user/21/" bx-tooltip-user-id="21">Michael Bulychev</a>, тогда тем более не понятно, почему за основу потокобезопасных функций вы взяли table.insert/table.remove, а не свой вариант. <br />
			<i>10.07.2015 14:38:43, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6883/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6883/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 14:38:43 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6881/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Если надо работать с очередями с 5000 элементов, <br />то надо просто написать спец модуль такой очереди для луа на СИ.<br />-------------------------------------------------<br />Я делаю именно так для обработки больших массивов, очередей, списков, пулов, ну и т д<br />---------------------------------<br />Полагаю, что если чел смело берется за потоки с очередями в 5000 элементов, <br />то создать спец модуль очереди для него - раз плюнуть.<br /> &nbsp; <br />
			<i>10.07.2015 14:22:43, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6881/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6881/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 14:22:43 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6878/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_hPOPM1cO" href="/user/21/" bx-tooltip-user-id="21">Michael Bulychev</a> пишет: <br />Еще раз: дело не в нашей реализации, а в том как устроены оригинальные функции.<br />При удалении первого элемента из массива, остальные элементы сдвигаются на индекс -1. Это значит что чем больше у вас исходная таблица, тем больше нужно времени на удаление первого элемента. Вот простой тест:<br /><br />=============<br />Хороший пример. Думаю будет полезно для всех, кто будет разбираться в этой теме в будущем. Пожалуйста добавьте в документацию, что при использовании Ваших потокобезопастых функции есть ограничения на размер очереди(к примеру не более 5000 элементов), а также добавьте, что для реализации потокобезопасного накопительного буфера FIFO, целесообразно использовать другую конструкцию. Пример в документации, тоже желательно иметь, а то через год форум снова переедет и важные примеры потеряются. Спасибо. <br />
			<i>10.07.2015 13:37:23, DronGO.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6878/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6878/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 13:37:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6870/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Пример показывает, что insert/remove не оптимальное решение. Для подобных задач есть более оптимальные алгоритмы, одних из них был приведен на нашем форуме. <br />
			<i>10.07.2015 10:11:00, Michael Bulychev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6870/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6870/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 10:11:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6869/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_tI1WPLr8" href="/user/956/" bx-tooltip-user-id="956">DronGO</a> пишет: <br />Сравнил количество сохранённый сделок/в секунду первым способом и вторым.<br /><br />=============<br />Видимо, идут накладные расходы на заморозку/разморозку параллельного потока. Кроме того, параллельный поток при использовании потокобезопасных функций просто простаивает.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_ZNTfWMdt" href="/user/21/" bx-tooltip-user-id="21">Michael Bulychev</a> пишет: <br />Вот простой тест:<br /><br />=============<br />Ваш тест показывает, что создание <B>большой</B> очереди в колбеке для её последующей обработки в main нецелесообразно, т.к. изымание элементов из большой очереди может занять больше времени, чем обработка колбеков сразу по факту их прихода. А в случае использования потокобезопасных функций в main основной поток терминала будет "заморожен", в результате мы не получим того, для чего собственно и использовали эту очередь: освобождение основного потока. <br />
			<i>10.07.2015 09:57:02, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6869/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6869/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 09:57:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6867/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_WehgNQ9K" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> пишет: <br />Самый быстрый способ удалить элемент таблицы - присвоить ему nil.<br /><br />=============<br />Забыли добавить: если удаление идёт с правого края. <br />
			<i>10.07.2015 08:48:10, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6867/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6867/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 08:48:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6861/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_90lrT613" href="/user/956/" bx-tooltip-user-id="956">DronGO</a> пишет: <br />Кстати table. s insert table. s remove, работают очень медленно, в сотни раз медленнее, чем lock-free системы. И в своей работе их использовать не стал.<br /><br />=============<br />Самый быстрый способ удалить элемент таблицы - присвоить ему nil. <br />
			<i>10.07.2015 07:15:55, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6861/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6861/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 07:15:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Ошибки в функции getQuoteLevel2!!!</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message6856/topic685/">Ошибки в функции getQuoteLevel2!!!</a></b> <i>Возвращаемый стакан котировок не всегда соответствует (нормальным) условиям...</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Еще раз: дело не в нашей реализации, а в том как устроены оригинальные функции.<br />При удалении первого элемента из массива, остальные элементы сдвигаются на индекс -1. Это значит что чем больше у вас исходная таблица, тем больше нужно времени на удаление первого элемента. Вот простой тест:<br />
====code====
<pre>local item = { 1, 2, 3, 4}
local _ins = table.insert
local _rem = table.remove

function remove_first(t)
&nbsp;&nbsp;&nbsp;return _rem(t, 1)
end

function prepare(t, item, size)
&nbsp;&nbsp;&nbsp;t={}
&nbsp;&nbsp;&nbsp;for i=1, size do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t&#91;i&#93; = item
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;return t
end

for s=500, 10000, 100 do
&nbsp;&nbsp;&nbsp;T = prepare(T, item, s)
&nbsp;&nbsp;&nbsp;_start = os.clock()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while remove_first(T) do&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;_end = os.clock()
&nbsp;&nbsp;&nbsp;print(string.format("%d&#92;t%.3f", s,&nbsp;&nbsp;(_end - _start)))
end
 </pre>
=============
Все это выполняется не в терминале, а в обычном lua.exe. Результаты для наглядности в картинке:<br /><table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td><img src="http://i.imgur.com/VtVhBTp.png" alt="Пользователь добавил изображение" border="0" /></td></tr></tbody></table>Видно, что зависимость времени обработки от размера массива далеко не линейная. <br />
			<i>10.07.2015 06:08:39, Michael Bulychev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message6856/topic685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message6856/topic685/</guid>
			<pubDate>Fri, 10 Jul 2015 06:08:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
