<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: CreateDataSource возвращает пустой набор данных]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме CreateDataSource возвращает пустой набор данных форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 19:04:10 +0300</pubDate>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53483/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Использую вот такой код для получения большого количества свечек. Он их сбрасывает в файлы но можно что угодно делать. Возвращает (возможно пустой) список инструментов которые заглохли, их можно повторно запросить, в случае ошибки не возвращает ничего. Входные данные это массив объектов в формате { class = &quot;TQBR&quot;, sec = &quot;SBER&quot;, int = &quot;TICK&quot;, param = &quot;&quot; }.<br /><br />
====code====
<pre>local _is_running = 1
function OnStop ( )
&nbsp;&nbsp;&nbsp;&nbsp;_is_running = 0
&nbsp;&nbsp;&nbsp;&nbsp;return 10000
end
function isOnline ( )
&nbsp;&nbsp;&nbsp;&nbsp;return isConnected ( ) + _is_running == 2
end

local function dumpbatch ( batch, timeout, batchsize )
&nbsp;&nbsp;&nbsp;&nbsp;local batchsize = batchsize or 8
&nbsp;&nbsp;&nbsp;&nbsp;local timeout = timeout or 2
&nbsp;&nbsp;&nbsp;&nbsp;local basestr = getScriptPath ( ) .. "/dump/"
&nbsp;&nbsp;&nbsp;&nbsp;local filestr = basestr .. "%s %s %s%s.csv"
&nbsp;&nbsp;&nbsp;&nbsp;local liststr = basestr .. "_list.txt"
&nbsp;&nbsp;&nbsp;&nbsp;local stallstr = basestr .. "_stall.txt"

&nbsp;&nbsp;&nbsp;&nbsp;local intervals = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;'TICK'&#93; = INTERVAL_TICK,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;'1'&#93; = INTERVAL_M1, &#91;'2'&#93; = INTERVAL_M2, &#91;'3'&#93; = INTERVAL_M3, &#91;'4'&#93; = INTERVAL_M4, &#91;'5'&#93; = INTERVAL_M5, &#91;'6'&#93; = INTERVAL_M6, &#91;'10'&#93; = INTERVAL_M10, &#91;'15'&#93; = INTERVAL_M15, &#91;'20'&#93; = INTERVAL_M20, &#91;'30'&#93; = INTERVAL_M30,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#91;'1H'&#93; = INTERVAL_H1, &#91;'2H'&#93; = INTERVAL_H2, &#91;'4H'&#93; = INTERVAL_H4, &#91;'D'&#93; = INTERVAL_D1, &#91;'W'&#93; = INTERVAL_W1, &#91;'M'&#93; = INTERVAL_MN1 }
&nbsp;&nbsp;&nbsp;&nbsp;do -- sanitization
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( type ( batch ) == 'table', "Invalid argument: 'batch' is not 'table'." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( type ( batchsize ) == 'number', "Invalid argument: 'batchsize' is not 'number'." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( type ( timeout ) == 'number', "Invalid argument: 'timeout' is not 'number'." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i = 1, #batch do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( type ( batch&#91; i &#93; ) == 'table', "Invalid batch item: not 'table'.")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( type ( batch&#91; i &#93;.class ) == 'string', "Invalid batch item: 'class' is not 'string'." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( type ( batch&#91; i &#93;.sec ) == 'string', "Invalid batch item: 'sec' is not 'string'." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( type ( batch&#91; i &#93;.int ) == 'string', "Invalid batch item: 'int' is not 'string'." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( type ( batch&#91; i &#93;.param ) == 'string', "Invalid batch item: 'param' is not 'string'." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( intervals&#91; batch&#91; i &#93;.int &#93;, "Invalid batch item: 'int' is not a valid time interval ( TICK, 1, 2, 3, 4, 5, 6, 10, 15, 20, 30, 1H, 2H, 4H, D, W, M )." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;local runbatch, stalled = { }, { }

&nbsp;&nbsp;&nbsp;&nbsp;while #batch + #runbatch &#62; 0 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #runbatch &#60; batchsize and #batch &#62; 0 then -- process batch item
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local entry = table.remove ( batch )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local fname = string.format ( filestr, entry.class, entry.sec, entry.int, entry.param )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local file = io.open ( fname, "r" )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if file then file:close ( ); goto runbatch end -- skip existing dumps

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i = 1, #stalled do -- skip stalled securities
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if entry.class == stalled&#91; i &#93;.class and entry.sec == stalled&#91; i &#93;.sec then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.insert ( stalled, entry )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;goto runbatch
&nbsp;&nbsp;&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;end

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local source, error
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if entry.param ~= "" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source, error = CreateDataSource ( entry.class, entry.sec, intervals&#91; entry.int &#93;, entry.param )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source, error = CreateDataSource ( entry.class, entry.sec, intervals&#91; entry.int &#93; )
&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;if source then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source:SetEmptyCallback ( )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.insert ( runbatch, { entry = entry, source = source, fname = fname, time = 0 } )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ( string.format ( "Failed to create data source: %s&#92;n%s %s %s %s" , error, entry.class, entry.sec, entry.int, entry.param ) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::runbatch::
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for e = #runbatch, 1, -1 do -- run batch
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local entry = runbatch&#91; e &#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if entry.source:Size ( ) == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry.time = entry.time + 0.100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if entry.time &#62;= timeout then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.insert ( stalled, entry.entry )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.remove ( runbatch, e )
&nbsp;&nbsp;&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;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local file = io.open ( entry.fname, "w" )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local source = entry.source
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i = 1, source:Size ( ) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write ( string.format ( "%04d%02d%02d,%02d%02d,%f,%f,%f,%f,%f&#92;n",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source:T ( i ).year, source:T ( i ).month, source:T ( i ).day, source:T ( i ).hour, source:T ( i ).min,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source:O ( i ), source:H ( i ), source:L ( i ), source:C ( i ), source:V( i ) ) )
&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;file:close ( )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source:Close ( )

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file = io.open ( liststr, "a" )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write ( string.format ( "%s&#92;n", entry.fname ) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:close ( )

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.remove ( runbatch, e )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #runbatch &#62; 0 then sleep ( 100 ) end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not isOnline ( ) then return end
&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;local file = io.open ( stallstr, "w" )
&nbsp;&nbsp;&nbsp;&nbsp;for i = 1, #stalled do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:write ( string.format ( "%s %s %s %s&#92;n", stalled&#91; i &#93;.class, stalled&#91; i &#93;.sec, stalled&#91; i &#93;.int, stalled&#91; i &#93;.param ) )
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;file:close ( )
&nbsp;&nbsp;&nbsp;&nbsp;return stalled
end</pre>
============= <br />
			<i>06.03.2021 12:59:04, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53483/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53483/topic2924/</guid>
			<pubDate>Sat, 06 Mar 2021 12:59:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53315/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_O1XU6Mly" href="/user/4590/" bx-tooltip-user-id="4590">Mikhail Ran</a>, добрый день!<br /><br />В Qlua подобный функционал отсутствует. <br />
			<i>02.03.2021 14:03:18, Roman Azarov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53315/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53315/topic2924/</guid>
			<pubDate>Tue, 02 Mar 2021 14:03:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53291/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте!<br /><br />Можно ли как-то создать в скрипте на lua источник данных с пустыми интервалами?<br />Может быть как-то через CreateDataSource? <br />
			<i>02.03.2021 09:48:01, Mikhail Ran.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53291/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53291/topic2924/</guid>
			<pubDate>Tue, 02 Mar 2021 09:48:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25733/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Kfo4l3c5" href="/user/2481/" bx-tooltip-user-id="2481">Егор Масалкин</a> написал:<br />Методом проб и ошибок понял в чем ошибка.<br />Проблема была в функции OnInit(), в которой я писал весь код. Как только я поменял на функцию main, что было у товарища &nbsp;<noindex><a href="https://forum.quik.ru/user/5441/" target="_blank" rel="nofollow">Alexegin</a></noindex> , всё сразу заработало.<br />=============<br />еще одно добавление (полученное опять же методом проб и ошибок):<br />				
====code====
<pre>tmTac = os.time()
repeat
&nbsp;&nbsp;&nbsp;sleep( 1000 )
until ( dsData:Size() &#62; 0 ) or ( os.difftime( os.time(), tmTac ) &#62; 15 )</pre>
=============
изменилось условие цикла <br />
			<i>11.07.2017 14:27:23, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25733/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25733/topic2924/</guid>
			<pubDate>Tue, 11 Jul 2017 14:27:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25728/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Методом проб и ошибок понял в чем ошибка.<br /><br />Проблема была в функции OnInit(), в которой я писал весь код. Как только я поменял на функцию main, что было у товарища <noindex><a href="https://forum.quik.ru/user/5441/" target="_blank" rel="nofollow">Alexegin</a></noindex>, всё сразу заработало. <br />
			<i>11.07.2017 11:56:08, Егор Масалкин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25728/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25728/topic2924/</guid>
			<pubDate>Tue, 11 Jul 2017 11:56:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25590/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_E1xdwwvP" href="/user/2481/" bx-tooltip-user-id="2481">Егор Масалкин</a> написал:<br />Ваш код работает.<br />Но как только меняют параметры, пишу<br />
====code====
<pre>dsData, strMessage = CreateDataSource( "SPBFUT", "RIU7", INTERVAL_MN1 )</pre>
=============
<br />то выдаёт, что размер будет 0. НО как только я делаю график, то он спокойно получает данные... но ведь он с сервера должен брать свечи, а не с графика?<br /><br />=============<br /><ol><li>еще раз проверьте коды класса и инструмента - отображается после нажатия в терминале <B>Alt+I</B> при соответствующей выбранной строке в Таблице текущих параметров<br /><li>попробуйте следующий код - просто скопируйте и сохраните в файле <span class="bx-font" style="font-family:monospace">test.lua</span>:<br /></ol>
====code====
<pre>function main()

&nbsp;&nbsp;&nbsp;&nbsp;dsData, strMessage = CreateDataSource( "SPBFUT", "RIU7", INTERVAL_MN1 )

&nbsp;&nbsp;&nbsp;&nbsp;if dsData == nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource() error: "..strMessage, 3 )
&nbsp;&nbsp;&nbsp;&nbsp;else

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmTac = os.time()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repeat
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep( 1000 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;until ( dsData:Size() == 0 ) or ( os.difftime( os.time, tmTac ) &#60;= 15 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmTic = os.time()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dsData:Size() == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource() returned empty dataset. Waiting timeout: "..os.difftime( tmTic, tmTac ), 2 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource() success. Waiting timeout: "..os.difftime( tmTic, tmTac ) )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsData:Close()
&nbsp;&nbsp;&nbsp;&nbsp;end

end</pre>
=============
<br />====quote====<br /><a class="blog-p-user-name" id="bp_I11Ew7xi" href="/user/2481/" bx-tooltip-user-id="2481">Егор Масалкин</a> написал:<br />ну серьёзно... может я такой аутист что правильно не могу переписать коды? Но нет... может опять какая-то беда с фьючерами?<br />=============<br />скорее всего просто досадная ошибка, которую вы в упор не видите - так бывает <br />
			<i>30.06.2017 17:01:22, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25590/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25590/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 17:01:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25589/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ваш код работает.<br />Но как только меняют параметры, пишу<br />dsData, strMessage = CreateDataSource( &quot;SPBFUT&quot;, &quot;RIU7&quot;, INTERVAL_MN1 )<br /><br />то выдаёт, что размер будет 0.<br />НО как только я делаю график, то он спокойно получает данные... но ведь он с сервера должен брать свечи, а не с графика?<br /><br />ну серьёзно... может я такой аутист что правильно не могу переписать коды? Но нет... может опять какая-то беда с фьючерами? <br />
			<i>30.06.2017 15:51:46, Егор Масалкин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25589/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25589/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 15:51:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25584/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_oiwHFcLX" href="/user/2481/" bx-tooltip-user-id="2481">Егор Масалкин</a> написал:<br />У меня днем выводит, что все источники данных пусты...<br />=============<br />у меня приведенный <noindex><a href="https://forum.quik.ru/messages/forum10/message25562/topic2924/#message25562" target="_blank" rel="nofollow">выше</a></noindex> код работает. может неправильно указан код класса, бумаги или интервал не знаю ... например для месячных данных по акциям ГАЗПРОМ:
====code====
<pre>dsData, strMessage = CreateDataSource( "TQBR", "GAZP", INTERVAL_MN1 )</pre>
============= <br />
			<i>30.06.2017 14:15:05, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25584/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25584/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 14:15:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25582/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_qzcbFlZR" href="/user/5441/" bx-tooltip-user-id="5441">Alexegin</a> написал:<br />DS:Size() == 0<br />=============<br />У меня днем выводит, что все источники данных пусты...<br /><br />В чем проблема? ЧЯДНТ? <br />
			<i>30.06.2017 13:20:31, Егор Масалкин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25582/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25582/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 13:20:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25577/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_IZzJ97To" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Должна работать.<br />=============<br />спасибо, значит будем звонить товарищам брокерам :)<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_j6fmoEQe" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />а какая разница, если параметры одни и те же?<br />=============<br />ну не знаю ... просто если я при использовании Lua читаю про функцию <span class="bx-font" style="font-family:monospace">CreateDataSource</span> в соответствующем разделе соответствующего документа, у меня почему-то не возникает мыслей посмотреть значения параметров другого языка для другой функции другой таблицы - наверное потому что про это ничего не написано? <br />
			<i>30.06.2017 11:12:03, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25577/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25577/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 11:12:03 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25576/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_KfbfKYgu" href="/user/5441/" bx-tooltip-user-id="5441">Alexegin</a> написал:<br />по Lua (а не QPILE)<br />=============<br /><br />а какая разница, если параметры одни и те же? <br />
			<i>30.06.2017 10:52:02, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25576/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25576/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 10:52:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25575/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_bWKZOYlR" href="/user/5441/" bx-tooltip-user-id="5441">Alexegin</a>, <br /><br />Должна работать. <br />
			<i>30.06.2017 10:51:31, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25575/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25575/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 10:51:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25574/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_DmYU9toC" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />Таблица торгов, меняется в зависимости от рынка. На разных рынках разные параметры. Даже более того, на одном рынке, у разных брокеров, набор может быть разным.<br />Таким образом, даже если бы в документации были описаны параметры, то не факт что они у Вас есть.<br />В связи с чем, правильней всего с начала посмотреть что Вам нужно в таблице, а потом узнать какой для этого нужен заголовок. И пути два. Либо через DDE (что надежней), либо через документацию info.chm.<br />-Раздел 8. Алгоритмический язык <B>QPILE</B><br />--Функции для получения значений Таблицы текущих торгов<br />---Значения параметров функций<br /><br />через документацию не надежней т.к. как уже говорилось и еще раз, набор параметров в таблице торгов может быть разным. описать вообще все возможные варианты параметров к сожалению не представляется возможным.<br />=============<br />большое спасибо, <a class="blog-p-user-name" id="bp_MGs6W0I2" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a>. я лишь говорю о том, что в соответствующем разделе документации по <U>Lua</U> (а не <U>QPILE</U>) нет никакой информации ни о возможных значениях параметров, ни о том где это можно посмотреть, ни о том о чем вы пишите тем более.<br /><br />а после закрытия торговой сессии фондовой секции функция <span class="bx-font" style="font-family:monospace">CreateDataSource</span> должна работать или нет, не подскажите? или это от брокера зависит и надо у него спрашивать (ВТБ24)? <br />
			<i>30.06.2017 10:47:43, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25574/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25574/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 10:47:43 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25573/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_xMVt0B2p" href="/user/5441/" bx-tooltip-user-id="5441">Alexegin</a> написал:<br />в документации про возможные значения параметра ничего не написано,<br />=============<br /><br />Таблица торгов, меняется в зависимости от рынка. На разных рынках разные параметры.<br />Даже более того, на одном рынке, у разных брокеров, набор может быть разным.<br />Таким образом, даже если бы в документации были описаны параметры, то не факт что они у Вас есть.<br />В связи с чем, правильней всего с начала посмотреть что Вам нужно в таблице, а потом узнать какой для этого нужен заголовок.<br />И пути два. Либо через DDE (что надежней), либо через документацию info.chm<br />-Раздел 8. Алгоритмический язык QPILE<br />--Функции для получения значений Таблицы текущих торгов<br />---Значения параметров функций<br /><br />через документацию не надежней т.к. как уже говорилось и еще раз, набор параметров в таблице торгов может быть разным.<br />описать вообще все возможные варианты параметров к сожалению не представляется возможным. <br />
			<i>30.06.2017 10:32:06, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25573/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25573/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 10:32:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25572/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_bkHFiTlX" href="/user/459/" bx-tooltip-user-id="459">Nikolay Pavlov</a> написал:<br />Для определения кода параметра, включите в настройках рабочего места Quik настройку Формальное представление данных (раздел 'Программа-&gt;Буфер обмена'), добавьте в Таблицу текущих торгов необходимые параметры, скопируйте ее содержимое в буфер обмена (Ctrl+C) и вставьте, например, в блокнот, и Вы увидите, какие значения нужно передавать в &nbsp;<span class="bx-font" style="font-family:monospace">STRING param</span>.<br />=============<br />в документации про возможные значения параметра ничего не написано, <I>упоминается</I> Таблица <U>обезличенных сделок</U>, а не <U>текущих параметров</U>. тайные знания и волшебство какое-то ...<br />спасибо, <a class="blog-p-user-name" id="bp_AUOia62B" href="/user/459/" bx-tooltip-user-id="459">Nikolay Pavlov</a> <br />
			<i>30.06.2017 10:23:18, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25572/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25572/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 10:23:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25571/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0aBMbGLC" href="/user/5441/" bx-tooltip-user-id="5441">Alexegin</a> написал:<br />а необязательный параметр STRING param - кто-нибудь знает возможные значения?<br />=============<br />Добрый день.<br />Для определения кода параметра, включите в настройках рабочего места Quik настройку Формальное представление данных (раздел 'Программа-&gt;Буфер обмена'), добавьте в Таблицу текущих торгов необходимые параметры, скопируйте ее содержимое в буфер обмена (Ctrl+C) и вставьте, например, в блокнот, и Вы увидите, какие значения нужно передавать в <B>STRING param</B>. <br />
			<i>30.06.2017 10:06:12, Nikolay Pavlov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25571/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25571/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 10:06:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25570/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_6yipgFdw" href="/user/2600/" bx-tooltip-user-id="2600">Andrei2016</a> написал:<br />попробуйте после вызова функции CreateDataSource() добавить следующую строку:
====code====
<pre>if&nbsp;&nbsp;(not dsData:SetEmptyCallback())&nbsp;&nbsp;then&nbsp;&nbsp;message("Server returns no data")&nbsp;&nbsp;end</pre>
=============
Если сообщение у вас появится, вероятнее всего, что проблема на стороне брокера (возможно, &quot;слетели&quot; какие-то настройки либо появились новые ограничения частного характера).<br />=============<br /><a class="blog-p-user-name" id="bp_Zaeo9qSm" href="/user/2600/" bx-tooltip-user-id="2600">Andrei2016</a>, попробую обязательно, хотя и не понятно почему на основании этого можно делать какие-то выводы.<br />после закрытия торговой сессии на фондовом рынке все равно должна работать возможность получения данных через <span class="bx-font" style="font-family:monospace"><B>CreateDataSource</B></span>, я правильно понял?<br />а необязательный параметр <span class="bx-font" style="font-family:monospace"><B>STRING param</B></span> - кто-нибудь знает возможные значения? <br />
			<i>30.06.2017 09:43:15, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25570/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25570/topic2924/</guid>
			<pubDate>Fri, 30 Jun 2017 09:43:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25563/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_2XKh7ogY" href="/user/5441/" bx-tooltip-user-id="5441">Alexegin</a>, <br /><br />попробуйте после вызова функции CreateDataSource() добавить следующую строку:<br />if &nbsp;(not dsData:SetEmptyCallback()) &nbsp;then &nbsp;message("Server returns no data") &nbsp;end<br />Если сообщение у вас появится, вероятнее всего, что проблема на стороне брокера (возможно, "слетели" какие-то настройки либо появились новые ограничения частного характера). <br />
			<i>29.06.2017 20:59:15, Andrei2016.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25563/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25563/topic2924/</guid>
			<pubDate>Thu, 29 Jun 2017 20:59:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25562/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_O49KvXmJ" href="/user/2481/" bx-tooltip-user-id="2481">Егор Масалкин</a> написал:<br />Ставлю ожидание на 30 секунд, однако, всё равно возвращает пустые значения. Что-то долго голуби летят, или я чего-то не так делаю?<br />...<br />При этом, что характерно - если у меня открыт график с каким-либо инструментом, он без проблем выцепит данные с него ...<br />=============<br /><br />у меня работает вот такой код (что в принципе то же самое):<br />
====code====
<pre>dsData, strMessage = CreateDataSource( "INDX", strTicker, INTERVAL_MN1 );

if dsData == nil then
&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource( "..strTicker.." ) error: "..strMessage, 3 );
else
&nbsp;&nbsp;&nbsp;&nbsp;tmTic = os.time();
&nbsp;&nbsp;&nbsp;&nbsp;repeat
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep( 1000 );
&nbsp;&nbsp;&nbsp;&nbsp;until ( dsData:Size() == 0 ) or ( os.difftime( os.time, tmTic ) &#60;= 15 );
&nbsp;&nbsp;&nbsp;&nbsp;tmTac = os.time();

&nbsp;&nbsp;&nbsp;&nbsp;if dsData:Size() == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( strTicker..", size:"..dsData:Size()..", "..os.difftime( tmTac, tmTic ).." seconds", 2 );
&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( strTicker..", size:"..dsData:Size()..", "..os.difftime( tmTac, tmTic ).." seconds" );
&nbsp;&nbsp;&nbsp;&nbsp;end;
end;
</pre>
=============
<br />НО! <B>работает только во время торговой сессии</B> - после 19:00 MSK даже после ожидания 15 секунд набор данных пустой, не знаю нормально ли это ... <br />
			<i>29.06.2017 20:35:45, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25562/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25562/topic2924/</guid>
			<pubDate>Thu, 29 Jun 2017 20:35:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25561/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ставлю ожидание на 30 секунд, однако, всё равно возвращает пустые значения. Что-то долго голуби летят, или я чего-то не так делаю?
====code====
<pre>DS,Error = CreateDataSource(CLASS_CODE, cur_sec, INTERVAL);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Проверка
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if DS == nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message('Входила:ОШИБКА получения доступа к свечам! ');
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t=0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while DS:Size() == 0 and t&#60;30000 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep( 1000 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t=t+1000;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if t&#62;29000 then message(cur_sec.." Empty") end;
</pre>
=============
<br />При этом, что характерно - если у меня открыт график с каким-либо инструментом, он без проблем выцепит данные с него. Однако по задумке требуется работать с большим количеством инструментов и содержать армию графиков не вариант (собсно, cur_sec у меня и содержит название инструмента, берёт верно) <br />
			<i>29.06.2017 20:10:20, Егор Масалкин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25561/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25561/topic2924/</guid>
			<pubDate>Thu, 29 Jun 2017 20:10:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25530/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Примерно так и надо делать при инициализации скрипта. Только цикл ожидания лучше сделать другим:
====code====
<pre>ждём, пока не будет ds:Size() &#62; 0, периодически засыпая на 100 мс, но не более 15-20 секунд</pre>
=============
Практика показывает, что если за это время не пришли данные, то дальше ждать бесполезно. <br />
			<i>28.06.2017 05:49:13, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25530/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25530/topic2924/</guid>
			<pubDate>Wed, 28 Jun 2017 05:49:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25527/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			вот так вот нормально будет?<br />
====code====
<pre>function main()

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTicker = "MICEXINDEXCF";

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsData, strMessage = CreateDataSource( "INDX", strTicker, INTERVAL_MN1 )

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dsData == nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource( "..strTicker.." ) error: "..strMessage, 3 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmTic = os.time()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while dsData:Size() == 0 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep( 5000 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "Waiting for "..os.difftime( os.time(), tmTic ).." seconds so far .." )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmTac = os.time()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "Getting data took "..os.difftime( tmTac, tmTic ).." seconds. Data source size: "..dsData:Size() )

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Do something with the data ...
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsData:Close()

end</pre>
=============
можно не с нулем сравнивать а с каким-либо значением, но в любом случае это по-моему бред, джентльмены, хоть и работает.<br />вопрос с параметрами все-таки остается открытым - подскажите пожалуйста где можно посмотреть возможные значения <br />
			<i>27.06.2017 17:28:46, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25527/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25527/topic2924/</guid>
			<pubDate>Tue, 27 Jun 2017 17:28:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25525/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_UfGyFC6J" href="/user/47/" bx-tooltip-user-id="47"><noindex><a href="mailto:s_mike@rambler.ru" target="_blank" rel="nofollow">s_mike@rambler.ru</a></noindex></a> написал:<br />Процедуру можно делать в тот момента когда она вам нужна.<br />Схематично эта процедура стучится к брокеру с просьбой послать терминалу данные по требуемому вам инструменту.<br />... сервер после ее получения докушает чай, отошлет назад данные (может снова голубями), потом терминал их рассует по полкам только после этого они станут доступны вам.<br />сколько времени пройдет на все эти пассы -гетзвестно. Но явно больше, чем выполняется один оператор lua в вашей программе.<br />=============<br />логика работы процедуры понятна, большое спасибо.<br />в документации написано что есть возможность установить для получаемого набора данных функцию обратного вызова - <span class="bx-font" style="font-family:monospace"><B>SetUpdateCallback </B></span>- для обработки изменившихся данных. насколько я понимаю, данная функция будет вызываться столько раз, сколько данных (свечей) есть в наборе (это как минимум), кроме этого она будет вызываться каждый раз по мере изменения последней свечи. если изменения последней свечи можно каким-то образом обработать, то все равно непонятно когда переставать получать данные - я же не знаю сколько данных на сервере брокера (сколько свечей).<br />также в документации написано, что есть у функции <span class="bx-font" style="font-family:monospace"><B>GetDataSource</B></span> необязательный параметр <span class="bx-font" style="font-family:monospace"><B>STRING param</B></span>, про который написано только что если этот параметр <I>не задан, то заказываются данные на основании Таблицы обезличенных сделок, если задан – данные по этому параметру</I>. однако возможные значения этого параметра не приводятся.<br />так как все-таки делать-то - через функцию обратного вызова и сравнивать даты свечей с тем, что необходимо получить или использовать какое-то значение этого необязательного параметра?! где тогда взять это значение, непонятно ... <br />
			<i>27.06.2017 16:30:34, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25525/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25525/topic2924/</guid>
			<pubDate>Tue, 27 Jun 2017 16:30:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25520/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Процедуру можно делать в тот момента когда она вам нужна.<br /><br />Схематично эта процедура стучится к брокеру с просьбой послать терминалу данные по требуемому вам инструменту.<br /><br /><br />весточек должны доставить (dhl или голуби), сервер после ее получения докушает чай, отошлет назад данные (может снова голубями), потом терминал их рассует по полкам т только после этого они станут доступны вам.<br /><br />сколько времени пройдет на все эти пассы -гетзвестно. Но явно больше, чем выполняется один оператор lua в вашей программе. <br />
			<i>27.06.2017 14:14:02, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25520/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25520/topic2924/</guid>
			<pubDate>Tue, 27 Jun 2017 14:14:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25519/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_HweM0wuI" href="/user/47/" bx-tooltip-user-id="47"><noindex><a href="mailto:s_mike@rambler.ru" target="_blank" rel="nofollow">s_mike@rambler.ru</a></noindex></a> написал:<br />Вода из крана начинает капать с некоторой задержкой после того как вы начали поворачивать вентиль.<br />здесь то же самое. Данные будут несколько позже.<br />=============<br />то есть такую процедуру надо делать в конце дня? после обеда? или когда?<br />как узнать когда наступило это время?<br />прошу прощения за вопросы которые может быть имеют очевидные ответы - новичок в этом деле. спасибо за помощь <br />
			<i>27.06.2017 13:27:39, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25519/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25519/topic2924/</guid>
			<pubDate>Tue, 27 Jun 2017 13:27:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25518/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вода из крана начинает капать с некоторой задержкой после того как вы начали поворачивать вентиль.<br /><br />здесь то же самое. Данные будут несколько позже. <br />
			<i>27.06.2017 13:22:24, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25518/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25518/topic2924/</guid>
			<pubDate>Tue, 27 Jun 2017 13:22:24 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает пустой набор данных</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message25517/topic2924/">CreateDataSource возвращает пустой набор данных</a></b> <i>Функция CreateDataSource возвращает пустой набор данных, сообщений об ошибках нет</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			добрый день. терминал Quik 7.11.1.5.<br />пример кода скрипта:<br />
====code====
<pre>function main()

&nbsp;&nbsp;&nbsp;&nbsp;arrTickers = {&nbsp;&nbsp;"MICEXINDEXCF", "MICEX10INDEX", "MICEXBMI", "MICEXCGS", "MICEXCHM", "MICEXFNL",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"MICEXM&#38;M", "MICEXMNF", "MICEXO&#38;G","MICEXPWR","MICEXSC", "MICEXTLC", "MICEXTRN",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"MICEXINNOV", "MICEXMBICP", "MICEXMBITR" }

&nbsp;&nbsp;&nbsp;&nbsp;for n = 1, 16, 1 do

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTicker = arrTickers&#91; n &#93;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsData, strError = CreateDataSource( "INDX", strTicker, INTERVAL_MN1 )

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dsData == nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource( "..strTicker.." ) error: "..strError, 3 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dsData:Size() == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if strError == nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource( "..strTicker.." ) is empty", 2 )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource( "..strTicker.." ) is empty: "..strError, 2 )
&nbsp;&nbsp;&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;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message( "CreateDataSource( "..strTicker.." ) success "..dsData:Size() )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep( 3000 )
&nbsp;&nbsp;&nbsp;&nbsp;end
end</pre>
=============
в результате работы скрипта все наборы данных пустые - <B><span class="bx-font" style="font-family:monospace">dsData:Size() == 0</span></B>, ошибок нет - <B><span class="bx-font" style="font-family:monospace">strError == nil</span></B>. графики необходимых интервалов для соответствующих инструментов в терминале открыты.<br />что я делаю не так и почему так происходит? самое интересное что две недели назад то же самое работало без проблем ...<br />заранее большое спасибо за ответы <br />
			<i>27.06.2017 13:12:34, Alexegin.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message25517/topic2924/</link>
			<guid>http://forum.quik.ru/messages/forum10/message25517/topic2924/</guid>
			<pubDate>Tue, 27 Jun 2017 13:12:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
