<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: SetUpdateCallback - не срабатывает после первого запуска скрипта]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме SetUpdateCallback - не срабатывает после первого запуска скрипта форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 20 May 2026 10:38:37 +0300</pubDate>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67093/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_1AXmFMH3" href="/user/1717/" bx-tooltip-user-id="1717">Kolossi</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/15613/" target="_blank" rel="nofollow">Quikos</a></noindex> написал:<br /> &nbsp;<br />====quote====<br /> <noindex><a href="/user/1717/" target="_blank" rel="nofollow">Kolossi</a></noindex> &nbsp;написал:<br /> Как и повода жаловаться на &nbsp;SetUpdateCallback.<br />=============<br /> &nbsp;Хотите сказать - у Вас описываемого мной косяка разрабов не наблюдается ?<br />=============<br /> Нет не наблюдается. Просто может быть потому что я сразу подстраховался и забил. Жалко времени на это тратить.<br />Реальная функция из скрипта, была написана на ранних версиях квика и с тех пор не трогалась: <br /> &nbsp;Полагаю счетчик и повтор решили возможную проблему.<br />=============<br />С вероятностью 99,9% - Вы просто ее не замечаете, так как она наблюдается именно сразу после запуска Квика и после Первого запуска скрипта, на второй, третий и последующий разы - данная пробелма не наблюдается до тех пор пока Вы не перезапустите Квик заново.<br /><br />При этом разработчики - собаки сутулые - в течении годов ничего с этим не делают. <br />
			<i>24.11.2022 11:56:47, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67093/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67093/topic7771/</guid>
			<pubDate>Thu, 24 Nov 2022 11:56:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67092/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_cSj6cGav" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />поправил код скрипта 
====code====
<pre>&nbsp;&nbsp; local&nbsp;&nbsp;code_class1&nbsp;&nbsp;=&nbsp;&nbsp; "TQBR" 
 local&nbsp;&nbsp;code_paper1&nbsp;&nbsp;=&nbsp;&nbsp; "GAZP" 
 local&nbsp;&nbsp;interval1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;INTERVAL_TICK
 local&nbsp;&nbsp;code_class2&nbsp;&nbsp;=&nbsp;&nbsp; "TQBR" 
 local&nbsp;&nbsp;code_paper2&nbsp;&nbsp;=&nbsp;&nbsp; "SBER" 
 local&nbsp;&nbsp;interval2&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;INTERVAL_TICK
 ------------------------ 
 local&nbsp;&nbsp; function&nbsp;&nbsp; my_cb_CDS (idx,tabl)
 message (tostring(tabl.sec) .. "," .. tostring(idx), 1 )
Sleep( 100 );
 end 
 -----------------------------------------------------------------------------------------------------------int main:----------------------------------------------------------------------------------------------------- 
 function&nbsp;&nbsp; main ()
&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;&nbsp; not&nbsp;&nbsp;stopped&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;tab1 =&nbsp;&nbsp;=&nbsp;&nbsp;nil&nbsp;&nbsp; then&nbsp;&nbsp;tab1&nbsp;&nbsp;=&nbsp;&nbsp; CreateDataSource (code_class1, code_paper1, interval1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;tab1&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tab1.clas = code_class1; tab1.sec = code_paper1; tab1.int = interval1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tab1: SetUpdateCallback ( function (idx) my_cb_CDS(idx,tab1)&nbsp;&nbsp;end )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;end 
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp; tab2 =&nbsp;&nbsp;=&nbsp;&nbsp;nil&nbsp;&nbsp; then&nbsp;&nbsp;tab2 =&nbsp;&nbsp; CreateDataSource (code_class2, code_paper2, interval2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; tab2&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tab2.clas = code_class2; tab2.sec = code_paper2; tab2.int = interval2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tab2: SetUpdateCallback (&nbsp;&nbsp;function (idx) my_cb_CDS(idx, tab2)&nbsp;&nbsp;end )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;end 
 ------------------------- 
 --&nbsp;&nbsp; message(tostring(my_table1:Size()),1) 
&nbsp;&nbsp;&nbsp;&nbsp;sleep ( 1000 )
&nbsp;&nbsp;&nbsp;&nbsp;end 
 ------------------------- 
 end&nbsp;&nbsp; -- end main() 
 function&nbsp;&nbsp; OnInit (script_path)
 end 

&nbsp;&nbsp;</pre>
=============
 <br />=============<br />Данный код так же Не работает с Первого раза, ТОЛЬКО со Второго раза. <br />
			<i>24.11.2022 11:54:31, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67092/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67092/topic7771/</guid>
			<pubDate>Thu, 24 Nov 2022 11:54:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67086/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_dykqqUHn" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> В квике можно создавать сколько угодно потоков<br />При этом надо использовать общий глобальный стек. <br />В нем решены проблемы синхронизации для main и для любых других.<br />----------------<br />я приводил пример &nbsp;с пулом потоков<br />Использовал его для обработки колбеков по 200 инструментов.<br />в итоге максимальное количество потоков которые были открыты пулом составило 12.<br />Никаких проблем с синхронизацией не было.<br />=============<br /> Спасибо, посмотрю. Однако сейчас уже это не совсем актуально поскольку каждый скрипт и есть отдельный поток, а переменные между скриптами можно передавать через общее пространство переменных. &nbsp;Жаль только что нет возможности запускать дерево скриптов. <br />
			<i>24.11.2022 09:55:02, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67086/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67086/topic7771/</guid>
			<pubDate>Thu, 24 Nov 2022 09:55:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67085/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_rvnCv74L" href="/user/15613/" bx-tooltip-user-id="15613">Quikos</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/1717/" target="_blank" rel="nofollow">Kolossi</a></noindex> написал:<br /> Как и повода жаловаться на &nbsp;SetUpdateCallback.<br />=============<br /> Хотите сказать - у Вас описываемого мной косяка разрабов не наблюдается ?<br />=============<br />Нет не наблюдается. Просто может быть потому что я сразу подстраховался и забил. Жалко времени на это тратить.<br />Реальная функция из скрипта, была написана на ранних версиях квика и с тех пор не трогалась:
====code====
<pre>function GetDS(p) -- функция закачки&nbsp;&nbsp;данных
&nbsp;&nbsp;&nbsp;local error_desc=""
&nbsp;&nbsp;&nbsp;if p==1 then -- дневные
...
&nbsp;&nbsp;&nbsp;elseif p==2 then -- тиковые
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsa,error_desc=CreateDataSource(p_classcode, trw.p_seccode, INTERVAL_TICK)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while not dsa or dsa:Size()==0 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local n=100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while n&#62;0 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dsa and dsa:Size()&#62;0 then break end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n=n-1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not dsa or dsa:Size()==0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsa,error_desc=CreateDataSource(p_classcode, trw.p_seccode, INTERVAL_TICK) -- повтор 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if error_desc~=nil and error_desc~="" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("TICK, "..p_classcode.."/"..trw.p_seccode.."/".."Source2 error==&#62;" .. error_desc)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsa:SetEmptyCallback()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &nbsp;&nbsp;&nbsp;dsa:Size()

&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0
&nbsp;&nbsp;&nbsp;end
end
</pre>
=============
 Полагаю счетчик и повтор решили возможную проблему. <br />
			<i>24.11.2022 09:50:01, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67085/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67085/topic7771/</guid>
			<pubDate>Thu, 24 Nov 2022 09:50:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67073/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_X2YmfnuI" href="/user/1717/" bx-tooltip-user-id="1717">Kolossi</a> написал:<br /> Как и повода жаловаться на &nbsp;SetUpdateCallback.<br />=============<br />Хотите сказать - у Вас описываемого мной косяка разрабов не наблюдается ? <br />
			<i>23.11.2022 19:30:15, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67073/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67073/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 19:30:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67072/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4j3zVrvc" href="/user/1717/" bx-tooltip-user-id="1717">Kolossi</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/3132/" target="_blank" rel="nofollow">Nikolay</a></noindex> написал:<br /> Не лучшее решение, оно блокирует исполнение кода. Запросы где время ответа неизвестно, лучше решать через очереди задач ожидания. Потоков в lua нет, но, как минимум, не блокировать весь код. Если, например, скрипт обрабатывает много инструментов и потоков данных, то ждать после каждого заказа - много времени пройдет пока до последнего дойдет. Или надо что-то другое постоянно контролировать, пока по другому инструменту заказ сделали. То что долго идет ответ - это не повод для уже работающих инструментов ждать.<br />=============<br /> Не от хорошей жизни, данные не всегда успевают. &nbsp;Поскольку, как вы заметили, потоков в луа нет, пришлось на каждый инструмент(тикер) сделать по скрипту. Ну а в отдельном скрипте без базы никаких задач нет.<br />К стати, пока ни при какой нагрузке ожидание начала загрузки больше секунды-двух не встретил, а базы подгружается в основном либо при запуске, либо на открытии сессии. &nbsp;Как и повода жаловаться на &nbsp;SetUpdateCallback. Хотя в основном как колбэк используется OnAllTrade, база больше для расчетов.<br />=============<br />В квике можно создавать сколько угодно потоков<br />При этом надо использовать общий глобальный стек. <br />В нем решены проблемы синхронизации для main и для любых других.<br />----------------<br />я приводил пример &nbsp;с пулом потоков<br />Использовал его для обработки колбеков по 200 инструментов.<br />в итоге максимальное количество потоков которые были открыты пулом составило 12.<br />Никаких проблем с синхронизацией не было. <br />
			<i>23.11.2022 18:36:32, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67072/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67072/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 18:36:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67071/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_nD34JYJB" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br /> Не лучшее решение, оно блокирует исполнение кода. Запросы где время ответа неизвестно, лучше решать через очереди задач ожидания. Потоков в lua нет, но, как минимум, не блокировать весь код. Если, например, скрипт обрабатывает много инструментов и потоков данных, то ждать после каждого заказа - много времени пройдет пока до последнего дойдет. Или надо что-то другое постоянно контролировать, пока по другому инструменту заказ сделали. То что долго идет ответ - это не повод для уже работающих инструментов ждать.<br />=============<br />Не от хорошей жизни, данные не всегда успевают. &nbsp;Поскольку, как вы заметили, потоков в луа нет, пришлось на каждый инструмент(тикер) сделать по скрипту. Ну а в отдельном скрипте без базы никаких задач нет.<br />К стати, пока ни при какой нагрузке ожидание начала загрузки больше секунды-двух не встретил, а базы подгружается в основном либо при запуске, либо на открытии сессии. &nbsp;Как и повода жаловаться на &nbsp;SetUpdateCallback. Хотя в основном как колбэк используется OnAllTrade, база больше для расчетов. <br />
			<i>23.11.2022 18:10:30, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67071/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67071/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 18:10:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67067/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_YcG0KSbx" href="/user/15613/" bx-tooltip-user-id="15613">Quikos</a> написал:<br />Я правильно понял, что нужно дождаться пока появится таблица заполнится и только потом вызвать SetUpdateCallback ?<br />=============<br />я в настоящее время не использую тики,<br />Но для таблице обезличенных сделок (тиков) я сделал DDE клиента который стартует всегда при загрузки квика<br />и позволяет получать в фоновом режиме любые таблицы квика , например доску опционов, или таблицу обезличенных сделок.<br />--------------<br />еще использовал колбек onAllTrade , тоже работает нормально. <br />
			<i>23.11.2022 14:49:23, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67067/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67067/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 14:49:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67066/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_YRYFIrMk" href="/user/1717/" bx-tooltip-user-id="1717">Kolossi</a> написал:<br />Пардон, очепятка<br /><br />while not ds or ds:Size()==0 do<br />				sleep(50)<br />			end<br /><br />Ну еще счетчик циклов для повторной попытки загрузки<br />=============<br />в приведенном выше скрипте эта проблема решается циклом <br />там же записываются доп параметры в таблицу ds <br />
			<i>23.11.2022 14:44:29, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67066/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67066/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 14:44:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67064/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_LA2OR5bC" href="/user/1717/" bx-tooltip-user-id="1717">Kolossi</a> написал:<br />Пардон, очепятка<br /><br />while not ds or ds:Size()==0 do<br />				sleep(50)<br />			end<br /><br />Ну еще счетчик циклов для повторной попытки загрузки<br />=============<br />Не лучшее решение, оно блокирует исполнение кода. Запросы где время ответа неизвестно, лучше решать через очереди задач ожидания. Потоков в lua нет, но, как минимум, не блокировать весь код. Если, например, скрипт обрабатывает много инструментов и потоков данных, то ждать после каждого заказа - много времени пройдет пока до последнего дойдет. Или надо что-то другое постоянно контролировать, пока по другому инструменту заказ сделали. То что долго идет ответ - это не повод для уже работающих инструментов ждать. <br />
			<i>23.11.2022 14:35:38, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67064/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67064/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 14:35:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67062/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Пардон, очепятка<br /><br />while not ds or ds:Size()==0 do<br />				sleep(50)<br />			end<br /><br />Ну еще счетчик циклов для повторной попытки загрузки <br />
			<i>23.11.2022 14:18:56, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67062/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67062/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 14:18:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67061/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я после ds=CreateDataSource(...) ставлю<br /><br />while ds:Size()&gt;0 do<br /> sleep(50)<br />end<br />И следом назначение колбэка <br />
			<i>23.11.2022 14:13:15, Kolossi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67061/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67061/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 14:13:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67051/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я правильно понял, что нужно дождаться пока появится таблица заполнится и только потом вызвать SetUpdateCallback ? <br />
			<i>23.11.2022 00:15:53, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67051/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67051/topic7771/</guid>
			<pubDate>Wed, 23 Nov 2022 00:15:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67050/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_EbDgJa8a" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Переписал Ваш скрипт ,<br /> но действительно,<br /> если таблица обезличенных сделок не открыта, <br />то руками запускается со второго раза,<br /> а автоматом - с первого. &nbsp;<br />Очевидно это какая-то особенность или ошибка библиотеки &nbsp;QLUA.<br /> &nbsp;<br />=============<br />Причем для некоторых акций - запускается с первого раза, а для некоторых со второго. &nbsp;Навряд ли такое поведение можно называть &quot;особенностью&quot; - это явный косяк. <br />
			<i>22.11.2022 23:46:27, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67050/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67050/topic7771/</guid>
			<pubDate>Tue, 22 Nov 2022 23:46:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67044/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			поправил код скрипта
====code====
<pre>local code_class1 = "TQBR"
local code_paper1 = "GAZP"
local interval1&nbsp;&nbsp; = INTERVAL_TICK
local code_class2 = "TQBR"
local code_paper2 = "SBER"
local interval2&nbsp;&nbsp; = INTERVAL_TICK
------------------------
local function my_cb_CDS(idx,tabl)
message(tostring(tabl.sec)..","..tostring(idx),1)
Sleep(100);
end
-----------------------------------------------------------------------------------------------------------int main:-----------------------------------------------------------------------------------------------------
function main()
&nbsp;&nbsp;&nbsp;while not stopped do
&nbsp;&nbsp;&nbsp;if tab1==nil then tab1 = CreateDataSource(code_class1, code_paper1, interval1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if tab1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tab1.clas=code_class1; tab1.sec=code_paper1; tab1.int=interval1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab1:SetUpdateCallback(function(idx) my_cb_CDS(idx,tab1) end)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;tab2==nil then tab2= CreateDataSource(code_class2, code_paper2, interval2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;tab2 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab2.clas=code_class2; tab2.sec=code_paper2; tab2.int=interval2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab2:SetUpdateCallback( function(idx) my_cb_CDS(idx, tab2) end)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
-------------------------
--&nbsp;&nbsp;&nbsp;message(tostring(my_table1:Size()),1)
&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;end
-------------------------
end -- end main()
function OnInit(script_path)
end

</pre>
============= <br />
			<i>22.11.2022 18:34:35, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67044/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67044/topic7771/</guid>
			<pubDate>Tue, 22 Nov 2022 18:34:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67043/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Переписал Ваш скрипт ,<br /> но действительно,<br /> если таблица обезличенных сделок не открыта, <br />то руками запускается со второго раза,<br /> а автоматом - с первого. &nbsp;<br />Очевидно это какая-то особенность или ошибка библиотеки &nbsp;QLUA.<br />
====code====
<pre>local code_class1 = "TQBR"
local code_paper1 = "GAZP"
local interval1&nbsp;&nbsp; = INTERVAL_TICK
local code_class2 = "TQBR"
local code_paper2 = "SBER"
local interval2&nbsp;&nbsp; = INTERVAL_TICK
------------------------
local function my_cb_CDS(idx,tabl)
message(tostring(tabl.sec)..","..tostring(idx),1)
Sleep(100);
end
--------int main:---------------
function main()
&nbsp;&nbsp;&nbsp;if tab1==nil then tab1 = CreateDataSource(code_class1, code_paper1, interval1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if tab1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tab1.clas=code_class1; tab1.sec=code_paper1; tab1.int=interval1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab1:SetUpdateCallback(function(idx) my_cb_CDS(idx,tab1) end)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;tab2==nil then tab2= CreateDataSource(code_class2, code_paper2, interval2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;tab2 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab2.clas=code_class2; tab2.sec=code_paper2; tab2.int=interval2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab2:SetUpdateCallback( function(idx) my_cb_CDS(idx, tab2) end)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
-------------------------
&nbsp;&nbsp;&nbsp;while not stopped do
--&nbsp;&nbsp;&nbsp;message(tostring(my_table1:Size()),1)
&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;end
-------------------------
end -- end main()
function OnInit(script_path)
end

</pre>
============= <br />
			<i>22.11.2022 18:31:54, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67043/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67043/topic7771/</guid>
			<pubDate>Tue, 22 Nov 2022 18:31:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67038/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_QDTu8QHY" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/15613/" target="_blank" rel="nofollow">Quikos</a></noindex> написал:<br /> &nbsp;<br />====quote====<br /> <noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> &nbsp;написал:<br /> &nbsp;Скрипт запускаете руками или автоматом с запуском квика?<br />Если автоматом, то в скрипте надо делать ожидание.<br />---------------- <br />Проще, если вам нужны тики, <br />то просто подпишитесь на них через меню &nbsp;и они будут приходить при старте квика без проблем.<br />=============<br /> &nbsp;Скрипт запускается полностью вручную.<br /><br />Это хорошо, что можно подписаться через меню. Но это явный косяк в API.<br />=============<br /> чтобы понять причину надо смотреть ваш скрипт.<br />=============<br />Скрипт простейший:<br />
====code====
<pre>
function my_callback_CreateDataSource(my_table_data_, code_class_, code_paper_, interval_, cntr)

message(code_paper_)

end






-----------------------------------------------------------------------------------------------------------int main:-----------------------------------------------------------------------------------------------------


function main()


local code_class1 = "TQBR"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
local code_paper1 = "GAZP"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
local interval1&nbsp;&nbsp; = INTERVAL_TICK&nbsp;&nbsp;


local code_class2 = "TQBR"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
local code_paper2 = "SBER"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
local interval2&nbsp;&nbsp; = INTERVAL_TICK&nbsp;&nbsp;







local my_table1, error_desc1 = CreateDataSource(code_class1, code_paper1, interval1)&nbsp;&nbsp;--Вызываем собсвенно CreateDataSource

------------------------Проверка на ошибки:-------------------
if error_desc1 ~= nil then 
message("Error")
end
--------------------------------------------------------------

message(tostring(my_table1.Size()))
if my_table1.Size() == 0 then
message("data requested from the server")
end









local my_table2, error_desc2 = CreateDataSource(code_class2, code_paper2, interval2)&nbsp;&nbsp;--Вызываем собсвенно CreateDataSource

------------------------Проверка на ошибки:-------------------
if error_desc2 ~= nil then 
message("Error")
end
--------------------------------------------------------------

message(tostring(my_table2.Size()))
if my_table2.Size() == 0 then
message("data requested from the server")
end






my_table1:SetUpdateCallback(function(idx)my_callback_CreateDataSource(my_table_data1, code_class1, code_paper1, interval1) end)
my_table2:SetUpdateCallback(function(idx)my_callback_CreateDataSource(my_table_data2, code_class2, code_paper2, interval2) end)





-------------------------
while not stopped do 
sleep(1)
end 
-------------------------



end -- end main()</pre>
=============
<br />И если бы была ошибка в скрипте - то на второй раз запуска скрипта, колбек так же бы не вызывался, НО на второй раз все рабоатет, как и ожидается. Но только на второй раз. <br />
			<i>22.11.2022 13:07:31, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67038/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67038/topic7771/</guid>
			<pubDate>Tue, 22 Nov 2022 13:07:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67035/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_sMFoO1eY" href="/user/15613/" bx-tooltip-user-id="15613">Quikos</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br /> &nbsp;Скрипт запускаете руками или автоматом с запуском квика?<br />Если автоматом, то в скрипте надо делать ожидание.<br />---------------- <br />Проще, если вам нужны тики, <br />то просто подпишитесь на них через меню &nbsp;и они будут приходить при старте квика без проблем.<br />=============<br /> Скрипт запускается полностью вручную.<br /><br />Это хорошо, что можно подписаться через меню. Но это явный косяк в API.<br />=============<br />чтобы понять причину надо смотреть ваш скрипт. <br />
			<i>22.11.2022 06:45:42, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67035/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67035/topic7771/</guid>
			<pubDate>Tue, 22 Nov 2022 06:45:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67029/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_QWoi8p14" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> &nbsp;Скрипт запускаете руками или автоматом с запуском квика?<br />Если автоматом, то в скрипте надо делать ожидание.<br />---------------- <br />Проще, если вам нужны тики, <br />то просто подпишитесь на них через меню &nbsp;и они будут приходить при старте квика без проблем.<br />=============<br />Скрипт запускается полностью вручную.<br /><br />Это хорошо, что можно подписаться через меню. Но это явный косяк в API. <br />
			<i>21.11.2022 19:10:29, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67029/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67029/topic7771/</guid>
			<pubDate>Mon, 21 Nov 2022 19:10:29 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67027/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_byzNgN4M" href="/user/15613/" bx-tooltip-user-id="15613">Quikos</a> написал:<br />Кто встречался с такой ситуацией ?<br /><br />Заказываю тики через CreateDataSource:SetUpdateCallback().<br /><br />Запускаю Квик:<br />-Загружаю скрипт.<br />-Запускаю скрипт.<br />-Скрипт вызывает CreateDataSource.<br />-CreateDataSource возвращает нулевую таблицу, что говорит о том, что данные придут позже в колбек.<br />-Колбек больше НИКОГДА не вызывается.<br /><br />Выгружаю Скрипт и СРАЗУ же его запускаю - данные сразу же начинают приходить.<br /><br />Кто косячит ? Я или криворукие разрабы ?<br />=============<br />Скрипт запускаете руками или автоматом с запуском квика?<br />Если автоматом, то в скрипте надо делать ожидание.<br />---------------- <br />Проще, если вам нужны тики, <br />то просто подпишитесь на них через меню &nbsp;и они будут приходить при старте квика без проблем. <br />
			<i>21.11.2022 18:14:16, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67027/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67027/topic7771/</guid>
			<pubDate>Mon, 21 Nov 2022 18:14:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SetUpdateCallback - не срабатывает после первого запуска скрипта</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message67020/topic7771/">SetUpdateCallback - не срабатывает после первого запуска скрипта</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Кто встречался с такой ситуацией ?<br /><br />Заказываю тики через CreateDataSource:SetUpdateCallback().<br /><br />Запускаю Квик:<br />-Загружаю скрипт.<br />-Запускаю скрипт.<br />-Скрипт вызывает CreateDataSource.<br />-CreateDataSource возвращает нулевую таблицу, что говорит о том, что данные придут позже в колбек.<br />-Колбек больше НИКОГДА не вызывается.<br /><br />Выгружаю Скрипт и СРАЗУ же его запускаю - данные сразу же начинают приходить.<br /><br />Кто косячит ? Я или криворукие разрабы ? <br />
			<i>21.11.2022 16:12:34, Quikos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message67020/topic7771/</link>
			<guid>http://forum.quik.ru/messages/forum10/message67020/topic7771/</guid>
			<pubDate>Mon, 21 Nov 2022 16:12:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
