<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Не изменяется отображение линии независимо от указанного в Settings]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Не изменяется отображение линии независимо от указанного в Settings форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 05:24:13 +0300</pubDate>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36674/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_6JIoMIJY" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Это не шутка<br />=============<br />Да, растянул график по горизонтали и увидел штрихи. Это ж надо так гениально воплотить идею, чтобы длина штриха была равна ширине свечки, а расстояние между штрихами можно было разглядеть только под микроскопом!!! <br />
			<i>28.02.2019 15:03:45, VNG_nemo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36674/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36674/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 15:03:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36672/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вот скрин - на нем все отлично видно. Линия на скрине сплошная красная, в диалоговом окне штрих-точка. <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=5710&" width="790" height="632" /><br /><i>28.02.2019 14:56:16, VNG_nemo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36672/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36672/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 14:56:16 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36670/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4SsCxdol" href="/user/12873/" bx-tooltip-user-id="12873">VNG_nemo</a> написал:<br />Это была шутка? Сергей, все осталось без изменения. В диалоговом окне редактирования линия указана дашдот, а на чарте сплошная.<br />=============<br />Это не шутка, линия TYPE_DASHDOT масштабируется вместе с графиком. т.е. если на графике много свечек то визуально будет сплошная линия, если мало свечек то будет видно точка тире.<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_WA8Pk3w3" href="/user/12873/" bx-tooltip-user-id="12873">VNG_nemo</a> написал:<br />Кроме того, прошу Вас ответить на вопрос выше - как такое может быть, что на Н4 и ниже все норм, а при переходе на дневки и выше массив перестает переиндексироваться.<br /><br />=============<br />ответ уже был см выше. <br />
			<i>28.02.2019 14:48:30, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36670/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36670/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 14:48:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36669/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_rYoRn4F0" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/12873/" target="_blank" rel="nofollow">VNG_nemo</a></noindex> написал:<br /> &nbsp;<br />====quote====<br /> <noindex><a href="/user/17/" target="_blank" rel="nofollow">Sergey Gorokhov</a></noindex> &nbsp;написал:<br />Проблема в толщине линии, укажите &nbsp;Width = 1,<br />=============<br /> Не помогло.<br />=============<br /> Приблизьте график.<br />=============<br />Это была шутка? Сергей, все осталось без изменения. В диалоговом окне редактирования линия указана дашдот, а на чарте сплошная.<br />Кроме того, прошу Вас ответить на вопрос выше - как такое может быть, что на Н4 и ниже все норм, а при переходе на дневки и выше массив перестает переиндексироваться. <br />
			<i>28.02.2019 14:07:59, VNG_nemo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36669/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36669/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 14:07:59 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36668/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_j24wwWMR" href="/user/12873/" bx-tooltip-user-id="12873">VNG_nemo</a> написал:<br />Локализовал проблему о которой писАл выше. Если в код Init() &nbsp;в цикл добавить отладочные выражения, то видно, что в строке tposixByTime[tDT[k]] = k не происходит присваивания и длина массива равна нулю, хотя с массивом tDT[k] все ОК, и его длина при проверке после выхода из цикла равна количеству свечей. В чем засада?<br />З.Ы. На ТФ Н4 все работает, на дневном - нет.<br /> 
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;&nbsp;k =&nbsp;&nbsp;0 ,NmbrOfCandles -&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;&nbsp;=&nbsp;&nbsp;count&nbsp;&nbsp;+&nbsp;&nbsp; 1 ;&nbsp;&nbsp;if&nbsp;&nbsp;count&nbsp;&nbsp;&#62;&nbsp;&nbsp; 100000&nbsp;&nbsp; then&nbsp;&nbsp; break&nbsp;&nbsp; end ;
 --преобразуем в POSIX-формат поле datetime 
 --транспонируем таблицу - индексируем по времени&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tDT&#91;k&#93;&nbsp;&nbsp;=&nbsp;&nbsp;os.time (t&#91;k&#93;.datetime);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tposixByTime&#91;tDT&#91;k&#93;&#93;&nbsp;&nbsp;=&nbsp;&nbsp;k;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;k =&nbsp;&nbsp;=&nbsp;&nbsp;1&nbsp;&nbsp; then&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ( "Init_tDT_ "&nbsp;&nbsp;.. tostring(tDT&#91;k&#93;))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;k =&nbsp;&nbsp;= NmbrOfCandles -&nbsp;&nbsp;1&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ( "Init_tDT_tposixByTime_ "&nbsp;&nbsp;.. tostring( # tDT) .. " " .. tostring( # tposixByTime))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;end 
&nbsp;&nbsp;</pre>
=============
 <br />=============<br /><br />Это уже особенность самого lua<br /><br />Если указать так<br />
====code====
<pre>tposixByTime={}
tposixByTime&#91;2&#93; = 1;
tposixByTime&#91;3&#93; = 2;
 message("tposixByTime="..tostring(#tposixByTime))</pre>
=============
<br /><br />то будет ноль.<br />если так:<br />
====code====
<pre>tposixByTime={}
tposixByTime&#91;1&#93; = 1;
tposixByTime&#91;2&#93; = 2;
 message("tposixByTime="..tostring(#tposixByTime))</pre>
=============
<br /><br />то будет два.<br /><br />объяснение в документации на Lua<br /><br />====quote====<br />2.5.5 – The Length Operator<br />The length operator is denoted by the unary operator #. The length of a string is its number of bytes (that is, the usual meaning of string length when each character is one byte).<br /><br />The length of a table t is defined to be any integer index n such that t[n] is not nil and t[n+1] is nil; moreover, if t[1] is nil, n can be zero. For a regular array, with non-nil values from 1 to a given n, its length is exactly that n, the index of its last value. If the array has &quot;holes&quot; (that is, nil values between other non-nil values), then #t can be any of the indices that directly precedes a nil value (that is, it may consider any such nil value as the end of the array).<br />=============<br /> <br />
			<i>28.02.2019 14:06:54, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36668/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36668/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 14:06:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36666/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_vWP4u7gh" href="/user/12873/" bx-tooltip-user-id="12873">VNG_nemo</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/17/" target="_blank" rel="nofollow">Sergey Gorokhov</a></noindex> написал:<br />Проблема в толщине линии, укажите &nbsp;Width = 1,<br />=============<br />Не помогло.<br />=============<br />Приблизьте график. <br />
			<i>28.02.2019 13:52:06, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36666/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36666/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 13:52:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36663/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_n2NIc3Rz" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Проблема в толщине линии, укажите &nbsp;Width = 1,<br />=============<br />Не помогло. <br />
			<i>28.02.2019 13:22:23, VNG_nemo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36663/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36663/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 13:22:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36662/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Локализовал проблему о которой писАл выше. Если в код Init() &nbsp;в цикл добавить отладочные выражения, то видно, что в строке tposixByTime&#91;tDT&#91;k&#93;&#93; = k не происходит присваивания и длина массива равна нулю, хотя с массивом tDT&#91;k&#93; все ОК, и его длина при проверке после выхода из цикла равна количеству свечей. В чем засада?<br />З.Ы. На ТФ Н4 все работает, на дневном - нет.<br />
====code====
<pre>&nbsp;&nbsp;&nbsp;for k=0,NmbrOfCandles-1&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count = count + 1; if count &#62; 100000 then break end;
--преобразуем в POSIX-формат поле datetime
--транспонируем таблицу - индексируем по времени&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tDT&#91;k&#93; = os.time (t&#91;k&#93;.datetime);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tposixByTime&#91;tDT&#91;k&#93;&#93; = k;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if k==1 then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Init_tDT_ "..tostring(tDT&#91;k&#93;))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if k==NmbrOfCandles-1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Init_tDT_tposixByTime_ "..tostring(#tDT).." "..tostring(#tposixByTime))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;end
</pre>
============= <br />
			<i>28.02.2019 13:17:47, VNG_nemo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36662/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36662/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 13:17:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36661/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_rb8Cn4tK" href="/user/12873/" bx-tooltip-user-id="12873">VNG_nemo</a> написал:<br />Линия, которая отражается неправильно - IntLine6<br />=============<br />Проблема в толщине линии, укажите &nbsp;Width = 1, <br />
			<i>28.02.2019 13:14:20, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36661/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36661/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 13:14:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36654/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Линия, которая отражается неправильно - IntLine6 <br />
			<i>28.02.2019 11:44:40, VNG_nemo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36654/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36654/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 11:44:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36653/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>package.path = package.path .. ";" .. getWorkingFolder() .."&#92;&#92;LuaIndicators&#92;&#92;modules&#92;&#92;" .. "?.lua";

require ("Format");
require ("Round");
require ("Lines");

Settings={
&nbsp;&nbsp;&nbsp;Name = "0_28.02.2019_0",--имя индикатора
&nbsp;&nbsp;&nbsp;AssetID = "sber",--идентификатор инструмента
&nbsp;&nbsp;&nbsp;LabelName = "D:&#92;метка.bmp",--имя файла метки "down-254095_1280_1",
&nbsp;&nbsp;&nbsp;stopper = false,--обработка на каждом тике 
&nbsp;&nbsp;&nbsp;complect = 0,
-- начальное местоположение меток
&nbsp;&nbsp;&nbsp;fplace = 100,
&nbsp;&nbsp;&nbsp;splace = 5,
&nbsp;&nbsp;&nbsp;Yvalue = 0,
&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; Name = "ChTrnd",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(255,255, 0)
&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 = "UpTrend",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(0,255,0)
&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 = "DnTrend",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(0,255, 0)
&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 = "APointLvl",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(120,90,140)
&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 = "BPointLvl",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(120,90,140)
&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 = "IntLine1",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(105,105,105)--DimGray
&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 = "IntLine2",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(0,0,255)--Blue
&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 = "IntLine3",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(218,165,32)--Goldenrod
&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 = "IntLine4",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(255,0,0)--Red
&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 = "IntLine5",
&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; Width = 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color = RGB(0,128,0)--Green
&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 = "IntLine6",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type =TYPE_DASHDOT,
&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; Color = RGB(255,0,0)--Red
&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;label={
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --TEXT="метка";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE_PATH=Settings.LabelName;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --TRANSPARENCY=50,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --TRANSPARENT_BACKGROUND=1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --YVALUE=Settings.Yvalue,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DATE=0,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TIME=0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --R=255;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --G=255;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --B=255;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

t={}--исходная таблица данных свечек
tposixByTime={}--индексы свечек проиндексированные по времени
tposixOldLabelTime={}--таблица старых значений даты-времени выведенных на чарт меток в POSIX-формате
count=0--ограничитель количества циклов
Label_Id = {}--массив с идентификаторами меток&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ScriptPath=""--полный путь к иконке (для метки)
flagIndExist=false--флаг существования индикатора на чарте
flagLblModify=false--флаг, сигнализирующий о перемещении метки
a=0
b=0
c=0
k=0
v=0
tDT={}
g_PriceStep = 0--шаг цены
g_PriceScale = 0--точность цены
g_tChLines={}

g_APointIdx=0;
g_BPointIdx=0;&nbsp;&nbsp;&nbsp;
g_APointLvl=0;
g_BPointLvl=0;
&nbsp;&nbsp;&nbsp;
function Init()

--объявление переменных. Присваиваем начальные значения чтобы сразу типизировать.
&nbsp;&nbsp;&nbsp;local n = 0--количество строк в таблице (количество свечек)
&nbsp;&nbsp;&nbsp;local l = ""--подпись инструмента
&nbsp;&nbsp;&nbsp;local NmbrOfCandles = 0--номер последней справа свечи на графике
&nbsp;&nbsp;&nbsp;local CandleIndex = 0
&nbsp;&nbsp;&nbsp;--local tDT={}

---&#91;&#91;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;if Settings.AssetID == "" then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message("Необходимо установить идентификатор инструмента")
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;--ScriptPath = getScriptPath().."&#92;&#92;"..Settings.LabelName;&nbsp;&nbsp;&nbsp;--путь к файлу метки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--message("Init_ScriptPath&nbsp;&nbsp;"..ScriptPath);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;--label&#91;"IMAGE_PATH"&#93;=ScriptPath;
--номер предпоследней справа свечи на графике. Нумерация начинается с нуля.
&nbsp;&nbsp;&nbsp;&nbsp;NmbrOfCandles = getNumCandles(Settings.AssetID)-2;
--получим таблицу с данными всех свечек, проиндексированную по номеру свечки
--t - таблица значений свечек
--n - количество полученных свечек(строк таблицы)
--l - подпись к инструменту
--текущую свечу не получаем
&nbsp;&nbsp;&nbsp;t,n,l = getCandlesByIndex(Settings.AssetID,0,0,NmbrOfCandles);
--получить индекс двух свечек, номера которых заданы во входных параметрах
--и установить метки
&nbsp;&nbsp;&nbsp;CandleIndex = NmbrOfCandles-Settings.splace;
&nbsp;&nbsp;&nbsp;tposixOldLabelTime&#91;"splace"&#93;, Label_Id&#91;"splace"&#93; = PUTLABEL(CandleIndex);
&nbsp;&nbsp;&nbsp;CandleIndex = NmbrOfCandles-Settings.fplace;
&nbsp;&nbsp;&nbsp;tposixOldLabelTime&#91;"fplace"&#93;, Label_Id&#91;"fplace"&#93; = PUTLABEL(CandleIndex);
--берем из таблицы только время-дату свечи
&nbsp;&nbsp;&nbsp;count = 0;
&nbsp;&nbsp;&nbsp;for k=0,NmbrOfCandles-1&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count = count + 1; if count &#62; 100000 then break end;
--преобразуем в POSIX-формат поле datetime
--транспонируем таблицу - индексируем по времени&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tDT&#91;k&#93; = os.time (t&#91;k&#93;.datetime);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=k;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tposixByTime&#91;tDT&#91;b&#93;&#93; = b;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&#91;&#91;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if NmbrOfCandles-Settings.splace==b then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--message("Initsplace&nbsp;&nbsp;"..tostring(tDT&#91;b&#93;).."&nbsp;&nbsp;"..tostring(tposixByTime&#91;b&#93;))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if NmbrOfCandles-Settings.fplace==b then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--message("Initfplace&nbsp;&nbsp;"..tostring(tDT&#91;b&#93;).."&nbsp;&nbsp;"..tostring(tposixByTime&#91;b&#93;))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&#93;&#93;
&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;return 11

end

function OnCalculate(index)

&nbsp;&nbsp;&nbsp;local info={}
&nbsp;&nbsp;&nbsp;local CandleIndex
&nbsp;&nbsp;&nbsp;local LblIdF = 0
&nbsp;&nbsp;&nbsp;local LblIdS = 0&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;local indput
&nbsp;&nbsp;&nbsp;local IndLines={}
&nbsp;&nbsp;&nbsp;local VChTrend
&nbsp;&nbsp;&nbsp;local VAPointLvl
&nbsp;&nbsp;&nbsp;local VBPointLvl
&nbsp;&nbsp;&nbsp;local flagIndChange=false--true-перестроить индикатор, false - не перестраивать

&nbsp;&nbsp;&nbsp;if index==1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info = getDataSourceInfo();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--шаг цены
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_PriceStep = getParamEx(info.class_code, info.sec_code, 'SEC_PRICE_STEP').param_value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--точность цены
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_PriceScale = getParamEx(info.class_code, info.sec_code, 'SEC_SCALE').param_value
&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;if t==nil then
&nbsp;&nbsp;&nbsp;--номер предпоследней справа свечи на графике. Нумерация начинается с нуля.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NmbrOfCandles = getNumCandles(Settings.AssetID)-2;
&nbsp;&nbsp;&nbsp;--получим таблицу с данными всех свечек, проиндексированную по номеру свечки
&nbsp;&nbsp;&nbsp;--t - таблица значений свечек
&nbsp;&nbsp;&nbsp;--текущую свечу не получаем
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t,n,l = getCandlesByIndex(Settings.AssetID,0,0,NmbrOfCandles);
&nbsp;&nbsp;&nbsp;--берем из таблицы только время-дату свечи
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count = 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for k=0,NmbrOfCandles-1&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count = count + 1; if count &#62; 100000 then break end;
&nbsp;&nbsp;&nbsp;--преобразуем в POSIX-формат поле datetime
&nbsp;&nbsp;&nbsp;--транспонируем таблицу - индексируем по времени&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tDT&#91;k&#93; = os.time (t&#91;k&#93;.datetime);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=k;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tposixByTime&#91;tDT&#91;b&#93;&#93; = b;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&#91;&#91;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if NmbrOfCandles-Settings.splace==b then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--message("Initsplace&nbsp;&nbsp;"..tostring(tDT&#91;b&#93;).."&nbsp;&nbsp;"..tostring(tposixByTime&#91;b&#93;))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if NmbrOfCandles-Settings.fplace==b then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--message("Initfplace&nbsp;&nbsp;"..tostring(tDT&#91;b&#93;).."&nbsp;&nbsp;"..tostring(tposixByTime&#91;b&#93;))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--&#93;&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;
---&#91;&#91;
--если флаг перемещения метки не установлен
&nbsp;&nbsp;&nbsp;if flagLblModify==false then
--проверяем перемещалась ли первая метка&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LblIdF=IsLabelChange("fplace");
--проверяем вторую метку&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LblIdS=IsLabelChange("splace");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--если индикатор существует, то выходим без расчетов, возвращаем массив линий
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;flagIndExist==true then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flagIndChange=false;
&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;else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flagIndChange=true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;--если метка перемещалась flagLblModify==true&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;&nbsp;flagIndChange=true;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;--рассчитываем индикатор или выводим линии без расчета
&nbsp;&nbsp;&nbsp;VChTrend,VChUp,VChDn,VAPointLvl,VBPointLvl,VIntLine1=PUTINDICATOR(LblIdF,LblIdS,flagIndChange,index)
&nbsp;&nbsp;&nbsp;--&#93;&#93;
&nbsp;&nbsp;&nbsp;if index==0 then VChTrend=nil end
&nbsp;&nbsp;&nbsp;if index &#62;= Size() then VChTrend=nil end&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;return VChTrend,VChUp,VChDn,VAPointLvl,VBPointLvl,VIntLine1,VIntLine2,VIntLine3,VIntLine4,VIntLine5,VIntLine6
end

function IsLabelChange(place)
--функция принимает индекс массива Label_Id("строка")
--устанавливает глобальные флаги и 
--записывает posix-время в глобальную таблицу tposixOldLabelTime
--возврашает Id метки
&nbsp;&nbsp;&nbsp;local LblId = 0
&nbsp;&nbsp;&nbsp;local posixNewLblTime = 0&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;local posixOldLblTime = 0


--проверяем перемещалась ли метка&nbsp;&nbsp;&nbsp;
--считываем Id метки из массива&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LblId = Label_Id&#91;place&#93;;
--считываем posix-время для этой метки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;posixOldLblTime = tposixOldLabelTime&#91;place&#93;;
--преобразуем время метки с чарта в posix-формат
--если функция вернула nil, время не меняем
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if GETLABLEPOSIXTIME (LblId)== 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;posixNewLblTime = posixOldLblTime
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;posixNewLblTime = GETLABLEPOSIXTIME (LblId)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;--если время не совпадает, выставляем флаги отсутствия индикатора и модификации метки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;posixOldLblTime ~= posixNewLblTime&nbsp;&nbsp;then
&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;flagLblModify=true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--индикатор не построен
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flagIndExist=false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--изменяем время метки в массиве
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tposixOldLabelTime&#91;place&#93; = posixNewLblTime;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;return LblId
end 
&nbsp;&nbsp;&nbsp;
PUTLABEL = function (index)
--&#91;&#91;функция для установки метки на чарт по индексу
&nbsp;&nbsp;&nbsp;принимает индекс свечи 
&nbsp;&nbsp;&nbsp;возвращает время метки в posix-формате и Id метки
&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;вызывается в Init()
--&#93;&#93;
&nbsp;&nbsp;&nbsp;local Date=""--дата свечки
&nbsp;&nbsp;&nbsp;local Time=""--время свечки&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;local Yvalue=0
&nbsp;&nbsp;&nbsp;LabelId=0
&nbsp;&nbsp;&nbsp;--message ("PUTLABELindex.."..tostring(index));
--дата и время свечи
&nbsp;&nbsp;&nbsp;Date=t&#91;index&#93;.datetime.year..Format.FTEXT(t&#91;index&#93;.datetime.month)..Format.FTEXT(t&#91;index&#93;.datetime.day); --дата

&nbsp;&nbsp;&nbsp;Time=Format.FTEXT(t&#91;index&#93;.datetime.hour)..Format.FTEXT(t&#91;index&#93;.datetime.min)..Format.FTEXT(t&#91;index&#93;.datetime.sec);

--привязка к оси У
&nbsp;&nbsp;&nbsp;Yvalue = t&#91;index&#93;.high;
--заполнить структуру данных метки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label={
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMAGE_PATH=Settings.LabelName;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;YVALUE=Settings.Yvalue+Yvalue;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATE=Date,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME=Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};
--добавляем метку на чарт и запоминаем Id метки в массиве, проиндексированном принятой строкой&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;LabelId = AddLabel(Settings.AssetID,label);
&nbsp;&nbsp;&nbsp;--message ("PUTLABELindex&nbsp;&nbsp;LabelId&nbsp;&nbsp;"..tostring(LabelId))
&nbsp;&nbsp;&nbsp;return os.time (t&#91;index&#93;.datetime), LabelId
end

function GETLABLEPOSIXTIME (LabelId)

--функция принимает Id метки и возвращает ее время в posix-формате
--при перемещении метки временно Id может стать нулем, поэтому функция выдает ошибку ноль
&nbsp;&nbsp;&nbsp;local id--Id метки
&nbsp;&nbsp;&nbsp;local NewLbLParam = {}--структура параметров метки
&nbsp;&nbsp;&nbsp;local LabelTime = ""--строка с данными даты-времени метки
&nbsp;&nbsp;&nbsp;local dt={}--структура в формате datetime
&nbsp;&nbsp;&nbsp;local err=0
&nbsp;&nbsp;&nbsp;local retval
---&#91;&#91;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;id = LabelId;
--получаем таблицу с параметрами метки (в нижнем регистре в формате строки)
&nbsp;&nbsp;&nbsp;if LabelId==0 then retval=err
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewLbLParam = GetLabelParams(Settings.AssetID, id);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--преобразуем в формат datetime
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.year,dt.month,dt.day = string.match(NewLbLParam.date,"(%d%d%d%d)(%d%d)(%d%d)")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if #NewLbLParam.time == 5 then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LabelTime="0".. NewLbLParam.time 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else LabelTime="".. NewLbLParam.time
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.hour,dt.min,dt.sec = string.match(LabelTime,"(%d%d)(%d%d)(%d%d)");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--преобразуем в формат POSIX
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retval = os.time (dt)
&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp;&nbsp;return retval;
end

function PUTINDICATOR(LblId1,LblId2,boolIndChange,idx)

&nbsp;&nbsp;&nbsp;local a=0
&nbsp;&nbsp;&nbsp;local i
&nbsp;&nbsp;&nbsp;local j
&nbsp;&nbsp;&nbsp;local k
&nbsp;&nbsp;&nbsp;local TrndH=0
&nbsp;&nbsp;&nbsp;local TrndL=0&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;local h
&nbsp;&nbsp;&nbsp;local l 
&nbsp;&nbsp;&nbsp;local CndlIdx1=0
&nbsp;&nbsp;&nbsp;local CndlIdx2=0
&nbsp;&nbsp;&nbsp;local tABIdx={}
&nbsp;&nbsp;&nbsp;local IntervalCndlNmbr=0
&nbsp;&nbsp;&nbsp;local koef

&nbsp;&nbsp;&nbsp;local tChTrend={}
&nbsp;&nbsp;&nbsp;local tChUp={}
&nbsp;&nbsp;&nbsp;local tChDn={}
&nbsp;&nbsp;&nbsp;local ChUpMax=0
&nbsp;&nbsp;&nbsp;local ChDnMin=0
&nbsp;&nbsp;&nbsp;local posixLblTime1
&nbsp;&nbsp;&nbsp;local posixLblTime2&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;local APointIdx
&nbsp;&nbsp;&nbsp;local BPointIdx&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;local APointLvl
&nbsp;&nbsp;&nbsp;local BPointLvl
&nbsp;&nbsp;&nbsp;local idxUpMax
&nbsp;&nbsp;&nbsp;local idxDnMin
&nbsp;&nbsp;&nbsp;local AidxUp
&nbsp;&nbsp;&nbsp;local AidxDn
&nbsp;&nbsp;&nbsp;local BidxUp
&nbsp;&nbsp;&nbsp;local BidxDn
&nbsp;&nbsp;&nbsp;local ChTrnd--=200
&nbsp;&nbsp;&nbsp;local ChUp--=210
&nbsp;&nbsp;&nbsp;local ChDn--=190
&nbsp;&nbsp;&nbsp;local APntLvl--=220
&nbsp;&nbsp;&nbsp;local BPntLvl--=180&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;local StepsUp
&nbsp;&nbsp;&nbsp;local TrUp=false
&nbsp;&nbsp;&nbsp;local TrDn=false
&nbsp;&nbsp;&nbsp;local Lu

&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;g_tChLines&#91;"ChTrend"&#93;=tChTrend;
&nbsp;&nbsp;&nbsp;g_tChLines&#91;"ChUp"&#93;=tChUp;
&nbsp;&nbsp;&nbsp;g_tChLines&#91;"ChDn"&#93;=tChDn;
--если метка перемещалась или индикатор строится впервые рассчитываем линии и выводим их
&nbsp;&nbsp;&nbsp;if boolIndChange then
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;--для каждой свечи в интервале между метками получить максимальное и минимальное 
&nbsp;&nbsp;&nbsp;--значение цены
&nbsp;&nbsp;&nbsp;--сравниваем время меток для задания переменной цикла
&nbsp;&nbsp;&nbsp;--если GETLABLEPOSIXTIME вернула ошибку
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if GETLABLEPOSIXTIME (LblId1)==0 or LblId1==0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--считываем старое время из массива
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;posixLblTime1 = tposixOldLabelTime.fplace
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--иначе считываем новое время метки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else posixLblTime1 = GETLABLEPOSIXTIME (LblId1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;--так же и для второй метки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if GETLABLEPOSIXTIME (LblId2)==0 or LblId2==0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;posixLblTime2 = tposixOldLabelTime.splace&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else posixLblTime2 = GETLABLEPOSIXTIME (LblId2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;--получаем значения индекса свечи по его posix-времени
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CndlIdx1=tposixByTime&#91;posixLblTime1&#93;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CndlIdx2=tposixByTime&#91;posixLblTime2&#93;;
&nbsp;&nbsp;&nbsp;--если метка перемещена вправо за последнюю свечу, то индекс = максимальному
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if CndlIdx1 == nil then CndlIdx1 = Size() end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if CndlIdx2 == nil then CndlIdx2 = Size() end
&nbsp;&nbsp;&nbsp;--находим более раннюю свечу&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if CndlIdx1 &#60; CndlIdx2 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=CndlIdx1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=CndlIdx2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=CndlIdx2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=CndlIdx1&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
--message("PUTINDICATOR_CndlIdx1_CndlIdx2_j_k_"..tostring(CndlIdx1).."_"..tostring(CndlIdx2).."_"..tostring(j).."_"..tostring(k));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;--для всех свечей внутри диапазона меток
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i = j, k, 1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--находим максимальное и минимальное значение и индекс свечки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h = t&#91;i&#93;.high;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l = t&#91;i&#93;.low;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if h~=0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if h &#62;= TrndH then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrndH = h;&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;tABIdx&#91;"hi"&#93; = i--индекс свечки
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if l~=0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TrndL==0 then TrndL = l end;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if l &#60;= TrndL then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrndL = l;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tABIdx&#91;"lo"&#93; = i--индекс свечки&nbsp;&nbsp;&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;end
--message("PUTINDICATOR_h_l_"..tostring(h).."_"..tostring(l));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
--message("PUTINDICATOR_TrndH_TrndL_tABIdx.hi_tABIdx.lo_"..tostring(TrndH).."_"..tostring(TrndL).."_"..tostring(tABIdx&#91;"hi"&#93;).."_"..tostring(tABIdx&#91;"lo"&#93;));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;IntervalCndlNmbr = tABIdx&#91;"hi"&#93; - tABIdx&#91;"lo"&#93;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;--если получили отрицательное число(слева индекс максимума, тренд вниз), то инвертируем
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if IntervalCndlNmbr &#60; 0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrUp=false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrDn=true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APointIdx=tABIdx&#91;"hi"&#93;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BPointIdx=tABIdx&#91;"lo"&#93;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APointLvl=TrndH;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BPointLvl=TrndL;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrUp=true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrDn=false;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APointIdx=tABIdx&#91;"lo"&#93;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BPointIdx=tABIdx&#91;"hi"&#93;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APointLvl=TrndL;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BPointLvl=TrndH;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntervalCndlNmbr=-IntervalCndlNmbr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;

--message("PUTINDICATOR_APointIdx_BPointIdx_APointLvl_BPointLvl_"..tostring(APointIdx).."_"..tostring(BPointIdx).."_"..tostring(APointLvl).."_"..tostring(BPointLvl));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;--вычисляем коэффициент наклона прямой
&nbsp;&nbsp;&nbsp;--отрицательный (тренд вниз),положительный (тренд вверх)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;koef = (APointLvl - BPointLvl)/IntervalCndlNmbr&nbsp;&nbsp;&nbsp;
--message("PUTINDICATOR&nbsp;&nbsp;koef&nbsp;&nbsp;"..tostring(koef));&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;--цикл для вычисления значений всеx линий
&nbsp;&nbsp;&nbsp;--заносим значения в таблицу
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--tChTrend&#91;APointIdx&#93; = Round.math_round(APointLvl,g_PriceScale);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--g_tChLines.tChTrend = tChTrend&#91;APointIdx&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--tChTrend&#91;BPointIdx&#93; = Round.math_round(BPointLvl,g_PriceScale);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--g_tChLines.tChTrend = tChTrend&#91;BPointIdx&#93;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=APointIdx, BPointIdx, 1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--вычисляем значения точек основного тренда
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--i-индекс свечи, j - номер шага
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tChTrend&#91;i&#93; = Round.math_round(APointLvl+koef*j,g_PriceScale);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--заносим значения тренда в глобальную таблицу
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_tChLines.tChTrend = tChTrend&#91;i&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--вычисляем значения точек верхней и нижней границы канала
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h = t&#91;i&#93;.high;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l = t&#91;i&#93;.low;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if h - tChTrend&#91;i&#93; &#62; 0 and h~=0 then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChUpMax &#60; h - tChTrend&#91;i&#93; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then
&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;ChUpMax = h - tChTrend&#91;i&#93;;
&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;idxUpMax = i;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if tChTrend&#91;i&#93; -l &#62; 0 and l~=0 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChDnMin &#60; tChTrend&#91;i&#93; -l
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChDnMin = tChTrend&#91;i&#93; - l;&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;idxDnMin = i;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=j+1;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StepsUp=Round.math_round(ChUpMax/koef,0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--сдвиг назад
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AidxUp = APointIdx - StepsUp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidxUp = BPointIdx - StepsUp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--количество шагов от точки А
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StepsDn=Round.math_round(ChDnMin/koef,0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--сдвиг вперед
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AidxDn = APointIdx + StepsDn;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidxDn = BPointIdx + StepsDn;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
---&#91;&#91;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;--цикл по сдвинутому назад диапазону
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=AidxUp, BidxUp, 1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--линия тренда верхней границы канала
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tChUp&#91;i&#93; = math_round(APointLvl+koef*j,g_PriceScale);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_tChLines.tChUp = tChUp&#91;i&#93;
--message("PUTINDICATOR&nbsp;&nbsp;tChUp_i "..tostring( tChUp&#91;i&#93;).."&nbsp;&nbsp;"..tostring(i));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=j+1;&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;j=0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=AidxDn, BidxDn, 1 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--линия тренда нижней границы канала&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tChDn&#91;i&#93; = math_round(APointLvl+koef*j,g_PriceScale);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_tChLines.tChDn = tChDn&#91;i&#93;
--message("PUTINDICATOR&nbsp;&nbsp;tChDn_i "..tostring( tChDn&#91;i&#93;).."&nbsp;&nbsp;"..tostring(i));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=j+1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TrUp==true then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--уровени IntLine
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine1=tChUp&#91;APointIdx&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine2=tChTrend&#91;AidxDn&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine3=tChUp&#91;AidxDn&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine4=tChTrend&#91;BidxUp&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine5=tChDn&#91;BidxUp&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine6=tChDn&#91;BPointIdx&#93;&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;if TrDn==true then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--уровень IntLine1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine1=tChDn&#91;APointIdx&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine2=tChTrend&#91;AidxUp&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine3=tChDn&#91;AidxUp&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine4=tChTrend&#91;BidxDn&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine5=tChUp&#91;BidxDn&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLine6=tChUp&#91;BPointIdx&#93;&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;&nbsp;&nbsp;g_APointIdx=APointIdx;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_BPointIdx=BPointIdx;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_APointLvl=APointLvl;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_BPointLvl=BPointLvl;
--&#93;&#93;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChTrnd=GETTRENDLINE(1,g_APointIdx,g_BPointIdx,"ChTrend")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChUp=GETTRENDLINE(2,AidxUp,BidxUp,"ChUp")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChDn=GETTRENDLINE(3,AidxDn,BidxDn,"ChDn")
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APntLvl=GETHORLINE(g_APointLvl,4,g_APointIdx)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BPntLvl=GETHORLINE(g_BPointLvl,5,g_BPointIdx)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLin1=GETHORLINE(IntLine1,6,g_APointIdx)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TrUp then Lu=AidxDn end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TrDn then Lu=AidxUp end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLin2=GETHORLINE(IntLine2,7,Lu)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLin3=GETHORLINE(IntLine3,8,Lu)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TrUp then Lu=BidxUp end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TrDn then Lu=BidxDn end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLin4=GETHORLINE(IntLine4,9,Lu)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLin5=GETHORLINE(IntLine5,10,Lu)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntLin6=GETHORLINE(IntLine6,11,g_BPointIdx)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;--перестроили индикатор-устанавливаем флаг
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flagIndExist=true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flagLblModify=false
&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;return ChTrnd,ChUp,ChDn,APntLvl,BPntLvl,IntLin1,IntLin2,IntLin3,IntLin4,IntLin5,IntLin6
--&#93;&#93;
end

function math_round (num, idp)
&nbsp;&nbsp;local mult = 10^(idp or 0)
&nbsp;&nbsp;return math.floor(num * mult + 0.5) / mult
end

function GETHORLINE(Level,LineNumber,Luch)
--Luch - индекс свечи от которой начнется прямая
&nbsp;&nbsp;&nbsp;local indx
&nbsp;&nbsp;&nbsp;local Line
&nbsp;&nbsp;&nbsp;local z
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;indx=Size()
&nbsp;&nbsp;&nbsp;for i=0,indx do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if Luch==nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Line=Level
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if i&#60;=Luch then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Line=nil
&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;Line=Level
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z=SetValue(i, LineNumber, Line)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;end

--message("GETHORLINE&nbsp;&nbsp;Line "..tostring(Line));
&nbsp;&nbsp;&nbsp;return Line
end

function GETTRENDLINE(LineNumber,APntIdx,BPntIdx,Trend)
---&#91;&#91;
&nbsp;&nbsp;&nbsp;local Line
&nbsp;&nbsp;&nbsp;local indx
&nbsp;&nbsp;&nbsp;local TrLine={}
--message("GETTRENDLINE&nbsp;&nbsp;LineNumber Trend&nbsp;&nbsp;"..tostring(LineNumber).."&nbsp;&nbsp;"..tostring(Trend));
--message("GETTRENDLINE&nbsp;&nbsp;APntIdx BPntIdx&nbsp;&nbsp;"..tostring(APntIdx).."&nbsp;&nbsp;"..tostring(BPntIdx));
&nbsp;&nbsp;&nbsp;SetValue(1, LineNumber, nil)&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;indx=Size();
&nbsp;&nbsp;&nbsp;for i=1,indx do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if i &#60; APntIdx then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrLine&#91;i&#93;=nil
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetValue(i+1, LineNumber, TrLine&#91;i&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if i &#62; BPntIdx then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrLine&#91;i&#93;=nil&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetValue(i+1, LineNumber, TrLine&#91;i&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if i&#62;=APntIdx and i&#60;=BPntIdx then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TrLine&#91;i&#93;=g_tChLines&#91;Trend&#93;&#91;i&#93;
--message("GETTRENDLINE&nbsp;&nbsp;TrLine_i "..tostring(i).."&nbsp;&nbsp;"..tostring(TrLine&#91;i&#93;));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetValue(i+1, LineNumber, TrLine&#91;i&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;return TrLine
--&#93;&#93;
end

function OnDestroy ()
&nbsp;&nbsp;&nbsp;local tmp
&nbsp;&nbsp;&nbsp;tmp=DelAllLabels(Settings.AssetID)
end
</pre>
=============

====code====
<pre>Format={}
function Format.FTEXT (V)
--функция подставляет нули при их отсутствии на первой позиции даты-времени
&nbsp;&nbsp;&nbsp;V=tostring (V)
&nbsp;&nbsp;&nbsp;if string.len (V) == 1 then V = "0".. V end
&nbsp;&nbsp;&nbsp;return V 
end&nbsp;&nbsp;&nbsp;
return Format
</pre>
=============
Работает пока только на Н4, на других ТФ вылетает с ошибкой, отлавливаю. <br />
			<i>28.02.2019 11:43:09, VNG_nemo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36653/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36653/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 11:43:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36650/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Приведите пример проблемного скрипта <br />
			<i>28.02.2019 11:01:06, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36650/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36650/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 11:01:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Не изменяется отображение линии независимо от указанного в Settings</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message36647/topic4320/">Не изменяется отображение линии независимо от указанного в Settings</a></b> <i>Нужно поменять тип линии, но этого не происходит.</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Прошу помочь в таком вопросе - меняю тип линии в Settings - реакции ноль, выводится только сплошная. Пытаюсь изменить тип в диалоге редактирования - такая же байда. Что делаю не так? <br />
			<i>28.02.2019 10:28:14, VNG_nemo.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message36647/topic4320/</link>
			<guid>http://forum.quik.ru/messages/forum10/message36647/topic4320/</guid>
			<pubDate>Thu, 28 Feb 2019 10:28:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
