<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: [BUG] Крах Квика при работе скрипта]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме [BUG] Крах Квика при работе скрипта форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 23 Apr 2026 09:25:48 +0300</pubDate>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44464/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_a2STp0gG" href="/user/629/" bx-tooltip-user-id="629">Latrop</a> написал:<br />Не тот скрипт, вот чистый lua :)<br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; OnAllTrade (tick)
 end 
 
mainRun&nbsp;&nbsp;=&nbsp;&nbsp; false 
 
 function&nbsp;&nbsp; OnStop (flag) 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "OnStop" )
&nbsp;&nbsp; mainRun&nbsp;&nbsp;=&nbsp;&nbsp; false 
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp; 3000 ;
 end 
 
 function&nbsp;&nbsp; main ()
&nbsp;&nbsp; mainRun&nbsp;&nbsp;=&nbsp;&nbsp; true 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "main run..." )
&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;&nbsp;mainRun&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;ticksNum&nbsp;&nbsp;=&nbsp;&nbsp; getNumberOf ( "all_trades" )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;tick&nbsp;&nbsp;=&nbsp;&nbsp; getItem ( "all_trades" , ticksNum -&nbsp;&nbsp;1 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 1 )
&nbsp;&nbsp;&nbsp;&nbsp;end 
 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "main exit" )
 end 
&nbsp;&nbsp;</pre>
=============
 <br />=============<br />Добрый день,<br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; Описанная в данном инциденте ошибка была исправлена в версии 8.5.2 &nbsp; &nbsp; &nbsp; терминала QUIK.<br /> &nbsp; &nbsp; &nbsp; Рекомендуем вам обновить версию программы.<br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; Приносим извинения за причиненные неудобства. <br />
			<i>07.05.2020 14:19:46, Egor Zaytsev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44464/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44464/topic5375/</guid>
			<pubDate>Thu, 07 May 2020 14:19:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44382/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			К сожалению, назвать &nbsp;точные сроки выхода новой версии затруднимся.<br />Примите искренние извинения за доставленные неудобства. <br />
			<i>06.05.2020 10:11:51, Maria Romanova.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44382/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44382/topic5375/</guid>
			<pubDate>Wed, 06 May 2020 10:11:51 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44381/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0d5h53kN" href="/user/759/" bx-tooltip-user-id="759">Maria Romanova</a> написал:<br /> Добрый день,<br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; Действительно, есть синхронизационная ошибка, иногда приводящая к &nbsp; &nbsp; &nbsp; сбоям. Мы исправим ошибку в ближайшем обновлении ПО. Приносим извинения за доставленные неудобства. <br />=============<br />Слово &quot;иногда&quot; тут явно лишнее. Можно более конкретно, когда будет ближайшее обновление и что именно там планируется исправить из той кучи ошибок, что уже набралось? <br />
			<i>06.05.2020 09:59:18, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44381/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44381/topic5375/</guid>
			<pubDate>Wed, 06 May 2020 09:59:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44377/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<p>Добрый день,<br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; Действительно, есть синхронизационная ошибка, иногда приводящая к &nbsp; &nbsp; &nbsp; сбоям. Мы исправим ошибку в ближайшем обновлении ПО. Приносим извинения за доставленные неудобства.</p> <br />
			<i>06.05.2020 09:15:42, Maria Romanova.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44377/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44377/topic5375/</guid>
			<pubDate>Wed, 06 May 2020 09:15:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44362/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_JxRkX19w" href="/user/629/" bx-tooltip-user-id="629">Latrop</a> написал:<br />Не тот скрипт, вот чистый lua :)<br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; OnAllTrade (tick)
 end 
 
mainRun&nbsp;&nbsp;=&nbsp;&nbsp; false 
 
 function&nbsp;&nbsp; OnStop (flag) 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "OnStop" )
&nbsp;&nbsp; mainRun&nbsp;&nbsp;=&nbsp;&nbsp; false 
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp; 3000 ;
 end 
 
 function&nbsp;&nbsp; main ()
&nbsp;&nbsp; mainRun&nbsp;&nbsp;=&nbsp;&nbsp; true 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "main run..." )
&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;&nbsp;mainRun&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;ticksNum&nbsp;&nbsp;=&nbsp;&nbsp; getNumberOf ( "all_trades" )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;tick&nbsp;&nbsp;=&nbsp;&nbsp; getItem ( "all_trades" , ticksNum -&nbsp;&nbsp;1 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 1 )
&nbsp;&nbsp;&nbsp;&nbsp;end 
 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "main exit" )
 end 
&nbsp;&nbsp;</pre>
=============
 <br />=============<br /><br />Проблема изучается. Постараемся в ближайшее время дать ответ. <br />
			<i>05.05.2020 16:36:49, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44362/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44362/topic5375/</guid>
			<pubDate>Tue, 05 May 2020 16:36:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44335/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_BnZdQm8u" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> написал:<br />2) значение n может переполниться когда-нибудь<br />=============<br />Это комплимент Квику, что скрипт сможет отработать безостановочно тысячи лет подряд <br />Мир будет на квантовых компьютерах с инопланетянами торговать, а в России будет... Квик <br />
			<i>05.05.2020 10:09:26, Latrop.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44335/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44335/topic5375/</guid>
			<pubDate>Tue, 05 May 2020 10:09:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44332/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_rcRylJOn" href="/user/629/" bx-tooltip-user-id="629">Latrop</a>, я б сейчас вообще не очень заморачивался, <I>как именно</I> падает, бо там адъ внутри. Лонгджампы смешаны с исключениями, гарбидж коллектор не работает местами, стейты битые создаются и т.д. Пока версию без этих адовых косяков не выложат, ловить нечего, а дальше будем новые косяки искать.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_8lSE3SRZ" href="/user/62/" bx-tooltip-user-id="62">Николай Камынин</a> написал:<br />так как если mainRun не определен, то он false<br />=============<br />Если он не определен, то он не определен. Имеете в виду, что если он не инициализирован, то он nil, который в сравнении ведет себя аналогично false. Это не есть хорошая практика. Все эти языки придуманы, чтобы человек прочитал и понял, что происходит, не надо манглить код ради мнимой производительности, или тогда уже сразу массивы опкодов в char&#91;&#93; и jmp туда, вот уж летать будет (но недолго). <br />
			<i>05.05.2020 08:21:17, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44332/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44332/topic5375/</guid>
			<pubDate>Tue, 05 May 2020 08:21:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44329/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_kUu8m9Sm" href="/user/629/" bx-tooltip-user-id="629">Latrop</a> написал:<br />В соседних ветках много сообщений о проблемах с версией 8.5, но системы у всех сложные, грешить не понятно на что..<br /><br /> Вот очень простой скрипт, который рушит Квик во время торгов. &nbsp;<br />Упасть может и не сразу, поработав недолго, видимо зависит от интенсивности потока тиков.<br />Ошибок в скрипте нет, он элементарный. Да если бы и были ошибки, то рушиться весь Квик не должен, только скрипт.<br /> Для 100% краха можно перезаказать данные текущей сессии. Тогда упадет сразу. <br /><br /> 
====code====
<pre>&nbsp;&nbsp; local&nbsp;&nbsp;ticksIn&nbsp;&nbsp;=&nbsp;&nbsp; 0 
 
 function&nbsp;&nbsp; OnAllTrade (tick)
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;( math.fmod (ticksIn,&nbsp;&nbsp;5000 ) =&nbsp;&nbsp;=&nbsp;&nbsp;0 )&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message ( "OnAllTrade "&nbsp;&nbsp; ..&nbsp;&nbsp;ticksIn&nbsp;&nbsp;..&nbsp;&nbsp; "&nbsp;&nbsp;tick: "&nbsp;&nbsp; ..&nbsp;&nbsp;tostring(tick.trade_num))
&nbsp;&nbsp;&nbsp;&nbsp;end 
&nbsp;&nbsp; ticksIn&nbsp;&nbsp;=&nbsp;&nbsp;ticksIn&nbsp;&nbsp;+&nbsp;&nbsp; 1 
 end 
 
mainRun&nbsp;&nbsp;=&nbsp;&nbsp; false 
 
 function&nbsp;&nbsp; OnStop (flag) 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "OnStop" )
&nbsp;&nbsp; mainRun&nbsp;&nbsp;=&nbsp;&nbsp; false 
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp; 3000 ;
 end 
 
 function&nbsp;&nbsp; main ()
&nbsp;&nbsp; mainRun&nbsp;&nbsp;=&nbsp;&nbsp; true 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "main run..." )
&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;&nbsp;n&nbsp;&nbsp;=&nbsp;&nbsp; 0 
&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;&nbsp;mainRun&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;ticksNum&nbsp;&nbsp;=&nbsp;&nbsp; getNumberOf ( "all_trades" )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;(ticksNum&nbsp;&nbsp;&#62;&nbsp;&nbsp; 0 )&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;&nbsp;tick&nbsp;&nbsp;=&nbsp;&nbsp; getItem ( "all_trades" , ticksNum&nbsp;&nbsp;-&nbsp;&nbsp; 1 );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;( math.fmod (n,&nbsp;&nbsp;1000 )&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp; 0 )&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message ( "AllTrades&nbsp;&nbsp;num: "&nbsp;&nbsp; ..&nbsp;&nbsp;ticksNum&nbsp;&nbsp;..&nbsp;&nbsp; "&nbsp;&nbsp;tick: "&nbsp;&nbsp; ..&nbsp;&nbsp;tostring(tick.trade_num))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;&nbsp;=&nbsp;&nbsp;n&nbsp;&nbsp;+&nbsp;&nbsp; 1 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 1 )
&nbsp;&nbsp;&nbsp;&nbsp;end 
 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "main exit" )
 end 
&nbsp;&nbsp;</pre>
=============
 <br />=============<br />1) mainRun &nbsp;= &nbsp; false -- &nbsp;оператор лишний, так как если mainRun не определен, то он false<br />2) значение n может переполниться когда-нибудь , а вычислять остаток - долго<br />вот вариант без этих проблем:<br />-------------------------<br /> &nbsp; &nbsp;local &nbsp;n &nbsp;= &nbsp; 0 <br /> &nbsp; &nbsp;while &nbsp;mainRun &nbsp;do <br /> &nbsp; &nbsp; &nbsp; local &nbsp;ticksNum &nbsp;= &nbsp; getNumberOf ( &quot;all_trades&quot; )<br /> &nbsp; &nbsp; &nbsp; if &nbsp;ticksNum &nbsp;&gt; &nbsp; 0 &nbsp; then <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;local &nbsp;tick &nbsp;= &nbsp; getItem ( &quot;all_trades&quot; , ticksNum &nbsp;- &nbsp; 1 );<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if &nbsp;n==0 &nbsp;then &nbsp;message ( &quot;AllTrades &nbsp;num: &quot; &nbsp; .. &nbsp;ticksNum &nbsp;.. &nbsp; &quot; &nbsp;tick: &quot; &nbsp; .. &nbsp;tostring(tick.trade_num)) &nbsp;end <br /> &nbsp; &nbsp; &nbsp; end <br /> &nbsp; &nbsp; &nbsp;n &nbsp;= &nbsp;n &nbsp;+ &nbsp; 1 &nbsp;if n&gt;=1000 then n=0 &nbsp; end<br />sleep ( 1 )<br /> &nbsp; &nbsp;end <br />------------------<br />проверка условия в два раза быстрее. <br />
			<i>05.05.2020 07:44:15, Николай Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44329/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44329/topic5375/</guid>
			<pubDate>Tue, 05 May 2020 07:44:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44328/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Не тот скрипт, вот чистый lua :)<br />
====code====
<pre>function OnAllTrade(tick)
end
 
mainRun = false
 
function OnStop(flag) 
&nbsp;&nbsp;&nbsp;message("OnStop")
&nbsp;&nbsp;&nbsp;mainRun = false
&nbsp;&nbsp;&nbsp;return 3000;
end
 
function main()
&nbsp;&nbsp;&nbsp;mainRun = true
&nbsp;&nbsp;&nbsp;message("main run...")
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;while mainRun do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local ticksNum = getNumberOf("all_trades")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tick = getItem("all_trades", ticksNum-1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1)
&nbsp;&nbsp;&nbsp;end
 
&nbsp;&nbsp;&nbsp;message("main exit")
end
</pre>
============= <br />
			<i>05.05.2020 06:41:33, Latrop.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44328/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44328/topic5375/</guid>
			<pubDate>Tue, 05 May 2020 06:41:33 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44327/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ibfdAZNL" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />Не факт, что очистка ТВС не произойдет между getNumberOf и getItem, а результат второй разыменовывается без проверки на nil. Перезаказ = крэш. Не квика (должен быть), но скрипта, хотя как сейчас сделано, и нила не надо, сам грохнется, найдет почему.<br />=============<br />Имелось ввиду не &quot;Получить заново данные по сделкам&quot;, а &quot;Перезаказать данные&quot; - там перезапуск всего Квика происходит. Хотя не суть.<br />Вообще, этот сахар с сообщениями добавлен для наглядности, какой момент упадет.<br /><br />Для краха достаточно и такого:
====code====
<pre>public static void OnAllTrade(Tick tick) {
}
 
static bool mainRun;
public static int? OnStop(int flag) {
&nbsp;&nbsp;&nbsp;message("OnStop");
&nbsp;&nbsp;&nbsp;mainRun = false;
&nbsp;&nbsp;&nbsp;return 3000;
}
 
public static void main() {
&nbsp;&nbsp;&nbsp;mainRun = true;
&nbsp;&nbsp;&nbsp;message("main run...");
 
&nbsp;&nbsp;&nbsp;while (mainRun) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var ticksNum = getNumberOf("all_trades");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tick tick = getItem("all_trades", ticksNum - 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(1);
&nbsp;&nbsp;&nbsp;}
 
&nbsp;&nbsp;&nbsp;message("main exit");
}

</pre>
=============
Упадет может и не сразу, может несколько минут продержаться во время рабочих торгов. <br />
			<i>05.05.2020 06:39:55, Latrop.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44327/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44327/topic5375/</guid>
			<pubDate>Tue, 05 May 2020 06:39:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44325/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_MrcnFGIW" href="/user/629/" bx-tooltip-user-id="629">Latrop</a> написал:<br />Ошибок в скрипте нет<br />=============<br />
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local ticksNum = getNumberOf("all_trades")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (ticksNum &#62; 0) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local tick = getItem("all_trades", ticksNum - 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (math.fmod(n, 1000) == 0) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("AllTrades&nbsp;&nbsp;num: " .. ticksNum .. "&nbsp;&nbsp;tick: " .. tostring(tick.trade_num))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end</pre>
=============
Не факт, что очистка ТВС не произойдет между getNumberOf и getItem, а результат второй разыменовывается без проверки на nil. Перезаказ = крэш. Не квика (должен быть), но скрипта, хотя как сейчас сделано, и нила не надо, сам грохнется, найдет почему.<br /><br />Занятное наблюдение: в старом луа через пять строчек было EnterCriticalSection, а в новом их вообще нет (ну только что плюсовый рантайм добавил для своих целей). Вот и возникает вопрос, макросы синхронизации тоже что ли забыли переопределить? Или это новый дизайн такой, лок-фри по последнему слову техники (правда, интерлоков тоже чета не видать). <br />
			<i>04.05.2020 23:19:47, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44325/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44325/topic5375/</guid>
			<pubDate>Mon, 04 May 2020 23:19:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44321/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_KWf8gjsM" href="/user/1820/" bx-tooltip-user-id="1820">Александр М</a> написал:<br />Тут налицо переполнение 2-х переменных: ticksIn и n<br /><br />=============<br />Ну ежели скрипт будет работать непрерывно несколько веков, то может и переполнятся :) <br />
			<i>04.05.2020 20:26:53, Latrop.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44321/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44321/topic5375/</guid>
			<pubDate>Mon, 04 May 2020 20:26:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44320/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Тут налицо переполнение 2-х переменных: ticksIn и n<br /><br />Но конечно это не должно рушить QUIK. <br />
			<i>04.05.2020 20:13:16, Александр М.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44320/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44320/topic5375/</guid>
			<pubDate>Mon, 04 May 2020 20:13:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>[BUG] Крах Квика при работе скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message44317/topic5375/">[BUG] Крах Квика при работе скрипта</a></b> <i>версия 8.5</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В соседних ветках много сообщений о проблемах с версией 8.5, но системы у всех сложные, грешить не понятно на что..<br /><br /><B>Вот очень простой скрипт, который рушит Квик во время торгов.</B> <br />Упасть может и не сразу, поработав недолго, видимо зависит от интенсивности потока тиков.<br />Ошибок в скрипте нет, он элементарный. Да если бы и были ошибки, то рушиться весь Квик не должен, только скрипт.<br /><B>Для 100% краха можно перезаказать данные текущей сессии. Тогда упадет сразу.</B><br /><br />
====code====
<pre>local ticksIn = 0
 
function OnAllTrade(tick)
&nbsp;&nbsp;&nbsp;if (math.fmod(ticksIn, 5000)==0) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("OnAllTrade " .. ticksIn .. "&nbsp;&nbsp;tick: " .. tostring(tick.trade_num))
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;ticksIn = ticksIn + 1
end
 
mainRun = false
 
function OnStop(flag) 
&nbsp;&nbsp;&nbsp;message("OnStop")
&nbsp;&nbsp;&nbsp;mainRun = false
&nbsp;&nbsp;&nbsp;return 3000;
end
 
function main()
&nbsp;&nbsp;&nbsp;mainRun = true
&nbsp;&nbsp;&nbsp;message("main run...")
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;local n = 0
&nbsp;&nbsp;&nbsp;while mainRun do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local ticksNum = getNumberOf("all_trades")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (ticksNum &#62; 0) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tick = getItem("all_trades", ticksNum - 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (math.fmod(n, 1000) == 0) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("AllTrades&nbsp;&nbsp;num: " .. ticksNum .. "&nbsp;&nbsp;tick: " .. tostring(tick.trade_num))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = n + 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1)
&nbsp;&nbsp;&nbsp;end
 
&nbsp;&nbsp;&nbsp;message("main exit")
end
</pre>
============= <br />
			<i>04.05.2020 19:35:53, Latrop.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message44317/topic5375/</link>
			<guid>http://forum.quik.ru/messages/forum10/message44317/topic5375/</guid>
			<pubDate>Mon, 04 May 2020 19:35:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
