<?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, 10 May 2026 01:56:22 +0300</pubDate>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57913/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день,<br /><br />Описанная в данном инциденте ошибка была исправлена в версии 9.2 терминала QUIK.<br />Рекомендуем обновить версию программы.<br />Приносим извинения за причиненные неудобства. <br />
			<i>13.09.2021 10:36:56, Daniil Pozdnyakov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57913/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57913/topic6320/</guid>
			<pubDate>Mon, 13 Sep 2021 10:36:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57405/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_uSHYwU4S" 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 />
			<i>19.08.2021 09:10:59, Dmitry.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57405/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57405/topic6320/</guid>
			<pubDate>Thu, 19 Aug 2021 09:10:59 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57393/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Попробуйте вручную построить тиковый график по этому инструменту. Если не получится - звоните брокеру <br />
			<i>18.08.2021 18:55:08, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57393/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57393/topic6320/</guid>
			<pubDate>Wed, 18 Aug 2021 18:55:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57390/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте. Прошу помочь, почему получаю данные в виде нулей, когда указывают интервал TICK? Если меняю на интервал M1, то данные приходят:
====code====
<pre>function OnInit(

&nbsp;&nbsp;&nbsp;is_run = true;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;ds_main2 = CreateDataSource(SPBXM, BABA_SPB, INTERVAL_TICK);
&nbsp;&nbsp;&nbsp;ds_main2:SetEmptyCallback();
&nbsp;&nbsp;&nbsp;
end</pre>
============= <br />
			<i>18.08.2021 18:27:55, Dmitry.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57390/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57390/topic6320/</guid>
			<pubDate>Wed, 18 Aug 2021 18:27:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message56938/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Изучаю гэпы тоже столкнулся с такой проблемой на дневных свечах. Очень ждём исправления. &nbsp; <br />
			<i>02.08.2021 19:03:15, Павел.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message56938/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message56938/topic6320/</guid>
			<pubDate>Mon, 02 Aug 2021 19:03:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message55346/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Читаешь и диву даёшься... &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> <br /><br />Имеем:<br /><br />1. Свечи считаются на сервере, и хранятся там ГОДАМИ, т.е. это НЕИЗМЕННАЯ величина, посчитанная ОДИН раз. В том числе, их объёмы, временные отметки и прочая &quot;японская&quot; хрень. А раз так - были там &quot;разрывы соединения или потери пакетов&quot; или нет - какая разница?<br /><br />2. Все эти данные нужны только для прогнозирования, которое по определению имеет ВЕРОЯТНОСТНЫЙ характер. Следовательно, особая точность в этих значениях не нужна (и даже вредна). А потому сама проблема, вынесенная в заголовок, не имеет значения: ну, возвращает &quot;иногда&quot; - и пущай себе возвращает!<br /><br />3. Более тяжёлые свечи строятся из более лёгких по простейшему и однозначному алгоритму. Следовательно, если нет ошибок в младших значениях свечей, их не может быть и в старших. И как при этом можно перепутать последнюю свечу с предпоследней - убей, не понимаю! И при чём тут &quot;сделки, попадающие точно на границу свечек&quot;? Они ведь УЖЕ ПОСЧИТАНЫ! ЕЩЕ НА СЕРВЕРЕ ПОСЧИТАНЫ! ОТКУДА, может взяться &quot;обработка в колбеке&quot;?<br /><br />4. Шаг влево, шаг вправо карается расстрелом: <I>&quot;должен быть закрыт график по тестируемому таймфрейму&quot;</I>. А это с какого бодуна? А уж если так - кто назвал эту софтину &quot;асинхронным фреймворком!? <img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> <br /><br />P.S. Лично я с самого начала считал свои свечки сам (по 9 таймфреймам, начиная с 15-секундного) и по всем тикерам, за которыми следит скрипт (таковых несколько сотен). И это чуть ли не единственное место в скрипте, которое, будучи однажды написано, прекрасно работало и работает до сих пор без сбоев. Ах, да - я же считаю даже не свечи (кому они нужны?), а динамику их изменения (скорость движения), да ещё и в дискретной шкале: курс может а) стоять на месте (это я использую, кстати, для отслеживания ситуаций, когда торги по данному инструменту не ведутся) б) медленно ползти в) нормально идти г) быстро бежать д) лететь сломя голову - всего 9 состояний (с учётом направления). Просто, надёжно (все эти ошибки, приведённые в этой ветке практически автоматом исчезнут!), наглядно (куда там графику до такого уровня наглядности!), и безо всякого CreateDataSource вообще! Всем рекомендую. <br />
			<i>05.05.2021 09:27:33, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message55346/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message55346/topic6320/</guid>
			<pubDate>Wed, 05 May 2021 09:27:33 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message55340/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день,<br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; Описанная в данном инциденте ошибка будет исправлена в одной из &nbsp; &nbsp; &nbsp; очередных версий ПО.<br /> &nbsp; &nbsp; &nbsp; Приносим извинения за причиненные неудобства. <br />
			<i>05.05.2021 07:10:34, Maria Romanova.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message55340/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message55340/topic6320/</guid>
			<pubDate>Wed, 05 May 2021 07:10:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53802/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте!<br /> <br /> Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ. <br />
			<i>15.03.2021 05:23:42, Egor Zaytsev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53802/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53802/topic6320/</guid>
			<pubDate>Mon, 15 Mar 2021 05:23:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53691/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вот скрипт попроще, который довольно быстро воспроизводит эту проблему:<br /><table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td>
====code====
<pre>class_code, sec_code = "SPBFUT", "SiH1"

local run = true
local logFile

function OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;run = nil
end

local function WriteLog(message)
&nbsp;&nbsp;&nbsp;&nbsp;local t = os.sysdate()
&nbsp;&nbsp;&nbsp;&nbsp;local timestamp = string.format("%02u:%02u:%02u.%03u", t.hour, t.min, t.sec, t.ms)
&nbsp;&nbsp;&nbsp;&nbsp;logFile:write(timestamp .. " " .. message .. "&#92;n")
&nbsp;&nbsp;&nbsp;&nbsp;logFile:flush()
end

function main()
&nbsp;&nbsp;&nbsp;&nbsp;logFile = io.open("ds_test.log", "a+")

&nbsp;&nbsp;&nbsp;&nbsp;WriteLog("subscribing for D1")
&nbsp;&nbsp;&nbsp;&nbsp;local dsd = CreateDataSource(class_code, sec_code, INTERVAL_D1)
&nbsp;&nbsp;&nbsp;&nbsp;while dsd:Size() == 0 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;sleep(200)
&nbsp;&nbsp;&nbsp;&nbsp;WriteLog("D1 filled: " .. dsd:Size())
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;local count = 10
&nbsp;&nbsp;&nbsp;&nbsp;while run do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLog("subscribing for H2 &#38; H4")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local ds2 = CreateDataSource(class_code, sec_code, INTERVAL_H2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local ds4 = CreateDataSource(class_code, sec_code, INTERVAL_H4)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ds2:Size() == 0 or ds4:Size() == 0 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(200)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLog("H2 filled: " .. ds2:Size())
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLog("H4 filled: " .. ds4:Size())
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local vol2, vol4
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repeat
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local vol4 = ds4:V(ds4:Size())
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local vol2 = ds2:V(ds2:Size()) + (ds4:T(ds4:Size()).hour == ds2:T(ds2:Size()).hour and 0 or ds2:V(ds2:Size() - 1))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if vol4 == vol2 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLog("V4 = " .. vol4 .. "&nbsp;&nbsp;V2 = " .. vol2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break
&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;WriteLog("error: V4 = " .. vol4 .. "&nbsp;&nbsp;V2 = " .. vol2 .. "&nbsp;&nbsp;difference = " .. (vol4 - vol2))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count = count - 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if count == 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run = false
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;until not run

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLog("closing H2 &#38; H4")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds2:Close()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds2 = nil
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds4:Close()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds4 = nil
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;dsd:Close()
&nbsp;&nbsp;&nbsp;&nbsp;logFile:close()
&nbsp;&nbsp;&nbsp;&nbsp;logFile = nil
end
</pre>
=============
</td></tr></tbody></table><br />Результат работы:
====code====
<pre>...
20:11:35.758 subscribing for H2 &#38; H4
20:11:35.964 H2 filled: 2084
20:11:35.964 H4 filled: 1358
20:11:35.964 V4 = 4954.0&nbsp;&nbsp;V2 = 4954.0
20:11:35.964 closing H2 &#38; H4
20:11:35.964 subscribing for H2 &#38; H4
20:11:36.170 H2 filled: 2084
20:11:36.170 H4 filled: 1358
20:11:36.170 V4 = 4954.0&nbsp;&nbsp;V2 = 4954.0
20:11:36.170 closing H2 &#38; H4
20:11:36.170 subscribing for H2 &#38; H4
20:11:36.377 H2 filled: 2084
20:11:36.377 H4 filled: 1358
20:11:36.377 error: V4 = 4976.0&nbsp;&nbsp;V2 = 4998.0&nbsp;&nbsp;difference = -22.0
20:11:37.377 error: V4 = 4976.0&nbsp;&nbsp;V2 = 4998.0&nbsp;&nbsp;difference = -22.0
20:11:38.378 error: V4 = 5051.0&nbsp;&nbsp;V2 = 5073.0&nbsp;&nbsp;difference = -22.0
20:11:39.378 error: V4 = 5053.0&nbsp;&nbsp;V2 = 5075.0&nbsp;&nbsp;difference = -22.0
20:11:40.379 error: V4 = 5077.0&nbsp;&nbsp;V2 = 5099.0&nbsp;&nbsp;difference = -22.0
20:11:41.379 error: V4 = 5077.0&nbsp;&nbsp;V2 = 5099.0&nbsp;&nbsp;difference = -22.0
20:11:42.379 error: V4 = 5077.0&nbsp;&nbsp;V2 = 5099.0&nbsp;&nbsp;difference = -22.0
20:11:43.379 error: V4 = 5103.0&nbsp;&nbsp;V2 = 5125.0&nbsp;&nbsp;difference = -22.0
20:11:44.379 error: V4 = 5105.0&nbsp;&nbsp;V2 = 5127.0&nbsp;&nbsp;difference = -22.0
20:11:45.379 error: V4 = 5117.0&nbsp;&nbsp;V2 = 5139.0&nbsp;&nbsp;difference = -22.0
20:11:46.380 closing H2 &#38; H4
</pre>
============= <br />
			<i>11.03.2021 20:27:43, SG.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53691/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53691/topic6320/</guid>
			<pubDate>Thu, 11 Mar 2021 20:27:43 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53679/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Проделал следующее:<br />Сразу после первого сообщения об ошибке до закрытия свечи открыл минутный график. Через пару минут <B>разорвал соединение</B> с сервером.<br />На свече объём 4984<br /><table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td>[FILE ID=7751]</td></tr></tbody></table><br />Затем переключился на другой таймфрейм и обратно на минутный.<br />Объём поменялся на 4982<br /><table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td>[FILE ID=7750]</td></tr></tbody></table><br />Саппорт, вас интересуют баг-репорты? <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7750&" width="493" height="545" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7751&" width="493" height="545" /><br /><i>11.03.2021 16:54:52, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53679/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53679/topic6320/</guid>
			<pubDate>Thu, 11 Mar 2021 16:54:52 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53613/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Насколько я понимаю, время свечки пересчитывается по локальным часам. Может ли быть такое, что сделка, попадающая точно на границу свечек, может попасть в предыдущую свечку а не в следующую при обработке в колбеке? При этом такой эффект не будет наблюдаться при загрузке архива свечек с сервера. Попробуйте вывести также содержимое соседних свечек. <br />
			<i>10.03.2021 18:01:07, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53613/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53613/topic6320/</guid>
			<pubDate>Wed, 10 Mar 2021 18:01:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53594/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вместо тысячи слов:<br />[FILE ID=7741] <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7741&" width="499" height="431" /><br /><i>10.03.2021 12:08:00, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53594/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53594/topic6320/</guid>
			<pubDate>Wed, 10 Mar 2021 12:08:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53556/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_bjMo40tQ" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/14644/" target="_blank" rel="nofollow">Артем</a></noindex> написал:<br />Между чтениями данных из базы данных образуется задержка, которая может быть достаточно большой чтобы выполнилась одна или более транзакций.<br />=============<br /> Транзакция в прошлом? В окне сообщений есть и время свечи и время самого сообщения.<br /><br />=============<br />В асинхронных фреймворках еще и не такое бывает. <br /><br /><br />Вроде как свечи обновляются срезами, разные срезы = расхождение в данных. <br />
			<i>09.03.2021 19:56:15, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53556/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53556/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 19:56:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53548/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Jue2EYkF" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />В message - одна и та же свеча из разных DataSource, открытых с небольшой (100 мс) временной разницей.<br />=============<br />Вернее не так, там разница более 1 сек. Но не суть.<br />График тот же, но данные разные.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_HMUp8zeK" href="/user/14644/" bx-tooltip-user-id="14644">Артем</a> написал:<br />возможно содержит неочевидные ошибки<br />=============<br />Возможно, первый sleep стоило бы заменить на<br />
====code====
<pre>repeat sleep(1000) until ds_D1:Size() &#62; 0</pre>
============= <br />
			<i>09.03.2021 17:08:53, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53548/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53548/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 17:08:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53546/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Дабы предупредить спекуляции на другие темы:<br />Обычно DataSource обновляются синхронно в порядке их создания.<br />И, если нет разрывов соединения или потерь пакетов, это позволяет в тестовом скрипте сравнивать данные из DataSource разных таймфреймов. <br />
			<i>09.03.2021 16:47:38, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53546/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53546/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 16:47:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53545/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ikwDhO4i" href="/user/14644/" bx-tooltip-user-id="14644">Артем</a> написал:<br />Между чтениями данных из базы данных образуется задержка, которая может быть достаточно большой чтобы выполнилась одна или более транзакций.<br />=============<br />Транзакция в прошлом? В окне сообщений есть и время свечи и время самого сообщения.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_3PY7JZsF" href="/user/14644/" bx-tooltip-user-id="14644">Артем</a> написал:<br />Что именно он должен делать, если словами?<br />=============<br />Показывать что<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_Rbm5fQhu" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br /><B>Иногда</B> CreateDataSource возвращает неверные данные<br />=============<br />Сравнивается дневной объём на D1 и M1. При несовпадении запоминается индекс крайней свечи M1 на момент создания DS (обычно эта свеча содержит ошибку).<br />По <B>закрытию</B> свечи M1 выводится её содержимое.<br />В message - одна и та же свеча из разных DataSource, открытых с небольшой (100 мс) временной разницей. <br />
			<i>09.03.2021 16:36:11, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53545/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53545/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 16:36:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53543/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Исполнение кода занимает некоторое время, команда sleep принудительно останавливает процесс. Между чтениями данных из базы данных образуется задержка, которая может быть достаточно большой чтобы выполнилась одна или более транзакций.<br /><br />Ваш код очень тяжело читается, возможно содержит неочевидные ошибки. Что именно он должен делать, если словами? <br />
			<i>09.03.2021 16:08:40, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53543/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53543/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 16:08:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53542/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Свеча <B>предпоследняя</B>. При чём здесь<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_cJfQTSYB" href="/user/14644/" bx-tooltip-user-id="14644">Артем</a> написал:<br />тайминга извлечения данных<br />=============<br />? <br />
			<i>09.03.2021 16:05:30, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53542/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53542/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 16:05:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53541/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Отличается на 1 транзакцию, судя по всему в результате различия тайминга извлечения данных. Не вижу в чём проблема. <br />
			<i>09.03.2021 15:45:34, Артем.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53541/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53541/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 15:45:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53533/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Должен быть закрыт график по тестируемому тайфрейму (в данном случае минутный) тестируемого инструмента. Остальные графики могут быть открыты. <br />
			<i>09.03.2021 09:32:13, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53533/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53533/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 09:32:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource возвращает неверные данные</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message53532/topic6320/">CreateDataSource возвращает неверные данные</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день.<br /><br />Иногда CreateDataSource возвращает неверные данные.<br />Демонстрационный скрипт:<table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td>
====code====
<pre>class, sec_code = "SPBFUT", "SiH1"

local run = true
function OnStop()
&nbsp;&nbsp;run = nil
&nbsp;&nbsp;return 500
end

function main()
&nbsp;&nbsp;local Volume&nbsp;&nbsp;-- Дневной объём
&nbsp;&nbsp;local ds_D1 = assert(CreateDataSource(class, sec_code, INTERVAL_D1))
&nbsp;&nbsp;ds_D1:SetUpdateCallback(function (index)
&nbsp;&nbsp;&nbsp;&nbsp;if not run then return end
&nbsp;&nbsp;&nbsp;&nbsp;Volume = ds_D1:V(index)
&nbsp;&nbsp;end)
&nbsp;&nbsp;sleep(1000)

&nbsp;&nbsp;local Day = os.date("*t").day
&nbsp;&nbsp;local CreateDS = true
&nbsp;&nbsp;local ds_M1, Index
&nbsp;&nbsp;local function cb(index)
&nbsp;&nbsp;&nbsp;&nbsp;if not run then return end
&nbsp;&nbsp;&nbsp;&nbsp;if Index and index &#62; Index then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run = false return&nbsp;&nbsp;-- Ждём закрытия свечи, на которой обнаружена ошибка
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;if math.floor(os.time() / 60) ~= math.floor(os.time(ds_M1:T(index)) / 60) then return end&nbsp;&nbsp;-- Время свечи не совпадает с текущим
&nbsp;&nbsp;&nbsp;&nbsp;local volume = 0&nbsp;&nbsp;-- Суммарный объём за текущий день
&nbsp;&nbsp;&nbsp;&nbsp;for i = index, 1, -1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local day = ds_M1:T(i).day
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if day &#60; Day then break
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif day == Day then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volume = volume + ds_M1:V(i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;if volume == Volume then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateDS = true&nbsp;&nbsp;-- Если ошибки нет, открываем новый DS
&nbsp;&nbsp;&nbsp;&nbsp;elseif Index == nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Index = index&nbsp;&nbsp;-- Если есть ошибка, запомним номер последней свечи
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message(string.format("&#91;ERROR&#93; %s: index: %u: %s, %s", sec_code, Index, Volume, volume), 3)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end

&nbsp;&nbsp;while run do
&nbsp;&nbsp;&nbsp;&nbsp;if CreateDS then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ds_M1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds_M1:Close()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(2000)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if run then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds_M1 = assert(CreateDataSource(class, sec_code, INTERVAL_M1))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds_M1:SetUpdateCallback(cb)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateDS = false
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;else sleep(1) end
&nbsp;&nbsp;end
&nbsp;&nbsp;ds_D1:Close()
&nbsp;&nbsp;if Index then
&nbsp;&nbsp;&nbsp;&nbsp;local function canle(ds, index)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local t = ds:T(index)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return string.format("%02u:%02u:%02u: %s; %s; %s; %s; %s", t.hour, t.min, t.sec, ds:O(index), ds:H(index), ds:L(index), ds:C(index), ds:V(index))
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;local s = string.format("%s: index: %u&#92;n%s", sec_code, Index, canle(ds_M1, Index))&nbsp;&nbsp;-- Выводим свечу, на которой обнаружена ошибка
&nbsp;&nbsp;&nbsp;&nbsp;ds_M1:Close()
&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;&nbsp;ds_M1 = assert(CreateDataSource(class, sec_code, INTERVAL_M1))
&nbsp;&nbsp;&nbsp;&nbsp;repeat sleep(1000) until ds_M1:Size() &#62; Index
&nbsp;&nbsp;&nbsp;&nbsp;message(s .. "&#92;n" .. canle(ds_M1, Index), 2)&nbsp;&nbsp;-- Сравниваем со свечой с тем же индексом из другого DS
&nbsp;&nbsp;end
&nbsp;&nbsp;ds_M1:Close()
end</pre>
=============
</td></tr></tbody></table><br />Графики должны быть закрыты. Можно запустить несколько скриптов с разными инструментами.<br />Через некоторое время будет сообщение вида:<br /><table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td>[FILE ID=7738] [FILE ID=7739] [FILE ID=7740]</td></tr></tbody></table><br />Возможно, большое количество свечей повышает вероятность ошибки. Но это не точно. <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7738&" width="349" height="218" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7739&" width="397" height="218" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=7740&" width="419" height="218" /><br /><i>09.03.2021 08:48:47, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message53532/topic6320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message53532/topic6320/</guid>
			<pubDate>Tue, 09 Mar 2021 08:48:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
