<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Подписка на стакан OnQuote в quik 9.7.1]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Подписка на стакан OnQuote в quik 9.7.1 форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 26 Apr 2026 22:03:45 +0300</pubDate>
		<item>
			<title>Подписка на стакан OnQuote в quik 9.7.1</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64653/topic7523/">Подписка на стакан OnQuote в quik 9.7.1</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Проблема в совокупности OnQuote и getQuoteLevel2<br />Если сделать так, то занимаемая память варьируется в р-не 50-100 кб<br /><br />
====code====
<pre>function main()
&nbsp;&nbsp;&nbsp;while true do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(10)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gQL()
&nbsp;&nbsp;&nbsp;end
end

function gQL()
&nbsp;&nbsp;&nbsp;local ql2 = getQuoteLevel2("SPBFUT", "SiU2")
end</pre>
=============
<br />В OnQuote в скрипте была запись в глобальные переменные лучших bid и offer из стакана, потом в main эти значения учитывались. На версиях 9.5, 9.4 потребляемая помять колебалась в р-не 200-300 кб. <br />
			<i>28.07.2022 20:53:51, Дмитрий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64653/topic7523/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64653/topic7523/</guid>
			<pubDate>Thu, 28 Jul 2022 20:53:51 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Подписка на стакан OnQuote в quik 9.7.1</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64646/topic7523/">Подписка на стакан OnQuote в quik 9.7.1</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ec5xD7WP" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />OnQuote - это и есть доступный колбек. Объявленная глобально такая функция будет вызываться на каждый чих в стакане.<br />Т.к. таких изменение очень, очень много, и на каждое изменение вызывается с, то память и забивается, т.к. <br />getQuoteLevel2 возвращает две таблицы, две строки. А это не так и мало. И делается это так часто, что сборщик мусора просто не успевает.<br /><br />Если Вам не нужны данные стакана в каждом срезе без пропусков, то в колбеке надо просто установить флаг, что есть новый стакан по инструменту, а в потоке main его прочитать.<br />=============<br />Пардон, невнятно выразился. Полагаю что проблема не в OnQuote, в этом легко убедится убрав из функции <span class="bx-font" style="font-size:;">getQuoteLevel2. <br /></span> <br />
			<i>28.07.2022 14:12:11, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64646/topic7523/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64646/topic7523/</guid>
			<pubDate>Thu, 28 Jul 2022 14:12:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Подписка на стакан OnQuote в quik 9.7.1</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64621/topic7523/">Подписка на стакан OnQuote в quik 9.7.1</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			OnQuote - это и есть доступный колбек. Объявленная глобально такая функция будет вызываться на каждый чих в стакане.<br />Т.к. таких изменение очень, очень много, и на каждое изменение вызывается getQuoteLevel2, то память и забивается, т.к. <br />getQuoteLevel2 возвращает две таблицы, две строки. А это не так и мало. И делается это так часто, что сборщик мусора просто не успевает.<br /><br />Если Вам не нужны данные стакана в каждом срезе без пропусков, то в колбеке надо просто установить флаг, что есть новый стакан по инструменту, а в потоке main его прочитать. <br />
			<i>28.07.2022 09:16:07, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64621/topic7523/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64621/topic7523/</guid>
			<pubDate>Thu, 28 Jul 2022 09:16:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Подписка на стакан OnQuote в quik 9.7.1</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64620/topic7523/">Подписка на стакан OnQuote в quik 9.7.1</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_T6eO07qM" href="/user/1717/" bx-tooltip-user-id="1717">Kolossi</a> написал:<br />getQuoteLevel2<br />=============<br />Не понятно, что значит забивает присутствием.<br />Поставьте вывод занятой памяти перед ней и после нее.<br />-------------------------<br />что колбек , что не колбек - на память не влияет. &nbsp; <br />
			<i>28.07.2022 09:10:25, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64620/topic7523/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64620/topic7523/</guid>
			<pubDate>Thu, 28 Jul 2022 09:10:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Подписка на стакан OnQuote в quik 9.7.1</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64617/topic7523/">Подписка на стакан OnQuote в quik 9.7.1</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Чисто из любопытства: функция забивает память без вызова только своим присутствием в коде?<br />Или в этой версии она стала функцией обратного вызова? <br />
			<i>28.07.2022 08:22:53, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64617/topic7523/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64617/topic7523/</guid>
			<pubDate>Thu, 28 Jul 2022 08:22:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Подписка на стакан OnQuote в quik 9.7.1</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64612/topic7523/">Подписка на стакан OnQuote в quik 9.7.1</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_i6tpGggd" href="/user/13527/" bx-tooltip-user-id="13527">Дмитрий</a> написал:<br />quik 9.7.1<br />простой код, за несколько минут занимаемая память разбухает до более 10 Мб, запускается в lua 5.4.1<br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; main ()
&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;&nbsp; true&nbsp;&nbsp; do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 1000 )
&nbsp;&nbsp;&nbsp;&nbsp;end 
 end 

 function&nbsp;&nbsp; OnQuote (class, sec)&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;((class&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp; "SPBFUT" )&nbsp;&nbsp;and&nbsp;&nbsp;(sec&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp; "SiU2" ))&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;ql2&nbsp;&nbsp;=&nbsp;&nbsp; getQuoteLevel2 (class, sec)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- что-то делаем 
&nbsp;&nbsp;&nbsp;&nbsp;end 
 end 

&nbsp;&nbsp;</pre>
=============
 <br />=============<br />попробуйте тоже на другой версии. возможно так задумано уже давно? <br />
			<i>28.07.2022 02:27:18, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64612/topic7523/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64612/topic7523/</guid>
			<pubDate>Thu, 28 Jul 2022 02:27:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Подписка на стакан OnQuote в quik 9.7.1</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message64609/topic7523/">Подписка на стакан OnQuote в quik 9.7.1</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			quik 9.7.1<br />простой код, за несколько минут занимаемая память разбухает до более 10 Мб, запускается в lua 5.4.1<br />
====code====
<pre>function main()
&nbsp;&nbsp;&nbsp;while true do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;end
end

function OnQuote(class, sec)&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;if ((class == "SPBFUT") and (sec == "SiU2")) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local ql2 = getQuoteLevel2(class, sec)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- что-то делаем
&nbsp;&nbsp;&nbsp;end
end

</pre>
============= <br />
			<i>27.07.2022 22:18:34, Дмитрий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message64609/topic7523/</link>
			<guid>http://forum.quik.ru/messages/forum10/message64609/topic7523/</guid>
			<pubDate>Wed, 27 Jul 2022 22:18:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
