<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Запуск скрипта из примера подвешивает терминал Quik]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Запуск скрипта из примера подвешивает терминал Quik форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 09 May 2026 04:21:40 +0300</pubDate>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message65433/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_EO8xJ0wa" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> В примере уже есть sleep на 3 секунды<br />куда еще и зачем?<br />=============<br />До тех пор пока #MAIN_QUEUE не станет отличной от нуля нет там никакого слипа <br />
			<i>07.09.2022 19:03:34, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message65433/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message65433/topic7303/</guid>
			<pubDate>Wed, 07 Sep 2022 19:03:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message65400/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Ms4XgXZ4" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />Если в основном цикле &nbsp;while is_run do end &nbsp;нет слипа, то он выполняется бесконечно и не прерывается на вызов колбеков. Поэтому счётчик #MAIN_QUEUE не увеличивается, и код даже не заходит в ветку &nbsp;if #MAIN_QUEUE &gt; 0 then<br />Чтобы колбеки вызывались, нужно добавить в цикл sleep или любую другую C-функцию.<br />=============<br /><br />Добавил seep в main -- не помогло. <br />
			<i>06.09.2022 20:03:45, Konstantin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message65400/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message65400/topic7303/</guid>
			<pubDate>Tue, 06 Sep 2022 20:03:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63154/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_qrU1lK2O" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Например, зачем в очередь записывать множество изменений цены инструмента , полученные onParam?<br />Если main &nbsp;не успело обработать 999 изменений из 1000, то 999 устарели и важно лишь последнее.<br />=============<br />Сам QUIK по такому же принципу работает: если в какой-то момент интерфейс подвиснет на некоторое время, то после оживления покажет вам все изменения цены за то время, пока QUIK был в ауте.<br /><br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_V2j95oSU" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />При этом в функции &nbsp; ProcessingCallbakc есть sleep(3000) т е после обработки каждой записи спим 3 секунды<br />Выше я привел данные по скорости работы колшбеков<br />примерно 3 мкс<br />за время сна 3 секунды в таблицу которую орабатывает main успеет записаться 1000 строк из колбеков<br />Поэтому и зависает<br />=============<br />Мимо.<br />Функция ProcessingCallbakc даже не вызывается, потому что в очередь ничего не записывается.<br /><br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_bwfa3S8I" href="/user/15597/" bx-tooltip-user-id="15597">Konstantin</a> написал:<br />в чем причина<br />=============<br />Если в основном цикле <B>while is_run do end</B> нет слипа, то он выполняется бесконечно и не прерывается на вызов колбеков. Поэтому счётчик #MAIN_QUEUE не увеличивается, и код даже не заходит в ветку <B>if #MAIN_QUEUE &gt; 0 then</B><br />Чтобы колбеки вызывались, нужно добавить в цикл sleep или любую другую C-функцию. <br />
			<i>03.05.2022 14:42:56, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63154/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63154/topic7303/</guid>
			<pubDate>Tue, 03 May 2022 14:42:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63141/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_8pIrKVDg" href="/user/15597/" bx-tooltip-user-id="15597">Konstantin</a> написал:<br /><br />====quote====<br /> &nbsp;<br />=============<br /> Да, спасибо, теперь не виснет.<br />=============<br />только в чем причина (разница кода не велика) не понятно <br />
			<i>02.05.2022 15:26:56, Konstantin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63141/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63141/topic7303/</guid>
			<pubDate>Mon, 02 May 2022 15:26:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63140/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_usGyv4Sb" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />поправил<br />работает быстро 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; main ()
&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;&nbsp;is_run&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while&nbsp;&nbsp; # MAIN_QUEUE&nbsp;&nbsp;&#62;&nbsp;&nbsp; 0&nbsp;&nbsp; do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessingCallbakc(MAIN_QUEUE&#91; 1 &#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.sremove (MAIN_QUEUE,&nbsp;&nbsp;1 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 100 )
&nbsp;&nbsp;&nbsp;&nbsp;end 
 end 

 function&nbsp;&nbsp; ProcessingCallbakc (value)
&nbsp;&nbsp;&nbsp;&nbsp;message ( string.format ( "Обработка события %s начата" , value.callback))
&nbsp;&nbsp;&nbsp;&nbsp;message ( string.format ( "Обработка события %s завершена" , value.callback))
 end 
&nbsp;&nbsp;</pre>
=============
 <br />=============<br />Да, спасибо, теперь не виснет. <br />
			<i>02.05.2022 15:21:51, Konstantin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63140/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63140/topic7303/</guid>
			<pubDate>Mon, 02 May 2022 15:21:51 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63104/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			поправил<br />работает быстро
====code====
<pre>function main()
&nbsp;&nbsp;&nbsp;while is_run do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while #MAIN_QUEUE &#62; 0 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessingCallbakc(MAIN_QUEUE&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.sremove(MAIN_QUEUE, 1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;end
end

function ProcessingCallbakc(value)
&nbsp;&nbsp;&nbsp;message(string.format("Обработка события %s начата", value.callback))
&nbsp;&nbsp;&nbsp;message(string.format("Обработка события %s завершена", value.callback))
end
</pre>
============= <br />
			<i>29.04.2022 13:01:36, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63104/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63104/topic7303/</guid>
			<pubDate>Fri, 29 Apr 2022 13:01:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63103/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			можно сделать main &nbsp;так:
====code====
<pre>&nbsp;&nbsp;
function main()
&nbsp;&nbsp;&nbsp;while is_run do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while #MAIN_QUEUE &#62; 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProcessingCallbakc(MAIN_QUEUE&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.sremove(MAIN_QUEUE, 1)&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;end
end

function ProcessingCallbakc(value)
&nbsp;&nbsp;&nbsp;message(string.format("Обработка события %s начата", value.callback))
&nbsp;&nbsp;&nbsp;message(string.format("Обработка события %s завершена", value.callback))
end&nbsp;&nbsp;&nbsp;&nbsp;</pre>
============= <br />
			<i>29.04.2022 12:50:48, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63103/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63103/topic7303/</guid>
			<pubDate>Fri, 29 Apr 2022 12:50:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63099/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В этом примере куча алгоритмических и смысловых ошибок и заблуждений.<br />----------------------<br />Например, зачем в очередь записывать множество изменений цены инструмента , полученные onParam?<br />Если main &nbsp;не успело обработать 999 изменений из 1000, то 999 устарели и важно лишь последнее. &nbsp; <br />
			<i>29.04.2022 12:11:42, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63099/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63099/topic7303/</guid>
			<pubDate>Fri, 29 Apr 2022 12:11:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63098/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В этом примере куда алгоритмических и смысловых ошибок и заблуждений.<br />----------------------<br />Например, зачем в очередь записывать множество изменений цены инструмента , полученные onParam?<br />Если main &nbsp;не успело обработать 999 изменений из 1000, то 999 устарели и важно лишь последнее. &nbsp; <br />
			<i>29.04.2022 12:11:17, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63098/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63098/topic7303/</guid>
			<pubDate>Fri, 29 Apr 2022 12:11:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63097/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В этом примере куда алгоритмических и смысловых ошибок и заблуждений.<br />----------------------<br />Например, зачем в очередь записывать множество изменений цены инструмента , полученные onParam?<br />Если main &nbsp; <br />
			<i>29.04.2022 12:10:09, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63097/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63097/topic7303/</guid>
			<pubDate>Fri, 29 Apr 2022 12:10:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63096/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В этом примере куда алгоритмических и смысловых ошибок и заблуждений.<br />----------------------<br />Например, зачем в очередь записывать множество изменений цены инструмента , полученные onParam?<br />Если main &nbsp; <br />
			<i>29.04.2022 12:10:09, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63096/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63096/topic7303/</guid>
			<pubDate>Fri, 29 Apr 2022 12:10:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63095/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_JGagCmUM" href="/user/15597/" bx-tooltip-user-id="15597">Konstantin</a> написал:<br />Вот &nbsp;<noindex><a href="https://drive.google.com/file/d/1-ueG4C2JD3G5TzBQHChdamQ3R2Nf6XtB/view?usp=sharing" target="_blank" rel="nofollow">этот пример</a></noindex> &nbsp;из PDF &quot;Использование Lua в Рабочем месте Quik&quot; (пункт 2 &quot;Взаимодействие потоков Lua скрипта&quot;) вешает терминал.<br />Что я делаю не так<br />=============<br />поясню в чем проблема.<br />В данном примере все колбеки записывают свою информацию в таблицу.<br />Функция main обрабатывает первую &nbsp;запись этой таблицы в функции &nbsp;ProcessingCallbakc<br />потом удаляет эту запись и обрабатывает следующую<br />При этом в функции &nbsp; ProcessingCallbakc есть sleep(3000) т е после обработки каждой записи спим 3 секунды<br />Выше я привел данные по скорости работы колшбеков<br />примерно 3 мкс<br />за время сна 3 секунды в таблицу которую орабатывает main успеет записаться 1000 строк из колбеков<br />Поэтому и зависает<br />------------------- &nbsp;<br />Это очень плохой пример.<br />в нем не только плохо сделана работа с колбеками <br />но и используется удаление строк ирз таблицы что вызывает сдвиг всех строк - это очень медленно так как у Вас в этой таблице уже строк 1000<br />--------------------<br />Короче это пример как нельзя писать скрипт.<br />Какой-то дебил &nbsp;написал этот примаер. <br />
			<i>29.04.2022 12:03:01, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63095/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63095/topic7303/</guid>
			<pubDate>Fri, 29 Apr 2022 12:03:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63086/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_HuzChLo8" href="/user/15597/" bx-tooltip-user-id="15597">Konstantin</a> написал:<br />Убрал onAllTrade результат тот же. Может ещё что убрать...<br />=============<br />Советую последовательно анализировать.<br /><br />Для начала уберите обработку очереди и просто в каждом колбеке выводите сообщение, что пришел такой колбек. Функция main будет cодержать только sleep(10), например.<br /><br /><br />
====code====
<pre> function&nbsp;&nbsp; main ()
&nbsp;&nbsp;&nbsp;&nbsp; while&nbsp;&nbsp;is_run&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --if&nbsp;&nbsp; # MAIN_QUEUE&nbsp;&nbsp;&#62;&nbsp;&nbsp; 0&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp; ProcessingCallbakc(MAIN_QUEUE&#91; 1 &#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;table.sremove (MAIN_QUEUE,&nbsp;&nbsp;1 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;message ( "Размер очереди "&nbsp;&nbsp; ..&nbsp;&nbsp;tostring( # MAIN_QUEUE))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 10 )
&nbsp;&nbsp;&nbsp;&nbsp; end 
 end</pre>
=============
<br />Потом уже последовательно возвращать в колбеках заполнение очереди. По одному, не во всех сразу.<br />Тогда, анализируя поведение скрипта, найдете причину.<br /><br />И, главное, измените в функции ProcessingCallbakc sleep(3000) на sleep(10). А лучше вообще убрать. Я не представляю что необходимо выполнять три секунды на каждый колбек. <br />
			<i>28.04.2022 19:01:38, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63086/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63086/topic7303/</guid>
			<pubDate>Thu, 28 Apr 2022 19:01:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63083/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_a48OQCvt" href="/user/15597/" bx-tooltip-user-id="15597">Konstantin</a>, Коллбек содержит sleep?! Это же самоубийство! <img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> &nbsp; <br />
			<i>28.04.2022 14:03:53, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63083/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63083/topic7303/</guid>
			<pubDate>Thu, 28 Apr 2022 14:03:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63081/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_mFRmEbZn" href="/user/15542/" bx-tooltip-user-id="15542">Anton Belonogov</a> написал:<br /><noindex><a href="/user/15597/" target="_blank" rel="nofollow">Konstantin</a></noindex>, добрый день.<br />Такое поведение связано с особенностями работы Lua-машины: при использовании бесконечных циклов в скрипте необходимо вносить небольшую задержку, иначе возникают зависания.<br />Таким образом, для корректной работы данного скрипта в цикл &nbsp;while &nbsp;в теле функции &nbsp;main &nbsp;нужно добавить функцию &nbsp;sleep :<br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; main ()
&nbsp;&nbsp;&nbsp;&nbsp; while&nbsp;&nbsp;is_run&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; # MAIN_QUEUE&nbsp;&nbsp;&#62;&nbsp;&nbsp; 0&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessingCallbakc(MAIN_QUEUE&#91; 1 &#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.sremove (MAIN_QUEUE,&nbsp;&nbsp;1 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message ( "Размер очереди "&nbsp;&nbsp; ..&nbsp;&nbsp;tostring( # MAIN_QUEUE))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 1 )
&nbsp;&nbsp;&nbsp;&nbsp; end 
 end&nbsp;&nbsp; </pre>
=============
 <br />=============<br />ProcessingCallbakc содержит sleep на три секунды <br />
			<i>28.04.2022 13:37:14, Konstantin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63081/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63081/topic7303/</guid>
			<pubDate>Thu, 28 Apr 2022 13:37:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63080/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_xxaLQLwn" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Т.к. в примере присутствует OnAllTrade и у Вас организована подписка на поток сделок, скажем, по многим инструментам, то он будет постоянно блокировать поток для внесения новых данных.<br />Лучше удалить этот колбек. Либо добавляйте print debug сообщения, для оценки происходящего.<br />=============<br />Убрал onAllTrade результат тот же. Может ещё что убрать... <br />
			<i>28.04.2022 13:35:00, Konstantin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63080/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63080/topic7303/</guid>
			<pubDate>Thu, 28 Apr 2022 13:35:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63079/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_QIwezwW6" href="/user/62/" bx-tooltip-user-id="62">nikolz</a>, А что тут обосновывать? Ещё во времена моей молодости было какое-то исследование, что задержка реакции на действия пользователя свыше 5 секунд вызывает раздражение, свыше 15 секунд - нервные расстройства. С тех пор темп жизни ускорился, процессоры стали круче в тысячи раз, и любая задержка просто недопустима. Полсекунды - та самая граница, до которой юзер задержки не замечает и считает реакцию на свои действия практически мгновенной.<br /><br />Я не торгую по 1000 инструментам - у меня на это денег нет. Я слежу за 1000 инструментами, а в портфеле у меня болтается несколько десятков (обычно в районе полтинника).<br /><br />Лапуль, кто Вам сказал, что я &quot;на один инструмент Вы трачу не менее 0.5 секунды сна + время обработки&quot;? Я опрашиваю инструменты раз в секунду, но всю 1000 инструментов сразу. И нет проблем! <img src="http://forum.quik.ru/upload/main/smiles/5/icon_wink.png" border="0" data-code=":wink:" data-definition="SD" alt=":wink:" style="width:16px;height:16px;" title="Шутливо" class="bx-smile" /> Кое-где в этот момент принимаются решения на покупку или продажу, но это обычно лишь несколько десятков или сотен действий в сутки. <br />
			<i>28.04.2022 12:54:17, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63079/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63079/topic7303/</guid>
			<pubDate>Thu, 28 Apr 2022 12:54:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63077/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_lv0FIQ9N" href="/user/14299/" bx-tooltip-user-id="14299">Владимир</a> написал:<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex>, Использование sleep - ЛУЧШЕЕ решение! Простое, отлаженное, работающее, эффективное. Не sleep (1), конечно, а sleep (500). Использовать меньшие задержки в скриптах для торговли не вижу ни малейшего смысла. А если нет диалога, то и вообще sleep (1000).<br />=============<br />Владимир,<br />Сможете как-то обосновать Ваше решение лучшего выбора sleep и и величины 500 ms?<br />------------------------ <br />Раньше Вы писали, что торгуете по 1000 инструментам.<br />Тогда поясните сколько времени уйдет на обработку &nbsp;изменений цены инструмента, <br />если на один инструмент Вы тратите не менее 0.5 секунды сна + время обработки?<br />------------------------ <br />
			<i>28.04.2022 11:35:54, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63077/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63077/topic7303/</guid>
			<pubDate>Thu, 28 Apr 2022 11:35:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63072/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_6M4jbtgt" href="/user/62/" bx-tooltip-user-id="62">nikolz</a>, Использование sleep - ЛУЧШЕЕ решение! Простое, отлаженное, работающее, эффективное. Не sleep (1), конечно, а sleep (500). Использовать меньшие задержки в скриптах для торговли не вижу ни малейшего смысла. А если нет диалога, то и вообще sleep (1000). <br />
			<i>27.04.2022 21:11:39, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63072/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63072/topic7303/</guid>
			<pubDate>Wed, 27 Apr 2022 21:11:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63071/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			относительно sleep.<br />-------------------------------------<br />например<br />вот время реакции колбеков и main.<br />колбеки вызываются &nbsp; каждые 2- 5 мкс.<br />Sleep (1) &nbsp; даст задержку на 1000 и более мкс.<br />Вот и посчитайте сколько сигналов изменения цены инструмента Вы пропустите с таким сном.<br />
====code====
<pre>15,_____(us)=1.8
OnParam(us)=4.2
SBER,kil(us)=1.7 0&#62;0
SBER,ds(us)=3122.7
SBER,set(us)=295.4
14,_____(us)=3506.6
TransReply t(us)=7.2
moneyLimit t(us)=0.5
DepoLimit,SBER,set(us)=0.6
3,_____(us)=153.4
OnParam(us)=46.2
SBER,kil(us)=210.5 1&#62;0
SBER,ds(us)=4.4
SBER,set(us)=179.7
14,_____(us)=603.8
Order t(us)=2.3
Order t(us)=1.4
TransReply t(us)=2.4
Order t(us)=2.0
OnParam(us)=4.5
AFKS,kil(us)=204.9 1&#62;0
AFKS,ds(us)=3187.4
AFKS,set(us)=50.8
14,_____(us)=3676.0
OnParam(us)=4.6
SBER,kil(us)=2.6 0&#62;0
SBER,ds(us)=2.5
SBER,set(us)=508.2
14,_____(us)=1055.1
Order t(us)=2.1
moneyLimit t(us)=0.4
DepoLimit,SBER,set(us)=0.7
3,_____(us)=155.7
TransReply t(us)=1.4
Order t(us)=1.7
TransReply t(us)=4.5
moneyLimit t(us)=0.6
DepoLimit,SBER,set(us)=0.7
3,_____(us)=157.9
DepoLimit,SBER,set(us)=0.5
</pre>
============= <br />
			<i>27.04.2022 20:33:09, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63071/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63071/topic7303/</guid>
			<pubDate>Wed, 27 Apr 2022 20:33:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63069/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Bx2OMGCw" href="/user/15542/" bx-tooltip-user-id="15542">Anton Belonogov</a> написал:<br /><noindex><a href="/user/15597/" target="_blank" rel="nofollow">Konstantin</a></noindex>, добрый день.<br />Такое поведение связано с особенностями работы Lua-машины: при использовании бесконечных циклов в скрипте необходимо вносить небольшую задержку, иначе возникают зависания.<br />Таким образом, для корректной работы данного скрипта в цикл &nbsp;while &nbsp;в теле функции &nbsp;main &nbsp;нужно добавить функцию &nbsp;sleep :<br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; main ()
&nbsp;&nbsp;&nbsp;&nbsp; while&nbsp;&nbsp;is_run&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; # MAIN_QUEUE&nbsp;&nbsp;&#62;&nbsp;&nbsp; 0&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessingCallbakc(MAIN_QUEUE&#91; 1 &#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.sremove (MAIN_QUEUE,&nbsp;&nbsp;1 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message ( "Размер очереди "&nbsp;&nbsp; ..&nbsp;&nbsp;tostring( # MAIN_QUEUE))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 1 )
&nbsp;&nbsp;&nbsp;&nbsp; end 
 end&nbsp;&nbsp; </pre>
=============
 <br />=============<br />В примере уже есть sleep на 3 секунды<br />куда еще и зачем? <br />
			<i>27.04.2022 20:21:14, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63069/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63069/topic7303/</guid>
			<pubDate>Wed, 27 Apr 2022 20:21:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63068/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			если &nbsp;комп с несколькими ядрами, то ничего не вешает.<br />---------------------<br />Я использую системные события для синхронизации потоков.<br />-------------------------<br />Без синхронизации загрузка процессора 33%<br />с синхронизацией &nbsp;1-5%.<br />--------------------- <br />Использование sleep не лучшее решение. <br />--------------------------<br />Проще и лучше, если не используете системное событие , использовать флаги. <br />
			<i>27.04.2022 20:18:29, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63068/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63068/topic7303/</guid>
			<pubDate>Wed, 27 Apr 2022 20:18:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63063/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_Pcdywi38" href="/user/15597/" bx-tooltip-user-id="15597">Konstantin</a>, добрый день.<br />Такое поведение связано с особенностями работы Lua-машины: при использовании бесконечных циклов в скрипте необходимо вносить небольшую задержку, иначе возникают зависания.<br />Таким образом, для корректной работы данного скрипта в цикл <B>while</B> в теле функции <B>main </B>нужно добавить функцию <B>sleep</B>:<br />
====code====
<pre>function main()
&nbsp;&nbsp;&nbsp;&nbsp;while is_run do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #MAIN_QUEUE &#62; 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessingCallbakc(MAIN_QUEUE&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.sremove(MAIN_QUEUE, 1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Размер очереди " .. tostring(#MAIN_QUEUE))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1)
&nbsp;&nbsp;&nbsp;&nbsp;end
end</pre>
============= <br />
			<i>27.04.2022 15:21:46, Anton Belonogov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63063/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63063/topic7303/</guid>
			<pubDate>Wed, 27 Apr 2022 15:21:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63055/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Т.к. в примере присутствует OnAllTrade и у Вас организована подписка на поток сделок, скажем, по многим инструментам, то он будет постоянно блокировать поток для внесения новых данных.<br />Лучше удалить этот колбек. Либо добавляйте print debug сообщения, для оценки происходящего. <br />
			<i>27.04.2022 13:04:03, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63055/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63055/topic7303/</guid>
			<pubDate>Wed, 27 Apr 2022 13:04:03 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63054/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			ни у кого больше не вешает видимо <br />
			<i>27.04.2022 12:52:54, Konstantin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63054/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63054/topic7303/</guid>
			<pubDate>Wed, 27 Apr 2022 12:52:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Запуск скрипта из примера подвешивает терминал Quik</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message63043/topic7303/">Запуск скрипта из примера подвешивает терминал Quik</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вот <noindex><a href="https://drive.google.com/file/d/1-ueG4C2JD3G5TzBQHChdamQ3R2Nf6XtB/view?usp=sharing" target="_blank" rel="nofollow">этот пример</a></noindex> из PDF &quot;Использование Lua в Рабочем месте Quik&quot; (пункт 2 &quot;Взаимодействие потоков Lua скрипта&quot;) вешает терминал.<br />Что я делаю не так <br />
			<i>26.04.2022 12:38:38, Konstantin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message63043/topic7303/</link>
			<guid>http://forum.quik.ru/messages/forum10/message63043/topic7303/</guid>
			<pubDate>Tue, 26 Apr 2022 12:38:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
