<?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>Sun, 03 May 2026 11:32:04 +0300</pubDate>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55513/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_yyemfEeW" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/54/" target="_blank" rel="nofollow">Старатель</a></noindex> написал:<br />Нельзя в OnInit никаких ожиданий делать. Если данных нет, то они и не появятся пока из OnInit не выйдете.<br />=============<br /> Вы правы, не подумал об этом.<br />Да и основной поток ожиданиями напрягать тоже далеко не самая лучшая идея.<br />Благодарю.<br /><br /> <noindex><a href="https://forum.quik.ru/user/14478/" target="_blank" rel="nofollow">Sergey</a></noindex> , код из OnInit лучше перенести в main перед вечным циклом<br />=============<br />Хорошо <br />
			<i>08.05.2021 23:00:18, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55513/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55513/topic6445/</guid>
			<pubDate>Sat, 08 May 2021 23:00:18 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55512/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_wQEUOHho" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />Нельзя в OnInit никаких ожиданий делать. Если данных нет, то они и не появятся пока из OnInit не выйдете.<br />=============<br />Вы правы, не подумал об этом.<br />Да и основной поток ожиданиями напрягать тоже далеко не самая лучшая идея.<br />Благодарю.<br /><br /><noindex><a href="https://forum.quik.ru/user/14478/" target="_blank" rel="nofollow">Sergey</a></noindex>, код из OnInit лучше перенести в main перед вечным циклом <br />
			<i>08.05.2021 16:11:30, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55512/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55512/topic6445/</guid>
			<pubDate>Sat, 08 May 2021 16:11:30 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55511/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_EKTAYqWB" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br />Ждем загрузки данных по инструменту<br />=============<br /><S>Не нужно</S> Нельзя в OnInit никаких ожиданий делать. Если данных нет, то они и не появятся пока из OnInit не выйдете. <br />
			<i>08.05.2021 15:19:10, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55511/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55511/topic6445/</guid>
			<pubDate>Sat, 08 May 2021 15:19:10 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55506/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_bOOEXiZB" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br />Кстати, а в чем смысл для каждого инструмента искать class_code?<br />По мне лучше указывать явно нужные sec_code и class_code, и понадежнее будет, да и код станет проще.<br />=============<br />Сейчас пока так и сделал, сделал с явным указанием кода. Но пригодится это когда инструментов много и с разных рынков. На основании некоторых предварительных критериев формируются динамические списки по ним и затем уже читаются lua скриптом. BlaZed спасибо за помощь! <br />
			<i>08.05.2021 13:48:15, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55506/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55506/topic6445/</guid>
			<pubDate>Sat, 08 May 2021 13:48:15 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55505/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Кстати, а в чем смысл для каждого инструмента искать class_code?<br />По мне лучше указывать явно нужные sec_code и class_code, и понадежнее будет, да и код станет проще. <br />
			<i>08.05.2021 13:37:47, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55505/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55505/topic6445/</guid>
			<pubDate>Sat, 08 May 2021 13:37:47 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55504/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_R8JDfuAc" href="/user/14478/" bx-tooltip-user-id="14478">Sergey</a> написал:<br />Проблема в .class_code. На этих инструментах он выдает &quot;EQRP_INFO&quot; а должен возвращать &quot;TQBR&quot;<br />=============<br />Ну просто у вас существует два инструмента с одинаковым sec_code, но разными class_code<br />А функция getSecurityInfo возвращает данные по первому из найденных под заданные параметры инструменту<br />Надо для таких случаев явно указывать нужный class_code<br /><br />Если использовали мой код, то вот небольшие изменения<br />
====code====
<pre>ticker_list = {{"SiM1"},{"SiU1"},{"FIVE","TQBR"},{"TCSG","TQBR"}}
function OnInit()
&nbsp;&nbsp;if(isConnected()==1)then
&nbsp;&nbsp;&nbsp;&nbsp;for key,value in pairs(ticker_list) do --в цикле перебираем бумаги из ticker_list
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local n=10
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (getSecurityInfo((ticker_list&#91;key&#93;&#91;2&#93; or ""),ticker_list&#91;key&#93;&#91;1&#93;)==nil)and(n&#62;0) do sleep(1000) n=n-1 end -- Ждем загрузки данных по инструменту 10 секунд
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(n==0)then message("Инструмент "..ticker_list&#91;key&#93;&#91;1&#93;.." не найден") ticker_list&#91;key&#93;=nil break end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticker_list&#91;key&#93;&#91;2&#93;=getSecurityInfo((ticker_list&#91;key&#93;&#91;2&#93; or ""),ticker_list&#91;key&#93;&#91;1&#93;).class_code --получаем класс бумаги (TQBR,SPBFUT,CETS,ect.) по ее тикеру
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticker_list&#91;key&#93;&#91;3&#93;=CreateDataSource(ticker_list&#91;key&#93;&#91;2&#93;,ticker_list&#91;key&#93;&#91;1&#93;,iNterval) --создаем источник данных
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end
end

</pre>
============= <br />
			<i>08.05.2021 13:31:39, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55504/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55504/topic6445/</guid>
			<pubDate>Sat, 08 May 2021 13:31:39 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55490/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Вопрос по этому поводу задал здесь <noindex><a href="https://forum.quik.ru/forum10/topic6471/" target="_blank" rel="nofollow">https://forum.quik.ru/forum10/topic6471/</a></noindex> <br />
			<i>08.05.2021 00:36:23, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55490/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55490/topic6445/</guid>
			<pubDate>Sat, 08 May 2021 00:36:23 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55488/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Проблема в .class_code. На этих инструментах он выдает &quot;EQRP_INFO&quot; а должен возвращать &quot;TQBR&quot; <br />
			<i>07.05.2021 23:16:27, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55488/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55488/topic6445/</guid>
			<pubDate>Fri, 07 May 2021 23:16:27 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55487/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Но если сделать прямо:<br /><br />ticker=&quot;FIVE&quot; --код инструмента/бумаги<br />classcode=&quot;TQBR&quot; --код класса инструмента/бумаги, если нужен фондовый рынок - вводить TQBR вместо SPBFUT<br />iNterval=INTERVAL_D1 --таймфрейм<br /><br />и подставить все в:<br /><br />ds=CreateDataSource(classcode, ticker, iNterval ) --создаем источник данных<br /><br />в этом случае работает. <br /><br />Похоже ошибка либо в &nbsp;getSecurityInfo(), либо в методе &nbsp;.class_code <br />
			<i>07.05.2021 22:53:59, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55487/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55487/topic6445/</guid>
			<pubDate>Fri, 07 May 2021 22:53:59 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55485/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_pltF6kr0" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br />Ну и причесать код ...<br /><br /><br />=============<br />Есть очень необычная странность, для акций с приставкой -гдр. У меня не работает выгрузка, например если:<br />ticker_list = {{&quot;FIVE&quot;}, {&quot;TCSG&quot;}} <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7947&" width="711" height="195" /><br /><i>07.05.2021 22:33:50, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55485/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55485/topic6445/</guid>
			<pubDate>Fri, 07 May 2021 22:33:50 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55188/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/14523/" target="_blank" rel="nofollow">BlaZed</a></noindex> спасибо! Мне теперь разбираться и проверять на пару дней. &nbsp; <br />
			<i>29.04.2021 21:16:15, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55188/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55188/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 21:16:15 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55186/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Ну и причесать код бы не помешало, а то смотреть больно<br />вместо
====code====
<pre>sTime=os.time(T)
datetime=os.date("!*t",sTime)
out_file:write(tostring(datetime.year)..tostring(strText(datetime.month))..tostring(strText(datetime.day))..","..tostring(strText(datetime.hour + corrTime))..tostring(strText(datetime.min))..tostring(strText(datetime.sec))..","..tostring(O)..","..tostring(H)..","..tostring(L)..","..tostring(C)..","..tostring(V).."&#92;n")</pre>
=============
то же самое, только в нормальном виде<br />
====code====
<pre>datetime=os.date("!*t",os.time(T)+corrTime*3600)
out_file:write(string.format("%04d%02d%02d,%02d%02d%02d,%s,%s,%s,%s,%s&#92;n",datetime.year,datetime.month,datetime.day,datetime.hour,datetime.min,datetime.sec,O,H,L,C,V))</pre>
=============
и функция strText() как бы нафиг не нужна, ее возможности есть в string.format() <br />
			<i>29.04.2021 21:07:10, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55186/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55186/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 21:07:10 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55184/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ULXrYj5k" href="/user/14478/" bx-tooltip-user-id="14478">Sergey</a> написал:<br />Вариант вынести все в OnInit()? Но ведь там тоже нет гарантии что переменная classcode успеет записаться сразу после инициализации скрипта, даже при условии проверки соединения и не вылетит с ошибкой<br />=============<br />Именно вариант с OnInit() в данном случае самый надежный, надо всего лишь добавить парочку дополнительных проверок.<br /><br />Смотрите<br /><br />во первых, меняем ticker_list, делаем его двухуровневым массивом
====code====
<pre>ticker_list = {{"EUR_RUB__TOM"},{"USD000UTSTOM"},{"SiM1"},{"SiU1"}}</pre>
=============
во-вторых, переносим все одноразовые предварительные вычисления в OnInit(), данные скидываем в массив, сюда же добавляем дополнительные проверки<br />
====code====
<pre>function OnInit()
&nbsp;&nbsp;if(isConnected()==1)then
&nbsp;&nbsp;&nbsp;&nbsp;for key,value in pairs(ticker_list) do --в цикле перебираем бумаги из ticker_list
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(getSecurityInfo("",ticker_list&#91;key&#93;&#91;1&#93;)==nil)do sleep(100) end -- Ждем загрузки данных по инструменту
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticker_list&#91;key&#93;&#91;2&#93;=getSecurityInfo("",ticker_list&#91;key&#93;&#91;1&#93;).class_code --получаем класс бумаги (TQBR,SPBFUT,CETS,ect.) по ее тикеру
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticker_list&#91;key&#93;&#91;3&#93;=CreateDataSource(ticker_list&#91;key&#93;&#91;2&#93;,ticker_list&#91;key&#93;&#91;1&#93;,iNterval) --создаем источник данных
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end
end</pre>
=============
в-третьих, убираем ненужные вычисления из main(), а данные берем из массива, который заполнили в OnInit()<br />
====code====
<pre>function main()
&nbsp;&nbsp;while is_run do
&nbsp;&nbsp;&nbsp;&nbsp;for key,value in pairs(ticker_list) do --в цикле перебираем бумаги из ticker_list
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instrument=value&#91;1&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classcode=value&#91;2&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds=value&#91;3&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(ds:Size()==0) do sleep(100) end -- Ждем загрузки данных графика
--ТУТ ВАШ КОД--
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;sleep(3000)&nbsp;&nbsp; -- приостановка на 3 секунды
&nbsp;&nbsp;end
end</pre>
=============
<br />Примерно так.<br />Думаю должно работать без ошибок <br />
			<i>29.04.2021 20:34:50, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55184/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55184/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 20:34:50 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55183/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_jG9S0rvn" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/14478/" target="_blank" rel="nofollow">Sergey</a></noindex> написал:<br />classcode не глобальная - локальная в цикле for<br />=============<br /> Неа, она у вас именно глобальная. Обратитесь из любой другой функции к переменной classcode и удивитесь.<br /><br /> <br />====quote====<br /><noindex><a href="/user/14478/" target="_blank" rel="nofollow">Sergey</a></noindex> написал:<br />попробуйте сами:<br />=============<br /> Не согласен, так же как и раньше выдаст ошибку на строчке<br /> 
====code====
<pre>&nbsp;&nbsp;classcode =&nbsp;&nbsp;getSecurityInfo ( "" ,instrument).class_code&nbsp;&nbsp;</pre>
=============
 и до проверки classcode==nil просто не дойдет<br /><br />Тут дело в том, что ошибка плавающая, и будет появляться если удачно совпадет момент чтения данных из getSecurityInfo с моментом подключения к серверу, когда старые данные уже удалились, но еще не загрузились новые.<br />При вашем sleep(3000) это может быть, ну скажем 1 раз из 10 раз, а поставьте sleep(100), так сразу увидите, что ошибка никуда не делась.<br />=============<br />Похоже что вы правы, без sleep() вылетает сразу. Вариант вынести все в OnInit()? Но ведь там тоже нет гарантии что переменная classcode успеет записаться сразу после инициализации скрипта, даже при условии проверки соединения и не вылетит с ошибкой <br />
			<i>29.04.2021 19:45:53, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55183/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55183/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 19:45:53 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55181/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_e09fv0np" href="/user/14478/" bx-tooltip-user-id="14478">Sergey</a> написал:<br />classcode не глобальная - локальная в цикле for<br />=============<br />Неа, она у вас именно глобальная. Обратитесь из любой другой функции к переменной classcode и удивитесь.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_CQuyKhOS" href="/user/14478/" bx-tooltip-user-id="14478">Sergey</a> написал:<br />попробуйте сами:<br />=============<br />Не согласен, так же как и раньше выдаст ошибку на строчке<br />
====code====
<pre>classcode=getSecurityInfo("",instrument).class_code</pre>
=============
и до проверки classcode==nil просто не дойдет<br /><br />Тут дело в том, что ошибка плавающая, и будет появляться если удачно совпадет момент чтения данных из getSecurityInfo с моментом подключения к серверу, когда старые данные уже удалились, но еще не загрузились новые.<br />При вашем sleep(3000) это может быть, ну скажем 1 раз из 10 раз, а поставьте sleep(100), так сразу увидите, что ошибка никуда не делась. <br />
			<i>29.04.2021 18:03:41, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55181/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55181/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 18:03:41 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55180/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			попробуйте сами:<br />function main()<br />....while is_run do<br />....sleep(3000)<br />........for key, instrument in pairs(ticker_list) do<br />............classcode=getSecurityInfo(&quot;&quot;,instrument).class_code<br />............if classcode~=nil then <br />................тут без изменений<br /><br />............end<br />........end<br />....end<br />end <br />
			<i>29.04.2021 16:55:49, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55180/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55180/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 16:55:49 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55178/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_2GVDbMK6" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/14478/" target="_blank" rel="nofollow">Sergey</a></noindex> написал:<br />Сейчас работает надежно, независимо от &nbsp;коннекта к серверу:<br />=============<br /> Ну как вам сказать... скрипт ругался на невозможность получить getSecurityInfo(&quot;&quot;,instrument).class_code<br /><br /><br /> <br />====quote====<br /><noindex><a href="/user/14478/" target="_blank" rel="nofollow">Sergey</a></noindex> написал:<br />if classcode~=nil then<br />=============<br /> Такая проверка не поможет, ибо classcode у вас глобальная и после первой же итерации всегда будет не nil если инструмент существует, и по такому условию просто каждую итерацию скрипт будет пропускать<br />=============<br />classcode не глобальная - локальная в цикле for <br />
			<i>29.04.2021 16:40:20, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55178/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55178/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 16:40:20 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55175/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_CiIAY25U" href="/user/14478/" bx-tooltip-user-id="14478">Sergey</a> написал:<br />Сейчас работает надежно, независимо от &nbsp;коннекта к серверу:<br />=============<br />Ну как вам сказать... скрипт ругался на невозможность получить getSecurityInfo(&quot;&quot;,instrument).class_code<br /><br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_YMLq8Txy" href="/user/14478/" bx-tooltip-user-id="14478">Sergey</a> написал:<br />if classcode~=nil then<br />=============<br />Такая проверка не поможет, ибо classcode у вас глобальная и после первой же итерации всегда будет не nil если инструмент существует, и по такому условию просто каждую итерацию скрипт будет пропускать <br />
			<i>29.04.2021 16:20:53, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55175/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55175/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 16:20:53 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55171/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			В общем, если у кого вдруг похожая проблема, решение банальное - проверкой на nil. Сейчас работает надежно, независимо от &nbsp;коннекта к серверу:<br />while do<br />....if classcode~=nil then<br />........body<br /><br />....end<br />end<br />Отдельное спасибо <noindex><a href="https://forum.quik.ru/user/14523/" target="_blank" rel="nofollow">BlaZed</a></noindex>, за то, что натолкнул на мысли <br />
			<i>29.04.2021 14:27:47, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55171/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55171/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 14:27:47 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55170/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Все таки if (isConnected () == &nbsp;1) then работает через раз, все-таки не показалось. Долго работало нормально, а сегодня после очередного дисконнекта скрипт снова отвалился, с той же ошибкой в 27 строке - nil . Сорри за столько сообщений, но я не нашел как редактировать или удалить написанные сообщения <br />
			<i>29.04.2021 13:49:48, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55170/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55170/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 13:49:48 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55160/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_zTSftczQ" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br />Ну или можно обернуть в проверку соединения<br />=============<br />Забираю свои слова обратно, это работает. Хотя странно повело по началу, наверное мне показалось <br />
			<i>29.04.2021 07:26:59, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55160/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55160/topic6445/</guid>
			<pubDate>Thu, 29 Apr 2021 07:26:59 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55155/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Я заметил, что classcode=getSecurityInfo(&quot;&quot;,instrument).class_code может быть nill даже когда связь установлена, вероятно не успевают загрузиться данные getSecurityInfo().<br />В init тоже не вариант..<br />Здесь бы очень подошло что-то вроде try-exeptions как в python, но я не знаю пока как это делать на lua <br />
			<i>28.04.2021 23:03:03, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55155/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55155/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 23:03:03 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55154/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_w3uk6SYT" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br />Ну или можно обернуть в проверку соединения<br />=============<br />Эта конструкция не сработала. Попробую первый вариант, вынести &#39;classcode (а так же out_file и ds)&#39; в OnInit() <br />
			<i>28.04.2021 22:38:52, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55154/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55154/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 22:38:52 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55153/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_7uBloQSx" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br />Ну или можно обернуть в проверку соединения 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; main ()
&nbsp;&nbsp; while&nbsp;&nbsp;is_run&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp; if ( isConnected () =&nbsp;&nbsp;=&nbsp;&nbsp;1 ) then 
 --- ТУТ ВАШ КОД -- 
&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp; sleep ( 3000 )
&nbsp;&nbsp; end 
 end&nbsp;&nbsp; </pre>
=============
 но код вам явно причесать не помешало бы, слишком много ненужных повторов действий<br />=============<br />Благодарю за отклик и скорую помощь! Сделаю как вы советуете. <br />
			<i>28.04.2021 22:12:48, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55153/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55153/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 22:12:48 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55152/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Ну или можно обернуть в проверку соединения
====code====
<pre>function main()
&nbsp;&nbsp;while is_run do
&nbsp;&nbsp;&nbsp;&nbsp;if(isConnected()==1)then
--- ТУТ ВАШ КОД --
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;sleep(3000)
&nbsp;&nbsp;end
end</pre>
=============
но код вам явно причесать не помешало бы, слишком много ненужных повторов действий <br />
			<i>28.04.2021 21:33:09, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55152/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55152/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 21:33:09 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55151/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			При потере связи скрипт ругается на строчку<br />
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classcode=getSecurityInfo("",instrument).class_code --получаем класс бумаги (TQBR,SPBFUT,CETS,ect.) по ее тикеру</pre>
=============
и вываливается с ошибкой
====code====
<pre>C:&#92;Scripts&#92;Testers&#92;1.lua:27: attempt to index a nil value</pre>
=============
Я же спрашивал выдает ли скрипт какую ошибку... а говорите что молча останавливается<br /><br />Тут решение сразу же напрашивается такое.<br />Вынести расчет classcode (а так же out_file и ds) за пределы бесконечного цикла с проверкой наличия соединения isConnected(), и поместить в массив, а в цикле уже брать значения из массива.<br />Нет никакого смысла каждый раз их заново находить, достаточно одного раза. <br />
			<i>28.04.2021 21:24:33, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55151/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55151/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 21:24:33 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55149/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			2. Если вручную переподключить соединение с интернетом, так же останавливается. После ручного запуска - работает до ручной остановки или переподключения интернета <br />
			<i>28.04.2021 20:02:41, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55149/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55149/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 20:02:41 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55148/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_OEb6paWG" href="/user/14523/" bx-tooltip-user-id="14523">BlaZed</a> написал:<br />Скрипт не должен завершаться при разрыве соединения, если, конечно, это специально не реализовано.<br /><br />Поэтому возникают следующие вопросы:<br />1) Скрипт молча останавливается или ошибку какую выдает?<br />2) Если вручную переподключиться, скрипт остановится?<br />3) Если ли в скрипте колбеки onConnected, onDisconnected, onCleanUp? Если есть, то что в них?<br />4) Используется ли проверка подключеия isConnected? Если используется, то как именно?<br /><br />В идеале показали бы скрипт, предварительно удалив из него то, что считаете ком.тайной.<br />=============<br />1. Останавливается без ошибок<br />2. Работает<br />3. Нет<br />4. Нет<br /><br />-- параметры<br />is_run=true<br />ticker_list = {&quot;EUR_RUB__TOM&quot;, &quot;USD000UTSTOM&quot;}<br />iNterval=INTERVAL_M15<br />corrTime=3<br />pFile=&quot;C:\\QUIK\\script\\&quot;<br />cBars=1<br /><br />--настройка параметров<br />function strText(int)<br />	local m=tostring(int)<br />	local mLen=string.len(int)<br /><br />	if mLen==1 then<br />		Output=&quot;0&quot; ..tostring(m)<br />	else Output=m<br />	end<br />	return Output<br />end<br /><br /><br />function main()<br />while is_run do<br />		for key, instrument in pairs(ticker_list) do --в цикле перебираем бумаги из ticker_list<br />			classcode=getSecurityInfo(&quot;&quot;,instrument).class_code --получаем класс бумаги (TQBR,SPBFUT,CETS,ect.) по ее тикеру<br />			out_file=io.open(pFile..instrument..&quot;.csv&quot;,&quot;w&quot;) --открываем с режимом для перезаписи<br />			<br />			ds=CreateDataSource(classcode, instrument, iNterval ) --создаем источник данных<br />			ds:SetUpdateCallback(NewChartData) --обновление последних данных (NewChartData)<br />			local Size=ds:Size()<br />			if Size&gt;0 then<br />		<br />				if cBars&gt;Size then<br />					cBars=Size-1<br />				end<br />				<br />				out_file:write(&quot;&lt;DATE&gt;,&lt;TIME&gt;,&lt;OPEN&gt;,&lt;HIGH&gt;,&lt;LOW&gt;,&lt;CLOSE&gt;,&lt;VOL&gt;\n&quot;) -- записываем название колонок<br />				<br />				for i=Size-cBars, Size, 1 do<br />					local O=ds:O(i) <br />					local H=ds:H(i)<br />					local L=ds:L(i)<br />					local C=ds:C(i)<br />					local V=ds:V(i)<br />					local T=ds:T(i)<br /><br />					sTime=os.time(T)<br />					datetime=os.date(&quot;!*t&quot;,sTime)<br /><br />					--вывод в файл<br />					out_file:write(tostring(datetime.year)..tostring(strText(datetime.month))..tostring(strText(datetime.day))..&quot;,&quot;..tostring(strText(datetime.hour + corrTime))..tostring(strText(datetime.min))..tostring(strText(datetime.sec))..&quot;,&quot;..tostring(O)..&quot;,&quot;..tostring(H)..&quot;,&quot;..tostring(L)..&quot;,&quot;..tostring&#169;..&quot;,&quot;..tostring(V)..&quot;\n&quot;)<br />					out_file:flush() --сохраняем изменения					<br />				end<br />				out_file:close() --закрываем файл<br />			end<br />		end<br />		sleep(3000) &nbsp; -- приостановка на 3 секунды<br />	end<br />end <br />
			<i>28.04.2021 19:59:24, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55148/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55148/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 19:59:24 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55147/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Скрипт не должен завершаться при разрыве соединения, если, конечно, это специально не реализовано.<br /><br />Поэтому возникают следующие вопросы:<br />1) Скрипт молча останавливается или ошибку какую выдает?<br />2) Если вручную переподключиться, скрипт остановится?<br />3) Если ли в скрипте колбеки onConnected, onDisconnected, onCleanUp? Если есть, то что в них?<br />4) Используется ли проверка подключеия isConnected? Если используется, то как именно?<br /><br />В идеале показали бы скрипт, предварительно удалив из него то, что считаете ком.тайной. <br />
			<i>28.04.2021 19:43:36, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55147/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55147/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 19:43:36 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
		<item>
			<title>Ошибка скрипта после переподключения</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum1/message55142/topic6445/">Ошибка скрипта после переподключения</a></b> в форуме <a href="http://forum.quik.ru/forum1/">Система QUIK</a>. <br />
			Использую мобильный интернет для торговли. После потери соединения Quik 8.11 начинает переподключаться. После переподключения останавливается скрипт и запускается только руками.<br />Все расчеты в <br />is_run = True<br />function main()<br />....while is_run do<br />...<br />end<br /><br />Функцию OnStop() не использую, пробовал с ней, результат такой-же.<br />function OnStop()<br />....is_run = false<br />end<br /><br />Подскажите проблему. &nbsp; <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7915&" width="748" height="488" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7916&" width="1478" height="658" /><br /><i>28.04.2021 17:13:49, Sergey.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum1/message55142/topic6445/</link>
			<guid>http://forum.quik.ru/messages/forum1/message55142/topic6445/</guid>
			<pubDate>Wed, 28 Apr 2021 17:13:49 +0300</pubDate>
			<category>Система QUIK</category>
		</item>
	</channel>
</rss>
