<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: INDICATORS.ZIP]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме INDICATORS.ZIP форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 14 May 2026 21:49:33 +0300</pubDate>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message27452/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_EC7zm2K5" href="/user/3905/" bx-tooltip-user-id="3905">Let_it_go</a>, <br /><br />ошибка в примере а не в коде скриптов.<br />укажите строку так<br />ma_out=func(i, {Period=3, Metod = EMA, VType=CLOSE}, ds)<br /><br />пример поправим <br />
			<i>30.10.2017 06:02:24, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message27452/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message27452/topic2524/</guid>
			<pubDate>Mon, 30 Oct 2017 06:02:24 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message27436/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день.<br />Я уже давно пользуюсь этими индикаторами, но у меня старая редакция. После выхода новой редакции я пытался их применить, у меня пошли ошибки, я бросил это дело и вернулся на старую редакцию INDICATORS.ZIP<br />---<br />Сейчас сижу разбираюсь с новой версией. <br />Ошибка выскакивает даже на том примере, который приведён в файле readme<br />
====code====
<pre>dofile(getScriptPath().."&#92;&#92;MA.lua")
function main() 
&nbsp;&nbsp;func = MA()
&nbsp;&nbsp;t_id = AllocTable()
&nbsp;&nbsp;AddColumn(t_id,1,"Price",true,QTABLE_INT_TYPE,10)
&nbsp;&nbsp;AddColumn(t_id,2,"MA",true,QTABLE_INT_TYPE,10)
&nbsp;&nbsp;CreateWindow(t_id)
&nbsp;&nbsp;SetWindowCaption(t_id,"MA")
&nbsp;&nbsp;ds = CreateDataSource("TQBR", "LKOH", INTERVAL_M5) 
&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;message (""..ds:Size(),1)
&nbsp;&nbsp;for i=1,ds:Size() do
&nbsp;&nbsp; ma_out=func(i, {Period=3, Metod = EMA, VType=ANY}, ds)
&nbsp;&nbsp; tmp=InsertRow(t_id,-1)
&nbsp;&nbsp; SetCell(t_id,tmp,1,tostring(ds:C(i)),ds:C(i))
&nbsp;&nbsp; SetCell(t_id,tmp,2,tostring(ma_out),ma_out)
&nbsp;&nbsp;end 
end</pre>
=============
выскакивает message 3106 (количество свечек), а потом ошибка:<br /><img src="https://image.prntscr.com/image/e7j6YHKOQVKhwcQhPVxq2w.jpeg" alt="Пользователь добавил изображение" border="0" /><br /><br />Это он ругается на строчку
====code====
<pre>tmp.p = (tmp.pp*(P-1) + 2*GetValue(it.p,VT,ds)) / (P+1)</pre>
=============
помогите пожалуйста разобраться. <br />
			<i>28.10.2017 18:25:40, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message27436/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message27436/topic2524/</guid>
			<pubDate>Sat, 28 Oct 2017 18:25:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message23867/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_qqxHcC46" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Здравствуйте,<br />В будущем, возможно актуализируем.<br />=============<br /><noindex><a href="https://forum.quik.ru/messages/forum10/message23865/topic2658/#message23865" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum10/message23865/topic2658/#message23865</a></noindex> <br />
			<i>19.04.2017 14:35:49, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message23867/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message23867/topic2524/</guid>
			<pubDate>Wed, 19 Apr 2017 14:35:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22807/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_mQ6ZF6lf" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br /><br />====quote====<br /> Николай &nbsp;Камынин &nbsp; написал:<br />Быстрее будет, если вместо поиска свечки назад, просто запоминать индекс последней существующей свечки. <br />При отсутствии свечки брать сохраненный индекс.<br />=============<br />Возможно, но не всегда надо именно прошлую свечку. Часто надо -3, -2. Так что просто запоминать будет та еще конструкция. А эта функция универсальна, получив индекс бери любое значение свечи.<br /><br />Хотелось бы иметь &quot;железную&quot; функцию получения ближайшей существующей свечи к идексу вниз и вверх.<br />=============<br />Здравствуйте! <br /> <br /> Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО. <br />
			<i>01.03.2017 12:20:58, Egor Zaytsev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22807/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22807/topic2524/</guid>
			<pubDate>Wed, 01 Mar 2017 12:20:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22745/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_HmZqvf3Y" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br />Быстрее будет, если вместо поиска свечки назад, просто запоминать индекс последней существующей свечки. <br />При отсутствии свечки брать сохраненный индекс.<br />=============<br />Возможно, но не всегда надо именно прошлую свечку. Часто надо -3, -2. Так что просто запоминать будет та еще конструкция. А эта функция универсальна, получив индекс бери любое значение свечи.<br /><br />Хотелось бы иметь &quot;железную&quot; функцию получения ближайшей существующей свечи к идексу вниз и вверх. <br />
			<i>25.02.2017 20:37:42, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22745/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22745/topic2524/</guid>
			<pubDate>Sat, 25 Feb 2017 20:37:42 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22569/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			вообще-то свечи - это разделение сделок по одинаковым временным интервалам. Поэтому если в каком-то интервале нет сделок то и свеча нулевая.<br />Поэтому пустая свеча - это время без сделок. Если сделок нет, то свеча пустая и считать нечего.<br />Поэтому правильно - ничего не изменять на пустых свечах.<br />Но так как применение различных статистических методов к свечам вообще &nbsp;не корректно,<br /> то можно считать все, что угодно.<br />-----------------------------<br />Как говорится в анекдоте: Там висит кирпич, туда ехать нельзя, но вам можно. <br />
			<i>17.02.2017 19:25:07, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22569/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22569/topic2524/</guid>
			<pubDate>Fri, 17 Feb 2017 19:25:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22544/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0NM5az5v" href="/user/3265/" bx-tooltip-user-id="3265">Василий Петров</a> написал:<br />Будем ждать. К слову, у Гута-Банка на VERSION = 7.6.1.1 ровно та же ошибка.<br />=============<br />Поправка: не смотря на то, что в логах &quot;SERVER = Информационно-торговая система QUIK &quot;Гута-Банк&quot;&quot;, на самом деле это логи реального счёта ВТБ24 на версии VERSION = 7.8.1.21. На нём ровно та же проблема - 2 обсчёта свечей. <br />
			<i>16.02.2017 18:04:02, Василий Петров.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22544/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22544/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 18:04:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22542/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_LWlDcaNA" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br />Быстрее будет, если вместо поиска свечки назад, просто запоминать индекс последней существующей свечки. <br />При отсутствии свечки брать сохраненный индекс.<br />=============<br />Вы правы, внедрю. <br />
			<i>16.02.2017 17:47:41, Василий Петров.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22542/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22542/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 17:47:41 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22540/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_nmEfQSKL" href="/user/54/" bx-tooltip-user-id="54">Старатель</a>, <br /><br />"Очень" это своя база данных, тестер, робот, анализ прошедшего дня с сохранением в эксель. Конечно есть и минусы. В том числе визуализация ценовых рядов. Но зато это "очень" в амиброкере под управлением того же матлаба. Там на одном графике у меня до четырех стратегий по четыре варианта параметров. А в квике получилось только три и без визуализации параметров. <br />
			<i>16.02.2017 14:54:56, валерий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22540/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22540/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 14:54:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22533/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_C5QpzUeo" href="/user/1028/" bx-tooltip-user-id="1028">валерий</a> написал:<br />Быстрее будет скинуть данные в матлаб и сделать с ними все, что угодно. Квик, хоть с луа, хоть без, даже для визуалиции не очень...<br />=============<br />Вы можете показать что в вашем понимании "очень" в том же матлаб?<br />Хотя б скрин "визуализации". <br />
			<i>16.02.2017 12:38:12, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22533/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22533/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 12:38:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22529/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_QTfvwu8Z" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a>, <br />Быстрее будет скинуть данные в матлаб и сделать с ними все, что угодно. Квик, хоть с луа, хоть без, даже для визуалиции не очень... <br />
			<i>16.02.2017 10:59:58, валерий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22529/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22529/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 10:59:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22526/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_KMQnWDqE" href="/user/3265/" bx-tooltip-user-id="3265">Василий Петров</a> написал:<br /><br />====quote====<br /> Nikolay &nbsp; написал:<br />Ме помогли данные конструкции.<br /><br />Нет свечки, тогда значению массива текущей даем предудыщее значение.				
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;&nbsp; not&nbsp;&nbsp; CandleExist(index)&nbsp;&nbsp; then&nbsp;&nbsp;
CC&#91;index&#93;&nbsp;&nbsp; =&nbsp;&nbsp; CC&#91;index&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&#93; 
&nbsp;&nbsp;return&nbsp;&nbsp;&nbsp;&nbsp; nil&nbsp;&nbsp;
&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
=============
<br />Если надо получить значение пршлой свечки, то сначала находим ближайшую существующую прошлую, через эту функцию<br />
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;&nbsp;&nbsp;&nbsp;FindExistCandle (I)
&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp; out&nbsp;&nbsp; =&nbsp;&nbsp; I
&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp; while&nbsp;&nbsp;&nbsp;&nbsp; not&nbsp;&nbsp; CandleExist(out)&nbsp;&nbsp; do&nbsp;&nbsp;
&nbsp;&nbsp; out&nbsp;&nbsp; =&nbsp;&nbsp; out&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; out
 
&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
=============
		
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;&nbsp; previous&nbsp;&nbsp; =&nbsp;&nbsp; index&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;&nbsp; not&nbsp;&nbsp; CandleExist(previous)&nbsp;&nbsp; then&nbsp;&nbsp;
&nbsp;&nbsp; previous&nbsp;&nbsp; =&nbsp;&nbsp; FindExistCandle(previous)
&nbsp;&nbsp;end&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;if&nbsp;&nbsp; C(index)&nbsp;&nbsp; &#62;&nbsp;&nbsp; C(previous)&nbsp;&nbsp; then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
=============
<br />=============<br />Соорудил подобное при помощи рекурсивного вызова функции.<br />
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; GetPrice (ind)
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;ind ~ =&nbsp;&nbsp; 0&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;CandleExist(ind)&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp; false&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;GetPrice(ind -&nbsp;&nbsp;1 );
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;С(ind)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; 0 
&nbsp;&nbsp;&nbsp;&nbsp;end 
 end 
&nbsp;&nbsp;</pre>
=============
<br />=============<br />Быстрее будет, если вместо поиска свечки назад, просто запоминать индекс последней существующей свечки. <br />При отсутствии свечки брать сохраненный индекс. <br />
			<i>16.02.2017 08:50:26, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22526/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22526/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 08:50:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22525/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_6gMEg9ge" href="/user/1028/" bx-tooltip-user-id="1028">валерий</a> написал:<br />Концепции Амиброкера это почемуто не противоречит и пользователей устраивает. Я же не сам это придумал.<br />Любой индикатор это вообще то, чего реально нет. Это отражение реальности, а не сама реальность. Способов отражения, в том числе и пропусков, несчетное множество. А предложение позволяет пользователю выбрать или самое простое и ходовое &nbsp;zero-order hold или полную своду творчества или компромисс, когда по нулевым объемам можно выявить пропуски и как-то дополнить зох.<br />=============<br />Восприятие мира человеком - это отражение реальности, а не сама реальность. <br />
			<i>16.02.2017 08:46:48, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22525/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22525/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 08:46:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22521/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_9R9Va0N2" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Ме помогли данные конструкции.<br /><br />Нет свечки, тогда значению массива текущей даем предудыщее значение.				
====code====
<pre>&nbsp;&nbsp; if&nbsp;&nbsp; not&nbsp;&nbsp;CandleExist(index)&nbsp;&nbsp;then 
CC&#91;index&#93;&nbsp;&nbsp;=&nbsp;&nbsp;CC&#91;index -&nbsp;&nbsp;1 &#93; 
 return&nbsp;&nbsp; nil 
 end&nbsp;&nbsp; </pre>
=============
<br />Если надо получить значение пршлой свечки, то сначала находим ближайшую существующую прошлую, через эту функцию<br />
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; FindExistCandle (I)
&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;&nbsp;out&nbsp;&nbsp;=&nbsp;&nbsp;I
&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;&nbsp; not&nbsp;&nbsp;CandleExist(out)&nbsp;&nbsp;do 
&nbsp;&nbsp; out&nbsp;&nbsp;=&nbsp;&nbsp;out&nbsp;&nbsp;-&nbsp;&nbsp;1 
&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;out
 
 end&nbsp;&nbsp; </pre>
=============
		
====code====
<pre>&nbsp;&nbsp; local&nbsp;&nbsp;previous&nbsp;&nbsp;=&nbsp;&nbsp;index -&nbsp;&nbsp;1 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 if&nbsp;&nbsp; not&nbsp;&nbsp;CandleExist(previous)&nbsp;&nbsp;then 
&nbsp;&nbsp; previous&nbsp;&nbsp;=&nbsp;&nbsp;FindExistCandle(previous)
 end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 if&nbsp;&nbsp;C(index)&nbsp;&nbsp;&#62;&nbsp;&nbsp;C(previous)&nbsp;&nbsp;then&nbsp;&nbsp; </pre>
=============
<br />=============<br />Соорудил подобное при помощи рекурсивного вызова функции.<br />
====code====
<pre>function GetPrice(ind)
&nbsp;&nbsp;&nbsp;if ind ~= 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if CandleExist(ind) == false then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return GetPrice(ind-1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return С(ind)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0
&nbsp;&nbsp;&nbsp;end
end
</pre>
============= <br />
			<i>16.02.2017 01:01:35, Василий Петров.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22521/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22521/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 01:01:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22520/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_BgND79GW" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />====quote====<br /> Василий Петров &nbsp; написал:<br /><br />====quote====<br /> Sergey Gorokhov &nbsp; написал:<br />Size()<br />=============<br />Благодарю.<br /><br />В основных функциях Init(), OnCalculate(), OnDestroy() поставил вывод в текстовый лог основных значений свечей: index, T(), C(). Обнаружил, что OnCalculate перебирает все свечи два раза, при этом общее количество свечей во вторую итерацию иногда меняется, иногда нет. Как такое поведение можно объяснить?<br />=============<br />Ошибка будет исправлена в одной из очередных версий программы.<br />Приносим извинения за причиненные неудобства.<br />=============<br />Будем ждать. К слову, у Гута-Банка на VERSION = 7.6.1.1 ровно та же ошибка. <br />
			<i>16.02.2017 00:59:10, Василий Петров.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22520/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22520/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 00:59:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22519/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_e46w7yUQ" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br />function isnil(a,b) <br />return a or b; &nbsp;<br />end;<br />=============<br />Спасибо, исправлю. <br />
			<i>16.02.2017 00:48:25, Василий Петров.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22519/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22519/topic2524/</guid>
			<pubDate>Thu, 16 Feb 2017 00:48:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22490/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ме помогли данные конструкции.<br /><br />Нет свечки, тогда значению массива текущей даем предудыщее значение.				
====code====
<pre>if not CandleExist(index) then
CC&#91;index&#93; = CC&#91;index-1&#93; 
return nil
end</pre>
=============
<br />Если надо получить значение пршлой свечки, то сначала находим ближайшую существующую прошлую, через эту функцию<br />
====code====
<pre>function FindExistCandle(I)
&nbsp;&nbsp;&nbsp;local out = I
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;while not CandleExist(out) do
&nbsp;&nbsp;&nbsp;out = out -1
&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;return out
 
end</pre>
=============
		
====code====
<pre>local previous = index-1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if not CandleExist(previous) then
&nbsp;&nbsp;&nbsp;previous = FindExistCandle(previous)
end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if C(index) &#62; C(previous) then</pre>
============= <br />
			<i>15.02.2017 14:07:26, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22490/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22490/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 14:07:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22489/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_DvkvAL83" href="/user/3265/" bx-tooltip-user-id="3265">Василий Петров</a> написал:<br /><br />====quote====<br /> Sergey Gorokhov &nbsp; написал:<br />Size()<br />=============<br />Благодарю.<br /><br />В основных функциях Init(), OnCalculate(), OnDestroy() поставил вывод в текстовый лог основных значений свечей: index, T(), C(). Обнаружил, что OnCalculate перебирает все свечи два раза, при этом общее количество свечей во вторую итерацию иногда меняется, иногда нет. Как такое поведение можно объяснить?<br />=============<br /><br />Ошибка будет исправлена в одной из очередных версий программы.<br />Приносим извинения за причиненные неудобства. <br />
			<i>15.02.2017 14:06:28, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22489/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22489/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 14:06:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22481/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_h8vPccub" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a>, <br />вы так коллегам своим будете говорить. <br />
			<i>15.02.2017 11:40:16, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22481/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22481/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 11:40:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22480/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_6qXBdLhe" href="/user/54/" bx-tooltip-user-id="54">Старатель</a>, <br />Успокойтесь, ошибка не исправлена. <br />
			<i>15.02.2017 11:02:59, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22480/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22480/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 11:02:59 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22479/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Jarcb6TP" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />И? Тут речь про 7.8, а там про 7.6.<br />=============<br />И? Вы действительно думали, что в 7.8 эта ошибка исправлена? Какой логикой вы руководствовались? <br />
			<i>15.02.2017 10:54:04, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22479/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22479/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 10:54:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22478/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_O6l7E4kl" href="/user/54/" bx-tooltip-user-id="54">Старатель</a>, <br /><br />И? Тут речь про 7.8, а там про 7.6. <br />
			<i>15.02.2017 10:12:00, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22478/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22478/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 10:12:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22477/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_SHiZaiH5" href="/user/3265/" bx-tooltip-user-id="3265">Василий Петров</a> написал:<br />Обнаружил, что OnCalculate перебирает все свечи два раза, при этом общее количество свечей во вторую итерацию иногда меняется, иногда нет. Как такое поведение можно объяснить?<br />=============<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_E5odZX21" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Что-то похожее уже <B>чинилось</B>, проверьте поведение на актуальной версии, сейчас доступна версия 7.7.<br />=============<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_qRafzAM0" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Проблема <B>изучается</B>. Постараемся в ближайшее время дать ответ.<br />=============<br /><br />Бред какой-то.<br /><noindex><a href="https://forum.quik.ru/messages/forum10/message21343/topic518/#message21343" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum10/message21343/topic518/#message21343</a></noindex><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_9crfWtnt" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />====quote====<br /> Старатель &nbsp; написал:<br />1. Исправьте ошибку с лишними пересчётами индикаторов при их добавлении или изменении.<br /><br />=============<br />Мы <B>знаем</B> об этой проблеме и уже работаем над ее устранением.<br />=============<br /> <br />
			<i>15.02.2017 09:58:22, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22477/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22477/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 09:58:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22474/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте!<br /><br />Проблема изучается. Постараемся в ближайшее время дать ответ. <br />
			<i>15.02.2017 08:50:09, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22474/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22474/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 08:50:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22467/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Может просто просто соединение было потеряно? <br />
			<i>15.02.2017 00:44:12, Сергей Дворцов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22467/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22467/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 00:44:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22466/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_e0YNZGNR" href="/user/3265/" bx-tooltip-user-id="3265">Василий Петров</a> написал:<br />Запускал на SRH7 на 5 минутах. Лог длинный, вот его кусок, где видно, что OnCalculate отрабатывает 2 раза
====code====
<pre>&nbsp;&nbsp;VERSION&nbsp;&nbsp;=&nbsp;&nbsp; 7.8 . 1.21 
TRADEDATE&nbsp;&nbsp;=&nbsp;&nbsp; 14.02 . 2017 
SERVERTIME&nbsp;&nbsp;=&nbsp;&nbsp; 20 : 01 : 52 
LASTRECORDTIME&nbsp;&nbsp;=&nbsp;&nbsp; 20 : 01 : 52 
NUMRECORDS&nbsp;&nbsp;=&nbsp;&nbsp; 5401561 
LASTRECORD&nbsp;&nbsp;=&nbsp;&nbsp; 8011148 
LATERECORD&nbsp;&nbsp;=&nbsp;&nbsp; 7965462 
CONNECTION&nbsp;&nbsp;=&nbsp;&nbsp;установлено
IPADDRESS&nbsp;&nbsp;=&nbsp;&nbsp; 217.14 . 50.203 
IPPORT&nbsp;&nbsp;=&nbsp;&nbsp; 15100 
IPCOMMENT&nbsp;&nbsp;=&nbsp;&nbsp;Демо контур
SERVER&nbsp;&nbsp;=&nbsp;&nbsp;VTB24
 ..&nbsp;&nbsp;..&nbsp;&nbsp;.. .
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 00&nbsp;&nbsp;OnCalc() CandleExist( 3530 ):&nbsp;&nbsp;true ; T( 3530 );&nbsp;&nbsp;20170214193500 ; C( 3530 ):&nbsp;&nbsp;16422 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 00&nbsp;&nbsp;OnCalc() CandleExist( 3531 ):&nbsp;&nbsp;true ; T( 3531 );&nbsp;&nbsp;20170214194000 ; C( 3531 ):&nbsp;&nbsp;16413 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 00&nbsp;&nbsp;OnCalc() CandleExist( 3532 ):&nbsp;&nbsp;true ; T( 3532 );&nbsp;&nbsp;20170214194500 ; C( 3532 ):&nbsp;&nbsp;16421 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 00&nbsp;&nbsp;OnCalc() CandleExist( 3533 ):&nbsp;&nbsp;true ; T( 3533 );&nbsp;&nbsp;20170214195000 ; C( 3533 ):&nbsp;&nbsp;16418 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 00&nbsp;&nbsp;OnCalc() CandleExist( 3534 ):&nbsp;&nbsp;true ; T( 3534 );&nbsp;&nbsp;20170214195500 ; C( 3534 ):&nbsp;&nbsp;16412 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 00&nbsp;&nbsp;OnCalc() CandleExist( 3535 ):&nbsp;&nbsp;true ; T( 3535 );&nbsp;&nbsp;20170214200000 ; C( 3535 ):&nbsp;&nbsp;16406 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 01&nbsp;&nbsp;OnCalc() CandleExist( 1 ):&nbsp;&nbsp;false ; T( 1 );&nbsp;&nbsp;20170109151500 ; C( 1 ):&nbsp;&nbsp;- 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 01&nbsp;&nbsp;OnCalc() CandleExist( 2 ):&nbsp;&nbsp;false ; T( 2 );&nbsp;&nbsp;20170109152000 ; C( 2 ):&nbsp;&nbsp;- 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 01&nbsp;&nbsp;OnCalc() CandleExist( 3 ):&nbsp;&nbsp;false ; T( 3 );&nbsp;&nbsp;20170109152500 ; C( 3 ):&nbsp;&nbsp;- 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 01&nbsp;&nbsp;OnCalc() CandleExist( 4 ):&nbsp;&nbsp;false ; T( 4 );&nbsp;&nbsp;20170109153000 ; C( 4 ):&nbsp;&nbsp;- 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 01&nbsp;&nbsp;OnCalc() CandleExist( 5 ):&nbsp;&nbsp;false ; T( 5 );&nbsp;&nbsp;20170109153500 ; C( 5 ):&nbsp;&nbsp;- 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 01&nbsp;&nbsp;OnCalc() CandleExist( 6 ):&nbsp;&nbsp;false ; T( 6 );&nbsp;&nbsp;20170109154000 ; C( 6 ):&nbsp;&nbsp;- 
 ..&nbsp;&nbsp;..&nbsp;&nbsp;..&nbsp;&nbsp;.. 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 02&nbsp;&nbsp;OnCalc() CandleExist( 3534 ):&nbsp;&nbsp;true ; T( 3534 );&nbsp;&nbsp;20170214195500 ; C( 3534 ):&nbsp;&nbsp;16412 
 02 / 14 / 17&nbsp;&nbsp; 20 : 02 : 02&nbsp;&nbsp;OnCalc() CandleExist( 3535 ):&nbsp;&nbsp;true ; T( 3535 );&nbsp;&nbsp;20170214200000 ; C( 3535 ):&nbsp;&nbsp;16406 
&nbsp;&nbsp;</pre>
=============
<br />=============<br /> <br />
			<i>15.02.2017 00:43:19, Сергей Дворцов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22466/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22466/topic2524/</guid>
			<pubDate>Wed, 15 Feb 2017 00:43:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22460/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Эту функцию:<br />------------------<br />function isnil(a,b) <br /> &nbsp; if a == nil then &nbsp; &nbsp; &nbsp; return b &nbsp; <br /> else &nbsp; &nbsp; &nbsp; return a &nbsp; &nbsp;end; <br />end;<br />------------------------<br />можно записать так:<br />------------------<br />function isnil(a,b) <br />return a or b; &nbsp;<br />end; <br />
			<i>14.02.2017 20:13:32, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22460/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22460/topic2524/</guid>
			<pubDate>Tue, 14 Feb 2017 20:13:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22459/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Извините, стоило вставить спойлер вокруг кода. <br />
			<i>14.02.2017 20:10:13, Василий Петров.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22459/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22459/topic2524/</guid>
			<pubDate>Tue, 14 Feb 2017 20:10:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22458/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Запускал на SRH7 на 5 минутах. Лог длинный, вот его кусок, где видно, что OnCalculate отрабатывает 2 раза
====code====
<pre>VERSION = 7.8.1.21
TRADEDATE = 14.02.2017
SERVERTIME = 20:01:52
LASTRECORDTIME = 20:01:52
NUMRECORDS = 5401561
LASTRECORD = 8011148
LATERECORD = 7965462
CONNECTION = установлено
IPADDRESS = 217.14.50.203
IPPORT = 15100
IPCOMMENT = Демо контур
SERVER = VTB24
.......
02/14/17 20:02:00 OnCalc() CandleExist(3530): true; T(3530); 20170214193500; C(3530): 16422
02/14/17 20:02:00 OnCalc() CandleExist(3531): true; T(3531); 20170214194000; C(3531): 16413
02/14/17 20:02:00 OnCalc() CandleExist(3532): true; T(3532); 20170214194500; C(3532): 16421
02/14/17 20:02:00 OnCalc() CandleExist(3533): true; T(3533); 20170214195000; C(3533): 16418
02/14/17 20:02:00 OnCalc() CandleExist(3534): true; T(3534); 20170214195500; C(3534): 16412
02/14/17 20:02:00 OnCalc() CandleExist(3535): true; T(3535); 20170214200000; C(3535): 16406
02/14/17 20:02:01 OnCalc() CandleExist(1): false; T(1); 20170109151500; C(1): -
02/14/17 20:02:01 OnCalc() CandleExist(2): false; T(2); 20170109152000; C(2): -
02/14/17 20:02:01 OnCalc() CandleExist(3): false; T(3); 20170109152500; C(3): -
02/14/17 20:02:01 OnCalc() CandleExist(4): false; T(4); 20170109153000; C(4): -
02/14/17 20:02:01 OnCalc() CandleExist(5): false; T(5); 20170109153500; C(5): -
02/14/17 20:02:01 OnCalc() CandleExist(6): false; T(6); 20170109154000; C(6): -
........
02/14/17 20:02:02 OnCalc() CandleExist(3534): true; T(3534); 20170214195500; C(3534): 16412
02/14/17 20:02:02 OnCalc() CandleExist(3535): true; T(3535); 20170214200000; C(3535): 16406
</pre>
============= <br />
			<i>14.02.2017 20:08:50, Василий Петров.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22458/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22458/topic2524/</guid>
			<pubDate>Tue, 14 Feb 2017 20:08:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>INDICATORS.ZIP</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message22457/topic2524/">INDICATORS.ZIP</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>Settings = {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name = "test",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name = "test",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color = RGB(192,224,255),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type = TYPE_LINE,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Width = 2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
function Init()

&nbsp;&nbsp;&nbsp;local params = {"VERSION", "TRADEDATE", "SERVERTIME",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"LASTRECORDTIME", "NUMRECORDS", "LASTRECORD","LATERECORD",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"CONNECTION", "IPADDRESS", "IPPORT", "IPCOMMENT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"SERVER", "SESSIONID", "USER", "USERID", "ORG", "MEMORY",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"LOCALTIME", "CONNECTIONTIME", "MESSAGESSENT", "ALLSENT",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"BYTESSENT", "BYTESPERSECSENT", "MESSAGESRECV", "BYTESRECV",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"ALLRECV", "BYTESPERSECRECV", "AVGSENT", "AVGRECV",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"LASTPINGTIME", "LASTPINGDURATION", "AVGPINGDURATION",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"MAXPINGTIME", "MAXPINGDURATION"}
&nbsp;&nbsp;&nbsp;logfile = io.open(getScriptPath() .. "/Logs/" .. Settings.Name..".log", "a+");
&nbsp;&nbsp;&nbsp;for key,v in ipairs(params) do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logfile:write(v .. " = " .. GetInfoParam(v) .. "&#92;n")
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;logfile:flush();



&nbsp;&nbsp;&nbsp;&nbsp;return 1

end

function OnCalculate(index)
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;WriteLog ("OnCalc() ".."CandleExist("..index.."): "..tostring(CandleExist(index)).."; T("..index.."); "..isnil(toYYYYMMDDHHMMSS(T(index))," - ").."; C("..index.."): "..isnil(C(index),"-"));
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;return nil;

end

-- Пользовательcкие функции
function WriteLog(text)

&nbsp;&nbsp;&nbsp;logfile:write(tostring(os.date("%c",os.time())).." "..text.."&#92;n");
&nbsp;&nbsp;&nbsp;logfile:flush();
&nbsp;&nbsp;&nbsp;LASTLOGSTRING = text;

end;

function isnil(a,b)
&nbsp;&nbsp;&nbsp;if a == nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return b
&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return a
&nbsp;&nbsp;&nbsp;end;
end;

function toYYYYMMDDHHMMSS(datetime)
&nbsp;&nbsp;&nbsp;if type(datetime) ~= "table" then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("в функции toYYYYMMDDHHMMSS неверно задан параметр: datetime="..tostring(datetime))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ""
&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local Res = tostring(datetime.year)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #Res == 1 then Res = "000"..Res end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local month = tostring(datetime.month)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #month == 1 then Res = Res.."0"..month; else Res = Res..month; end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local day = tostring(datetime.day)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #day == 1 then Res = Res.."0"..day; else Res = Res..day; end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local hour = tostring(datetime.hour)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #hour == 1 then Res = Res.."0"..hour; else Res = Res..hour; end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local minute = tostring(datetime.min)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #minute == 1 then Res = Res.."0"..minute; else Res = Res..minute; end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local sec = tostring(datetime.sec);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #sec == 1 then Res = Res.."0"..sec; else Res = Res..sec; end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return Res
&nbsp;&nbsp;&nbsp;end
end --toYYYYMMDDHHMMSS
</pre>
============= <br />
			<i>14.02.2017 20:05:46, Василий Петров.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message22457/topic2524/</link>
			<guid>http://forum.quik.ru/messages/forum10/message22457/topic2524/</guid>
			<pubDate>Tue, 14 Feb 2017 20:05:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
