<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: утро]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме утро форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Mon, 06 Apr 2026 21:09:06 +0300</pubDate>
		<item>
			<title>утро</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message3729/topic447/">утро</a></b> <i>что происходит утром? Что обнуляется и возвращает nil</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			забыл написать функция read_param_file() &nbsp;передает время в глобальную переменную old_can <br />
			<i>24.04.2015 11:11:10, Сергей Радченко.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message3729/topic447/</link>
			<guid>http://forum.quik.ru/messages/forum10/message3729/topic447/</guid>
			<pubDate>Fri, 24 Apr 2015 11:11:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>утро</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message3728/topic447/">утро</a></b> <i>что происходит утром? Что обнуляется и возвращает nil</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			У меня возникает проблема по утрам. При запущенном скрипте. Если скрипт запустить потом или перезапустить скрипт, устроить дисконект, выключить Квик &nbsp;никаких проблем нет. Только утро и все!<br />Функция create(time_can) выполняется для всех свечей графика, а должна выполняться только для новой свечи. 
====code====
<pre>is_run = true 
Class_Code = "SPBFUT"&nbsp;&nbsp;
Sec_Code="RIM5"
TF=INTERVAL_M30

old_can=20150422100&nbsp;&nbsp;&nbsp;&nbsp; -- время последней обработанной свечи

function main()
&nbsp;&nbsp;&nbsp;read_param_file()&nbsp;&nbsp;-- считываем время свечи из файла
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;ds = CreateDataSource(Class_Code, Sec_Code, TF)
&nbsp;&nbsp;&nbsp;sleep(200)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;while is_run do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if isConnected()==1 and getInfoParam("SERVERTIME")~=nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local n_last_candle=ds:Size()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local t_last_candle=tonumber(ds:T(n_last_candle).year..Chisla(ds:T(n_last_candle).month)..Chisla(ds:T(n_last_candle).day)..Chisla(ds:T(n_last_candle).hour)..Chisla(ds:T(n_last_candle).min))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if tonumber(t_last_candle)~=tonumber(old_can) then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local p_new_candles=new_candle(n_last_candle)&nbsp;&nbsp;-- получение новых свечей
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=n_last_candle-p_new_candles, n_last_candle do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_can=tostring(ds:T(i).year)..Chisla(ds:T(i).month)..Chisla(ds:T(i).day)..Chisla(ds:T(i).hour)..Chisla(ds:T(i).min)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create(time_can)&nbsp;&nbsp;-- действия над свечами
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old_can=t_last_candle
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;save_time(old_can)&nbsp;&nbsp;--сохранение в файл времени последней свечи
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;ds:Close()
end

-- функция возвращает кол-во новых свечей от текущей
function new_candle(n_last_candle)
&nbsp;&nbsp;&nbsp;local p_new_candles=0
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;for i=0,n_last_candle-1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if tonumber(old_can)&#60;tonumber(tostring(ds:T(n_last_candle-i).year)..Chisla(ds:T(n_last_candle-i).month)..Chisla(ds:T(n_last_candle-i).day)..Chisla(ds:T(n_last_candle-i).hour)..Chisla(ds:T(n_last_candle-i).min))&nbsp;&nbsp;then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p_new_candles=i
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;
return p_new_candles
end



function OnStop(stop_flag) 
&nbsp;&nbsp;&nbsp;is_run=false
&nbsp;&nbsp;&nbsp;stop_flag=1
end&nbsp;&nbsp;
 
</pre>
============= <br />
			<i>24.04.2015 11:04:03, Сергей Радченко.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message3728/topic447/</link>
			<guid>http://forum.quik.ru/messages/forum10/message3728/topic447/</guid>
			<pubDate>Fri, 24 Apr 2015 11:04:03 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
