<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Скрипт прекращает работу, а не должен]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Скрипт прекращает работу, а не должен форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Mon, 18 May 2026 09:37:33 +0300</pubDate>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46810/topic5497/">Скрипт прекращает работу, а не должен</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_bCOTQbBn" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />Как вариант, где-то в цикле main используется return<br /><noindex><a href="/user/2250/" target="_blank" rel="nofollow">Иван Ру</a></noindex>, ваш вопрос звучит примерно так: &quot;Угадайте, что в чёрном ящике&quot;? Вряд ли кто-то сможет помочь.<br />=============<br />Речь об инструментах устранения ошибок, не о том, чтобы это кто-то сделал за меня. Хотя за подсказки тоже благодарен. Вот был уверен что return у меня в цикле нет, но после вашего замечания решил перепроверить и один таки нашел... <br />
			<i>06.07.2020 23:43:33, Иван Ру.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46810/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46810/topic5497/</guid>
			<pubDate>Mon, 06 Jul 2020 23:43:33 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46777/topic5497/">Скрипт прекращает работу, а не должен</a></b> <i>Скрипт прекращает работу по непонятной причине, как ее выявить?</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Как вариант, где-то в цикле main используется return<br /><a class="blog-p-user-name" id="bp_8dqTLxXp" href="/user/2250/" bx-tooltip-user-id="2250">Иван Ру</a>, ваш вопрос звучит примерно так: "Угадайте, что в чёрном ящике"? Вряд ли кто-то сможет помочь. <br />
			<i>06.07.2020 11:24:05, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46777/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46777/topic5497/</guid>
			<pubDate>Mon, 06 Jul 2020 11:24:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46775/topic5497/">Скрипт прекращает работу, а не должен</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_ovYpmK08" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Отладчик Вам не поможет, если ошибка спонтанная, т.е. зависящая от данных. Допустим индексация значения nil, ожидая table.<br /><br />В этом случае Вам проще обернуть критические функции в pcall, перехваченные ошибки записывать в лог. При этом надо обязательно добавить assert на входяшие данные.<br />Если ожидаете таблицу, проверьте что она и пришла. Ждете строку, проверьте, что она есть.<br />Тогда исключение по таким проверкам Вам и дать искомую ошибку.<br />=============<br />На данном этапе проблема в том, чтобы понять в каком месте ошибка, т.к. сообщения нет, а код очень велик... Если бы проблема была в неверном типе данных, сообщение об ошибке должно было бы приходить, насколько я понимаю... <br />
			<i>06.07.2020 10:31:54, Иван Ру.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46775/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46775/topic5497/</guid>
			<pubDate>Mon, 06 Jul 2020 10:31:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46758/topic5497/">Скрипт прекращает работу, а не должен</a></b> <i>Скрипт прекращает работу по непонятной причине, как ее выявить?</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Отладчик Вам не поможет, если ошибка спонтанная, т.е. зависящая от данных. Допустим индексация значения nil, ожидая table.<br /><br />В этом случае Вам проще обернуть критические функции в pcall, перехваченные ошибки записывать в лог. При этом надо обязательно добавить assert на входяшие данные.<br />Если ожидаете таблицу, проверьте что она и пришла. Ждете строку, проверьте, что она есть.<br />Тогда исключение по таким проверкам Вам и дать искомую ошибку. <br />
			<i>05.07.2020 16:47:19, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46758/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46758/topic5497/</guid>
			<pubDate>Sun, 05 Jul 2020 16:47:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46757/topic5497/">Скрипт прекращает работу, а не должен</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_h69VK6eg" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/2250/" target="_blank" rel="nofollow">Иван Ру</a></noindex> написал:<br />Тогда вопрос: возможен ли такой вариант, что при остановке скрипта в результате ошибки никакое сообщение об ошибке &nbsp;(в окне &quot;Доступные скрипты&quot; в поле &quot;Ошибки выполнения скрипта&quot;) не выводится. Или ошибка исполнения всегда сопровождается соответствующим сообщением?<br />=============<br /> Нет.<br /> <br />====quote====<br /><noindex><a href="/user/2250/" target="_blank" rel="nofollow">Иван Ру</a></noindex> написал:<br />П.С. Код на 2600 строк, в нем непросто разобраться.<br />=============<br /> <br />тогда без шансов.<br />=============<br />Можете посоветовать внешние отладчики или другие методы позволяющие выявить место ошибки в скриптах в случаях, когда никакого сообщения о ней не приходит? <br />
			<i>05.07.2020 16:36:05, Иван Ру.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46757/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46757/topic5497/</guid>
			<pubDate>Sun, 05 Jul 2020 16:36:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46733/topic5497/">Скрипт прекращает работу, а не должен</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_pq6aCNkn" href="/user/2250/" bx-tooltip-user-id="2250">Иван Ру</a> написал:<br />Тогда вопрос: возможен ли такой вариант, что при остановке скрипта в результате ошибки никакое сообщение об ошибке &nbsp;(в окне "Доступные скрипты" в поле "Ошибки выполнения скрипта") не выводится. Или ошибка исполнения всегда сопровождается соответствующим сообщением?<br />=============<br />Нет.<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_oSaNpNod" href="/user/2250/" bx-tooltip-user-id="2250">Иван Ру</a> написал:<br />П.С. Код на 2600 строк, в нем непросто разобраться.<br /><br />=============<br /><br />тогда без шансов. <br />
			<i>04.07.2020 10:55:35, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46733/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46733/topic5497/</guid>
			<pubDate>Sat, 04 Jul 2020 10:55:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46718/topic5497/">Скрипт прекращает работу, а не должен</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_fdD6owrw" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><noindex><a href="/user/2250/" target="_blank" rel="nofollow">Иван Ру</a></noindex>, <br />По присланной части кода разобраться не представляется возможным, думаю Вы сами это понимаете.<br />если хотите чтобы Вам помогли пришлите весь код.<br /><br />Скрипт может остановиться в трех случаях<br />либо его остановили вручную<br />либо был выход из main<br />либо произошла ошибка.<br /><br />Всё никаких других вариантов нет и быть не может и это совершенно точно.<br />Без полной версии кода, очевидно что мы не сможем проверить ни один из пунктов.<br />=============<br />Тогда вопрос: возможен ли такой вариант, что при остановке скрипта в результате ошибки никакое сообщение об ошибке &nbsp;(в окне &quot;Доступные скрипты&quot; в поле &quot;Ошибки выполнения скрипта&quot;) не выводится. Или ошибка исполнения всегда сопровождается соответствующим сообщением?<br /><br />П.С. Код на 2600 строк, в нем непросто разобраться. <br />
			<i>03.07.2020 16:08:26, Иван Ру.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46718/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46718/topic5497/</guid>
			<pubDate>Fri, 03 Jul 2020 16:08:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46699/topic5497/">Скрипт прекращает работу, а не должен</a></b> <i>Скрипт прекращает работу по непонятной причине, как ее выявить?</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_KDkkIaVa" href="/user/2250/" bx-tooltip-user-id="2250">Иван Ру</a>, <br />По присланной части кода разобраться не представляется возможным, думаю Вы сами это понимаете.<br />если хотите чтобы Вам помогли пришлите весь код.<br /><br />Скрипт может остановиться в трех случаях<br />либо его остановили вручную<br />либо был выход из main<br />либо произошла ошибка.<br /><br />Всё никаких других вариантов нет и быть не может и это совершенно точно.<br />Без полной версии кода, очевидно что мы не сможем проверить ни один из пунктов. <br />
			<i>03.07.2020 07:39:59, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46699/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46699/topic5497/</guid>
			<pubDate>Fri, 03 Jul 2020 07:39:59 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46683/topic5497/">Скрипт прекращает работу, а не должен</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_hzbdvuY4" href="/user/82/" bx-tooltip-user-id="82">swerg</a> написал:<br /> &nbsp; Sergey Gorokhov &nbsp; , скажите: я верно понимаю, что скрипт останавливается только в 2-х случаях:<br />1) Либо произошел корректный выход из main() -&gt; тогда в окне скриптов не будет ошибки (и других сообщений)<br />2) Либо произошла какая-то (любая) ошибка &nbsp;-&gt; тогда в окне скриптов гарантированно будет отображена ошибка<br /><br />Верно? других вариантов нет? Точно нет?<br /><br />Если так, то &nbsp; &nbsp;Иван Ру &nbsp; &nbsp; &nbsp;будет достаточно добавить логирование условия выхода из цикла main() и всё станет понятно.<br />=============<br />Добрый день! Я стараюсь придерживаться этого принципа - логгировать все...<br />1. Нет в логике скрипта возможности выхода из main, только остановка вручную. Скрипт должен после запуска крутиться бесконечно - и крутился, неделями. Плюс есть логгирование, которое фиксирует такой выход...<br />Скрипт обрывается обычно в периоды частого выставления заявок, например, в начале сессии. Может, судя по логгированию, останавливаться в разных местах выполнения. Обычно это дополнительные функции по обработке заявок - стандартная Ontrasreply или функция написанная мной. Но четкой закономерности проявления ошибки нет. <br />2. В том и проблема, что никакого сообщения об ошибке нет... Если бы ошибка отображалась, было бы просто... <br />
			<i>02.07.2020 11:59:35, Иван Ру.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46683/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46683/topic5497/</guid>
			<pubDate>Thu, 02 Jul 2020 11:59:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message46138/topic5497/">Скрипт прекращает работу, а не должен</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_gDC0sRP7" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/2250/" target="_blank" rel="nofollow">Иван Ру</a></noindex> написал:<br />Как в такой ситуации определить причину неожиданной остановки скрипта?<br />=============<br /> <br />Добавить в скрипт логирование всего, и по факту остановки смотреть что было последним.<br />=============<br />У меня как раз такая реализация, но она прояснить проблему не позволяет... Судя по логам дело происходит так. Мой скрипт периодически удаляет заявки, затем проходит обработка для того чтобы учесть факт успешного/неуспешного удаления заявки. Все это в цикле с частотой около 50 миллисекунд. Остановка происходит обычно так - происходит успешное удаление заявки, в OnTransReply происходит обработка данных + специальная функция успешно обрабатывает /учитывает полученный результат и благополучно завершается. После этого скрипт работает доли секунды (прокручивается несколько циклов) и прекращает работу без сообщения об ошибке... OnStop не инициируется и не запускается, т.е. она ни при чем. В подавляющем большинстве случаев при наступления события (успешная транзакция по удалению заявки) никакой остановки не происходит, все работает штатно.<br />Ошибка наблюдается на терминалах версии 8.5<br />Код:<br /><br /><br />function fProcessReply (reply, place, clos, sec_code, pos, order_num, trans_id, Price) -- reply - отклик по транзакции, place -- на размещение TRUE, clos - закрытие позиции TRUE, sec_code, pos - позиция ОБЪЕКТ, order_num - номер заявки, trans_id - номер транзакции, Price - цена<br />		-- обработка ошибок <br />		if clos == nil then clos = pos.temp ; end <br />		local dir = 1 -- направление сделки<br />		if pos.dir == &quot;S&quot; then dir = -1; end -- корректируем его при необходимости <br />		local result = &quot;&quot;<br />		writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Try to process&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..tostring(place)..&quot;;&quot;..&quot;order_num&quot;..&quot;;&quot;..tostring(order_num)..&quot;;&quot;..&quot;trans_id&quot;..&quot;;&quot;..tostring(trans_id))<br />		if reply ~= &#39;&#39; then &nbsp;-- ОШИБКА (Это верно и для заявок на размещение и для заявок на удаление, значит необходимо оставить неизменным прежний статус заявки !!!!<br />			result = &nbsp;false	;<br />			writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Error&quot;)<br />			fRejectedOrderCase (sec_code, pos) -- запуск функции по обработке ошибочной транзакции !!! перепроверить<br />			else -- УСПЕШНАЯ ОТПРАВКА (ответное сообщение нулевое)<br />			result = true<br />			-- Формируем базовые переменные<br />			local SubDir 		= 0 -- поднаправление (размещение / закрытие)<br />			local dirQty 		= 0 -- изменение лотов с учетом направления <br />			local lotSize 		= pos.lotSize -- объем заявки в лотах (для заявки на удаления - остаток в лотах)<br />			if pos.executedLots then lotSize = lotSize - pos.executedLots ; end -- корректируем с учетом остатка<br />			-- Записываем общие (для заявок на размещение и удаление) флаги <br />			pos.trans_id = trans_id; -- записываем номер ордера (uniq_trans_id - далее userId) в соответствующее поле позиции - это будет нужно для последующего поиска сделки<br />			pos.placed = place<br />			writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Placed flag&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..tostring(place))<br />			<br />			if place == true then <br />	----------- если заявка на РАЗМЕЩЕНИЕ -------------------------------------<br />				writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Place order &nbsp;success&quot;)<br />				SubDir = 1<br />				pos.PricePlaced = Price; -- записываем цену заявки<br />				pos.posixOrig 	= tpCurTime -- записываем текущее время сделки<br />				-- заявки на закрытие <br />				if temp == true then &nbsp;-- блокирование снятой временной позиции на закрытие<br />					-- writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Block pose after killed&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..&quot;index&quot;..&quot;;&quot;..tostring(pos.index), true)<br />					else -- размещена постоянная позиция на ВХОД<br />					-- устанавливаем верхнюю и нижнюю границы для позиции на вход<br />					local dopuskForPos 		= pos.dopusk<br />					local dopuskHigh 		= 1 + pos.dopusk/100<br />					local dopuskLow 		= 1 - pos.dopusk/100<br />					pos.lowP				= pos.basePrice * dopuskLow -- Базовая цена (оффер или бид) умножается на верхний коэффициент (верхний допуск)<br />					pos.highP				= pos.basePrice * dopuskHigh<br />					writeLog (&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Define price limits&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..&quot;Price&quot;..&quot;;&quot;..tostring(Price)..&quot;;&quot;..&quot;lowP&quot;..&quot;;&quot;..tostring(pos.lowP)..&quot;;&quot;..&quot;highP&quot;..&quot;;&quot;..tostring(pos.highP), true)<br />				end <br />	----------- если заявка на УДАЛЕНИЕ ----------------------------------<br />				else<br />				writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Delet order success&quot;)<br />				SubDir = -1;<br />				-- Обнуляем ключевые параметры<br />				pos.PricePlaced = 0; -- записываем цену заявки<br />				pos.donttuch = curPosixTime + IdleTimeAfterKill<br />				writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Change qty for killord&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..&quot;pos.lotSize&quot;..&quot;;&quot;..tostring(pos.lotSize)..&quot;;&quot;..&quot;pos.executedLots&quot;..&quot;;&quot;..tostring(pos.executedLots), true)<br />				checkOrder, dirCheck, balanceQty = fFindOrderAndCheckDirBalance (order_num) -- ищем заявку в таблице заявок <br />				if checkOrder == true then -- если удалось найти заявку в общем списке заявок<br />					lotSize = balanceQty <br />					dir = dirCheck<br />					writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Rechange qty for killord&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..&quot;balanceQty&quot;..&quot;;&quot;..tostring(balanceQty)..&quot;;&quot;..&quot;dirCheck&quot;..&quot;;&quot;..tostring(dirCheck), true)<br />				end &nbsp;-- если удалось найти заявку в общем списке заявок<br />				--Заявка на закрытие <br />				if temp == true then &nbsp;-- блокирование снятой временной позиции на закрытие<br />					pos.block 	= true <br />					writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Block pose after killed&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..&quot;index&quot;..&quot;;&quot;..tostring(pos.index), true)<br />					else <br />					pos.basePrice = 0 ;<br />					pos.lowP				= 0 -- Базовая цена (оффер или бид) умножается на верхний коэффициент (верхний допуск)<br />					pos.highP				= 0<br />				end -- удаление снятой временной позиции на закрытие<br />			end -- если заявка на РАЗМЕЩЕНИЕ<br />			-- Корректировка баланса <br />			dirQty = SubDir * lotSize * dir			<br />			writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Lots to balance&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..&quot;dir&quot;..&quot;;&quot;..tostring(dir)..&quot;;&quot;..&quot;SubDir&quot;..&quot;;&quot;..tostring(SubDir)..&quot;;&quot;..&quot;dirQty&quot;..&quot;;&quot;..tostring(dirQty), true)<br />			if dir == 1 then -- если заявка на ПОКУПКУ <br />				tShares &#91;sec_code&#93;&#91;&#39;PlacedL&#39;&#93; = tShares &#91;sec_code&#93;&#91;&#39;PlacedL&#39;&#93; + dirQty<br />				else -- если заявка на ПРОДАЖУ<br />				tShares &#91;sec_code&#93;&#91;&#39;PlacedS&#39;&#93; = tShares &#91;sec_code&#93;&#91;&#39;PlacedS&#39;&#93; - dirQty			<br />			end -- если заявка на покупку <br />			if pos.temp == false then -- если заявка на ВХОД<br />				tShares &#91;sec_code&#93;&#91;&#39;placedEnter&#39;&#93; = tShares &#91;sec_code&#93;&#91;&#39;placedEnter&#39;&#93; + dirQty<br />				else -- если заявка на ЗАКРЫТИЕ (temp = true, &quot;C&quot;)<br />				tShares &#91;sec_code&#93;&#91;&#39;placedClose&#39;&#93; = tShares &#91;sec_code&#93;&#91;&#39;placedClose&#39;&#93; + dirQty<br />			end -- если заявка на вход			 <br />			writeLog(&#39;fProcessReply&#39;..&quot;;&quot;..&quot;Change Balance&quot;..&quot;;&quot;..sec_code..&quot;;&quot;..&quot;dirQty&quot;..&quot;;&quot;..tostring(dirQty)..&quot;;&quot;..&quot;placedEnter&quot;..&quot;;&quot;..tostring(tShares &#91;sec_code&#93;&#91;&#39;placedEnter&#39;&#93;)..&quot;;&quot;..&quot;placedClose&quot;..&quot;;&quot;..tostring(tShares &#91;sec_code&#93;&#91;&#39;placedClose&#39;&#93;)..&quot;;&quot;..&quot;PlacedL&quot;..&quot;;&quot;..tostring(tShares &#91;sec_code&#93;&#91;&#39;PlacedL&#39;&#93;)..&quot;;&quot;..&quot;PlacedS&quot;..&quot;;&quot;..tostring(tShares &#91;sec_code&#93;&#91;&#39;PlacedS&#39;&#93;), true)<br />		end	<br />		writeLog(&#39;fProcessReply()&#39;..&quot;;&quot;..tostring(result), true)<br />		-- return result <br />end <br />
			<i>10.06.2020 15:26:20, Иван Ру.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message46138/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message46138/topic5497/</guid>
			<pubDate>Wed, 10 Jun 2020 15:26:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45705/topic5497/">Скрипт прекращает работу, а не должен</a></b> <i>Скрипт прекращает работу по непонятной причине, как ее выявить?</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_NWGTMLQM" href="/user/1889/" bx-tooltip-user-id="1889">Sergey Denegin</a>, <br />Приведите пример кода.<br />И уточните версию терминала на которой воспроизводится проблема. <br />
			<i>28.05.2020 13:24:57, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45705/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45705/topic5497/</guid>
			<pubDate>Thu, 28 May 2020 13:24:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45695/topic5497/">Скрипт прекращает работу, а не должен</a></b> <i>Скрипт прекращает работу по непонятной причине, как ее выявить?</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			а последнее время меня здесь на форуме научили пользоваться pcall, чтобы даже в случае ошибки скрипт не прекращал работу, а выдавал ошибку, но продолжал. Тоже удобно. <br />
			<i>28.05.2020 10:58:48, Sergey Denegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45695/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45695/topic5497/</guid>
			<pubDate>Thu, 28 May 2020 10:58:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45694/topic5497/">Скрипт прекращает работу, а не должен</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_TswcXSht" href="/user/82/" bx-tooltip-user-id="82">swerg</a> написал:<br />2) Либо произошла какая-то (любая) ошибка &nbsp;-&gt; тогда в окне скриптов гарантированно будет отображена ошибкаВерно? других вариантов нет? Точно нет?<br />=============<br />Одно время я очень долго бился над поиском одной ошибки, и вот где она была:<br /><br />Если некорректная операция, например деление на ноль, или например a = &quot;b&quot;..nil , совершается из функции main, то скрипт прекращает работу и выдает ошибку. Однако если такая же ошибка происходит из функции колбека (возможно не всех) но из тех, которые я использовал, например при изменении праметра инструмента, то скрипт просто останавливается, и ошибки никакой не выдает. <br /><br />Давно хотел написать об этой ошибке, чтобы ее странили. <br />Раз уж разговор зашел об этом, то прошу устранить данную ошибку. <br /><br />Для решения данной проблемы пришлось делать так, чтобы в функции колбека создавалось отложенное действие, а из main оно выполнялось. Тогда об ошибке сообщается <br />
			<i>28.05.2020 10:57:30, Sergey Denegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45694/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45694/topic5497/</guid>
			<pubDate>Thu, 28 May 2020 10:57:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45679/topic5497/">Скрипт прекращает работу, а не должен</a></b> <i>Скрипт прекращает работу по непонятной причине, как ее выявить?</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/17/" target="_blank" rel="nofollow"><B>Sergey Gorokhov</B></a></noindex>, скажите: я верно понимаю, что скрипт останавливается только в 2-х случаях:<br />1) Либо произошел корректный выход из main() -&gt; тогда в окне скриптов не будет ошибки (и других сообщений)<br />2) Либо произошла какая-то (любая) ошибка &nbsp;-&gt; тогда в окне скриптов гарантированно будет отображена ошибка<br /><br />Верно? других вариантов нет? Точно нет?<br /><br />Если так, то <noindex><a href="https://forum.quik.ru/user/2250/" target="_blank" rel="nofollow"><B>Иван Ру</B></a></noindex><B> </B>будет достаточно добавить логирование условия выхода из цикла main() и всё станет понятно. <br />
			<i>28.05.2020 08:04:42, swerg.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45679/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45679/topic5497/</guid>
			<pubDate>Thu, 28 May 2020 08:04:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45676/topic5497/">Скрипт прекращает работу, а не должен</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_q7dW0EmH" href="/user/2250/" bx-tooltip-user-id="2250">Иван Ру</a> написал:<br />Как в такой ситуации определить причину неожиданной остановки скрипта?<br /><br />=============<br /><br />Добавить в скрипт логирование всего, и по факту остановки смотреть что было последним. <br />
			<i>28.05.2020 07:18:53, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45676/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45676/topic5497/</guid>
			<pubDate>Thu, 28 May 2020 07:18:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Скрипт прекращает работу, а не должен</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45668/topic5497/">Скрипт прекращает работу, а не должен</a></b> <i>Скрипт прекращает работу по непонятной причине, как ее выявить?</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Давно использую скрипт, который работает без ограничения по времени (ночью комп не выключается, утром он обновляет настройки и продолжает работу - очень удобно). В теле main он &quot;бегает&quot; по циклу с определенной паузой.<br />В последнее время он стал самостоятельно спонтанно выключаться по непонятной причине. При этом логи показывают что функция OnStop не запускается, также в окне &quot;Доступные скрипты&quot; нет указания на какую либо ошибку работы скрипта. Соответствующее окно сообщений пусто. Единственная обнаруженная закономерность - работа прекращается после успешного выполнения транзакции по удалению заявки... (это частое действие и в большинстве случаев оно завершается без проблем...)<br />Как в такой ситуации определить причину неожиданной остановки скрипта? <br />
			<i>27.05.2020 23:22:08, Иван Ру.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45668/topic5497/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45668/topic5497/</guid>
			<pubDate>Wed, 27 May 2020 23:22:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
