<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: GetInfoParam(&quot;SERVERTIME&quot;)]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме GetInfoParam(&quot;SERVERTIME&quot;) форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 04 Apr 2026 02:27:32 +0300</pubDate>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message40650/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</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_2cNrMCoP" href="/user/978/" bx-tooltip-user-id="978">Александр Кашников</a> написал:<br />Лирика: ваша FixTime (V) избыточна применительно к проверкам такого рода совместно с GetInfoParam( "SERVERTIME" ). Просто убрать два двоеточия гораздо быстрее, а смысл тот же.<br />=============<br />Ваше право. <br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_9hj9GtaM" href="/user/978/" bx-tooltip-user-id="978">Александр Кашников</a> написал:<br />Откуда берет значение getInfoParam("SERVERTIME")?<br />=============<br />С пакета данных который прислал сервер QUIK.<br />Кроме того есть еще локальный счетчик который накручивает время при отсутствии свежих данных.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_RmlDMpjd" href="/user/978/" bx-tooltip-user-id="978">Александр Кашников</a> написал:<br />Через какое МИНИМАЛЬНОЕ время после соединения с вашим сервером ГАРАНТИРОВАННО можно понять, что данные получаемые с сервера корректны (время ПК +- пару секунд +- часовой пояс), а не далекое прошлое, как в примере выше?<br /><br />=============<br />такой константы не существует, всегда есть куча переменных в зависимости от которых время может быть разным. <br />
			<i>14.11.2019 11:06:12, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message40650/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message40650/topic998/</guid>
			<pubDate>Thu, 14 Nov 2019 11:06:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message40649/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</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_LQDvdlTa" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br />для информации<br />из своего опыта.<br />1) синхронизируйте комп с сервером точного времени (атомными часами) в итоге время сервера биржи будет совпадать с временем компа и как правило с сервером брокера с погрешностью не более 100 мс (можно получить и 10)<br />2) сверните &nbsp;окна в квике, которые не используете . Открытые графические окна могут сильно тормозить <br />3) по возможности закройте все приложения особенно браузер ( я для браузера и прочего использую второй комп)<br />Успехов<br />=============<br />Николай, спасибо!<br />Все что вы перечислили, мне известно, так не делаю, хотя есть возможность выше перечисленное убрать на второй комп, но мне и этот нагрузить нормально не получается.<br />Сам факт, что прошло уже много лет, а как не работало, так и не работает. <br /><br />Считаю, если официально объявлена функция в доке, значит должна работать так, как описано в доке.<br />Если не работает, значит, используя эту функцию, пользователь будет терять деньги. А это подсудное дело.<br />Товарищи из арки уверены, что пользователи их ПО не соберутся толпой и не выдвинут им иск никогда, и скорее всего так и будет., на то и расчет. <br />
			<i>14.11.2019 10:00:59, Александр Кашников.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message40649/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message40649/topic998/</guid>
			<pubDate>Thu, 14 Nov 2019 10:00:59 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message40635/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</a></b> <i>не всегда срабатывает</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			для информации<br />из своего опыта.<br />1) синхронизируйте комп с сервером точного времени (атомными часами) в итоге время сервера биржи будет совпадать с временем компа и как правило с сервером брокера с погрешностью не более 100 мс (можно получить и 10)<br />2) сверните &nbsp;окна в квике, которые не используете . Открытые графические окна могут сильно тормозить <br />3) по возможности закройте все приложения особенно браузер ( я для браузера и прочего использую второй комп)<br />Успехов <br />
			<i>13.11.2019 21:23:36, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message40635/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message40635/topic998/</guid>
			<pubDate>Wed, 13 Nov 2019 21:23:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message40634/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</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_oVwl35he" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Здравствуйте,<br />Да в случае с SERVERTIME могут быть пропуски.<br />надежней всего использовать следующий код<br /> 
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp; base_time&nbsp;&nbsp;=&nbsp;&nbsp; "14:25:58"&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stime&nbsp;&nbsp;=&nbsp;&nbsp;tostring(GetInfoParam( "SERVERTIME" )) 

&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;&nbsp; FixTime (V)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;V = tostring(V)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;Out&nbsp;&nbsp;=&nbsp;&nbsp; os.date ( "!*t" , os.time ())
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;len&nbsp;&nbsp;=&nbsp;&nbsp; string.len (V)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;len &#62;&nbsp;&nbsp;6&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Out.hour,Out.min,Out.sec&nbsp;&nbsp;=&nbsp;&nbsp; string.match (V,"(%d%d)%p(%d%d)%p(%d%d)")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elseif&nbsp;&nbsp;len =&nbsp;&nbsp;=&nbsp;&nbsp;6&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Out.hour,Out.min,Out.sec&nbsp;&nbsp; =&nbsp;&nbsp; string.match (V,"(%d%d)(%d%d)(%d%d)")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elseif&nbsp;&nbsp;len =&nbsp;&nbsp;=&nbsp;&nbsp;5&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Out.hour,Out.min,Out.sec&nbsp;&nbsp; =&nbsp;&nbsp; string.match (V,"(%d)(%d%d)(%d%d)")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp;Out
&nbsp;&nbsp;&nbsp;&nbsp;end 

&nbsp;&nbsp;if&nbsp;&nbsp; os.time (FixTime(stime))&nbsp;&nbsp;&#62;&nbsp;&nbsp;=&nbsp;&nbsp; os.time (FixTime(base_time))&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;message ( "Hello World" )
&nbsp;&nbsp;end&nbsp;&nbsp; </pre>
=============
 <br />=============<br />Поскольку гугл привел сюда, то тут и задам вопрос.<br />Лирика: ваша FixTime (V) избыточна применительно к проверкам такого рода совместно с GetInfoParam( &quot;SERVERTIME&quot; ). Просто убрать два двоеточия гораздо быстрее, а смысл тот же.<br />По делу:<br />Давно не пользовался GetInfoParam( &quot;SERVERTIME&quot; ), потому, как она не работала как нужно, намучился в свое время.<br />Легче отправить транзакцию и получить ошибку и уже эту ошибку обработать, чем заранее пользоваться ограничением по времени: сессия идет или нет. Но понадобилось чуть раньше тормозить робота, чем начнется клиринг.<br />Решил сегодня сделать проверку GetInfoParam( &quot;SERVERTIME&quot; ) - а вдруг вы починили?<br />На что я рассчитывал, сущеглупый...<br /><br />Вот тут сразу две ваши функции: getInfoParam(&quot;SERVERTIME&quot;) и getInfoParam(&quot;LASTRECORDTIME&quot;). Если с LASTRECORDTIME все понятно и от нее нечего особо ждать, то SERVERTIME обязана работать точно: <br />SERVERTIME == (время ПК +- пару секунд +- часовой пояс). (про провайдера мне не стоит упоминать, сейчас не 2000г. и в моем городе их штук 6 - убьют любого за клиента)<br />10:29:54.176739 Debug: OnConnected flag true<br />10:29:56.996268 Debug: servertime; 8:45:00; lastrecordtime; 8:45:00<br />10:29:57.006266 Debug: servertime; 8:45:00; lastrecordtime; 8:45:00<br />10:29:57.015929 Debug: servertime; 10:29:15; lastrecordtime; 10:29:15<br />10:29:57.015929 Debug: servertime; 10:29:15; lastrecordtime; 10:29:15; offset_tm; -42<br />После соединения с сервером (а OnConnected всегда запаздывает на 2 секунды от реального времени соединения) проходит еще почти 3 секунды, в ожидании, что LASTRECORDTIME == SERVERTIME.<br />После чего ваш сервер посылает время последней записи, которое чудесным образом начинает совпадать со временем сервера и происходит скачек из прошлого, но не в настоящее, а в недалекое прошлое.<br />Каждую строку записи разделяет минимум sleep(1) в цикле.<br />Реальная разница между временем моего ПК и серверным +- 2 сек, всегда, на протяжении 10 последних лет. А тут -42 секунды!, и это еще так себе, и по 5000++ секунд бывает, зависит от времени нахождения в дисконекте и времени наступления этого дисконекта.<br />Сие знание про +-2 секунды - не стандарт и характерно только в связке &quot;мой ПК и ваш сервер&quot; и не может быть использовано где то еще, например, на ПК Васи Пупкина могут быть +-10 сеунд<br />И вычислять это нет никакого желания, потому как &quot;васей&quot; много и у каждого свое.<br />Хочется взять время сервера и ПК в секундах и получить нужное смещение -offset_tm, а дальше в коде использовать как: curr_tm = os.time() + offset_tm<br /><br />Внимание, ВОПРОСЫ!<br />Откуда берет значение getInfoParam(&quot;SERVERTIME&quot;)?<br />Через какое МИНИМАЛЬНОЕ время после соединения с вашим сервером ГАРАНТИРОВАННО можно понять, что данные получаемые с сервера корректны (время ПК +- пару секунд +- часовой пояс), а не далекое прошлое, как в примере выше? <br />
			<i>13.11.2019 21:11:10, Александр Кашников.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message40634/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message40634/topic998/</guid>
			<pubDate>Wed, 13 Nov 2019 21:11:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message9233/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</a></b> <i>не всегда срабатывает</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте,<br />Да в случае с SERVERTIME могут быть пропуски.<br />надежней всего использовать следующий код<br />
====code====
<pre>&nbsp;&nbsp; base_time = "14:25:58"&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stime = tostring(GetInfoParam("SERVERTIME")) 

&nbsp;&nbsp;&nbsp;function FixTime(V)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;V=tostring(V)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local Out = os.date("!*t",os.time())
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local len = string.len(V)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if len&#62;6 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Out.hour,Out.min,Out.sec = string.match(V,"(%d%d)%p(%d%d)%p(%d%d)")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif len==6 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Out.hour,Out.min,Out.sec&nbsp;&nbsp;= string.match(V,"(%d%d)(%d%d)(%d%d)")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif len==5 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Out.hour,Out.min,Out.sec&nbsp;&nbsp;= string.match(V,"(%d)(%d%d)(%d%d)")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return Out
&nbsp;&nbsp;&nbsp;end

 if os.time(FixTime(stime)) &#62;= os.time(FixTime(base_time)) then
&nbsp;&nbsp;&nbsp;message("Hello World")
 end</pre>
============= <br />
			<i>07.10.2015 13:53:48, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message9233/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message9233/topic998/</guid>
			<pubDate>Wed, 07 Oct 2015 13:53:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message9232/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</a></b> <i>не всегда срабатывает</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			похоже отбой. тему можно удалить <br />
			<i>07.10.2015 13:48:09, Валентин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message9232/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message9232/topic998/</guid>
			<pubDate>Wed, 07 Oct 2015 13:48:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message9230/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</a></b> <i>не всегда срабатывает</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			И вообще, правильное ли допущение в первом посте про пропуски времени? <br />
			<i>07.10.2015 13:40:10, Валентин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message9230/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message9230/topic998/</guid>
			<pubDate>Wed, 07 Oct 2015 13:40:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message9228/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</a></b> <i>не всегда срабатывает</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			как лучше запускать скрипт в определенное время? интересует именно время биржи или время брокера. <br />
			<i>07.10.2015 13:35:35, Валентин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message9228/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message9228/topic998/</guid>
			<pubDate>Wed, 07 Oct 2015 13:35:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>GetInfoParam(&quot;SERVERTIME&quot;)</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message9227/topic998/">GetInfoParam(&quot;SERVERTIME&quot;)</a></b> <i>не всегда срабатывает</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте. есть код вида<br /><br />
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base_time = "13:25:58"&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stime = tostring(GetInfoParam("SERVERTIME")) 

 if stime == base_time then do smth xren' 
</pre>
=============
условие должно срабатывать, когда серветтайм == 13.25.58<br />срабатывает, но не всегда. почему так? <br />переменная сервертайм обновляется при обновлении данных на сервере или как то так, если нет обновления, то могут быть пропуски? и за 57 секундой идет сразу 59? <br />
			<i>07.10.2015 13:33:54, Валентин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message9227/topic998/</link>
			<guid>http://forum.quik.ru/messages/forum10/message9227/topic998/</guid>
			<pubDate>Wed, 07 Oct 2015 13:33:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
