<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: LUA индикатор фрактальные уровни.]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме LUA индикатор фрактальные уровни. форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Tue, 21 Apr 2026 21:12:23 +0300</pubDate>
		<item>
			<title>LUA индикатор фрактальные уровни.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33185/topic3955/">LUA индикатор фрактальные уровни.</a></b> <i>LUA индикатор на основе фракталов</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_iyVtYar0" href="/user/199/" bx-tooltip-user-id="199">RayIntraday</a> написал:<br />Но в том, который сбросилы вы, не удаётся начертить линию, пускай даже точками, что бы построить фрактальный уровень. <br /><br />=============<br />Но ведь Вы ничего не сделали для того чтобы отображались линии. А сами по себе они отображаться не будут, т.к. в нашем примере это не предусмотрено.<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_hKsXQKYy" href="/user/199/" bx-tooltip-user-id="199">RayIntraday</a> написал:<br />При включении горизонтальных линий он вообще тарабарщину рисует.<br /><br />=============<br />Комментарий не понятен, индикатор фракталов сам по себе и не должен отображаться в виде горизонтальных линий.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_LvgIYX3M" href="/user/199/" bx-tooltip-user-id="199">RayIntraday</a> написал:<br />Хорошо, давайте постепенно, КАК в моём приведённом &nbsp;<noindex><a href="https://forum.quik.ru/messages/forum10/message33177/topic3955/#message33177" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum10/message33177/topic3955/#message33177</a></noindex> &nbsp;<br />выше коде переместить фрактальный уровень, что бы он начинался там, где отображаются треугольники.<br />=============<br /><br />На это уже был ответ:<br />====quote====<br /><a class="blog-p-user-name" id="bp_LYHaFsk0" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Индикатор фракталов предполагает установку значений на предыдущей свечке а не на текущей.<br /><B>В связи с чем, рекомендуется устанавливать значения функцией SetValue<br /></B><br />=============<br /> <br />
			<i>11.09.2018 16:06:03, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33185/topic3955/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33185/topic3955/</guid>
			<pubDate>Tue, 11 Sep 2018 16:06:03 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>LUA индикатор фрактальные уровни.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33183/topic3955/">LUA индикатор фрактальные уровни.</a></b> <i>LUA индикатор на основе фракталов</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Хорошо, давайте постепенно, КАК в моём приведённом <noindex><a href="https://forum.quik.ru/messages/forum10/message33177/topic3955/#message33177" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum10/message33177/topic3955/#message33177</a></noindex> <br />выше коде переместить фрактальный уровень, что бы он начинался там, где отображаются треугольники. &nbsp; <br />
			<i>11.09.2018 15:27:30, RayIntraday.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33183/topic3955/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33183/topic3955/</guid>
			<pubDate>Tue, 11 Sep 2018 15:27:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>LUA индикатор фрактальные уровни.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33182/topic3955/">LUA индикатор фрактальные уровни.</a></b> <i>LUA индикатор на основе фракталов</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<img src="https://a.radikal.ru/a05/1809/62/219cf1d2fe94.jpg" alt="Пользователь добавил изображение" border="0" /> <br />
			<i>11.09.2018 15:22:34, RayIntraday.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33182/topic3955/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33182/topic3955/</guid>
			<pubDate>Tue, 11 Sep 2018 15:22:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>LUA индикатор фрактальные уровни.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33181/topic3955/">LUA индикатор фрактальные уровни.</a></b> <i>LUA индикатор на основе фракталов</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			При включении горизонтальных линий он вообще тарабарщину рисует. <br />
			<i>11.09.2018 15:18:55, RayIntraday.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33181/topic3955/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33181/topic3955/</guid>
			<pubDate>Tue, 11 Sep 2018 15:18:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>LUA индикатор фрактальные уровни.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33180/topic3955/">LUA индикатор фрактальные уровни.</a></b> <i>LUA индикатор на основе фракталов</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_RkGR1U1o" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Здравствуйте,<br />Сам скрипт составлен некорректно.<br />Индикатор фракталов предполагает установку значений на предыдущей свечке а не на текущей.<br />В связи с чем, рекомендуется устанавливать значения функцией SetValue<br />На нашем &nbsp;<noindex><a href="https://arqatech.com/upload/iblock/398/INDICATORS.zip" target="_blank" rel="nofollow">сайте</a></noindex> Вы можете найти готовые примеры индикаторов на LUA<br />рекомендуем использовать скрипт из примера.<br />=============<br />Да, я знаю что он написан не корректно. <br />Но в том, который сбросилы вы, не удаётся начертить линию, пускай даже точками, что бы построить фрактальный уровень. <br /><br /><br />Settings = {<br />Name = &quot;*FRACTALS (Fractals)&quot;, <br />Period = 5,<br />line = {{<br />		Name = &quot;Horizontal line&quot;,<br />		Type = TYPE_LINE, <br />		Color = RGB(140, 140, 140)<br />		},<br />		{<br />		Name = &quot;FRACTALS - Up&quot;, <br />		Type = TYPE_TRIANGLE_UP, <br />		Color = RGB(0, 206, 0)<br />		},<br />		{<br />		Name = &quot;FRACTALS - Down&quot;, <br />		Type = TYPE_TRIANGLE_DOWN, <br />		Color = RGB(221, 44, 44)<br />		}<br />		},<br />Round = &quot;off&quot;,<br />Multiply = 1,<br />Horizontal_line=&quot;off&quot;<br />}<br />			<br />function Init()<br />	func = FRACTALS()<br />	return #Settings.line<br />end<br /><br />function OnCalculate(Index)<br />local Out1,Out2 = func(Index, Settings)<br />	SetValue(Out1, 2, ConvertValue(Settings,H(Out1)))<br />	SetValue(Out2, 3, ConvertValue(Settings,L(Out2)))<br />	return tonumber(Settings.Horizontal_line),nil,nil<br />end<br /><br />function FRACTALS() --Fractals (&quot;FRACTALS&quot;)<br />	local H_tmp={}<br />	local L_tmp={}<br />	local it = {&#91;1&#93;=0, l=0}<br />return function (I, Fsettings, ds)<br />local Fsettings=(Fsettings or {})<br />local P = (Fsettings.Period or 5)<br />if (P&gt;0) then<br />	if I == 1 then<br />		H_tmp={}<br />		L_tmp={}<br />		it = {&#91;1&#93;=0, l=0}<br />	end<br />	if CandleExist(I,ds) then<br />		if I~=it&#91;Squeeze(it.l,P)&#93; then<br />			it.l = it.l + 1<br />			it&#91;Squeeze(it.l,P)&#93; = I<br />		end<br />		local Ip,Ipppp = Squeeze(it.l,P),Squeeze(it.l,P-1)+1<br />		local nP = math.floor(P/2)*2+1<br />		H_tmp&#91;Ipppp&#93; = GetValueEX(it&#91;Ip&#93;,HIGH,ds)<br />		L_tmp&#91;Ipppp&#93; = GetValueEX(it&#91;Ip&#93;,LOW,ds)<br />		if it.l &gt;= nP then<br />			local S = it&#91;Squeeze(it.l-nP+1+math.floor(nP/2),P)&#93;<br />			local val_h=math.max(unpack(H_tmp))<br />			local val_l=math.min(unpack(L_tmp))<br />			local L = GetValueEX(S,LOW,ds)<br />			local H = GetValueEX(S,HIGH,ds)<br />			if (val_h == H) and (val_h &gt;0) <br />				and (val_l == L) and (val_l &gt; 0) then<br />					return S,S<br />			else<br />				if (val_h == H) and (val_h &gt; 0) then<br />					return S,nil<br />				end<br />				if (val_l == L) and (val_l &gt; 0) then<br />					return nil,S<br />				end<br />			end<br />		end<br />	end<br />end<br />return nil,nil<br />end<br />end<br /><br /><br />SMA,MMA,EMA,WMA,SMMA,VMA = &quot;SMA&quot;,&quot;MMA&quot;,&quot;EMA&quot;,&quot;WMA&quot;,&quot;SMMA&quot;,&quot;VMA&quot;<br />OPEN,HIGH,LOW,CLOSE,VOLUME,MEDIAN,TYPICAL,WEIGHTED,DIFFERENCE,ANY = &quot;O&quot;,&quot;H&quot;,&quot;L&quot;,&quot;C&quot;,&quot;V&quot;,&quot;M&quot;,&quot;T&quot;,&quot;W&quot;,&quot;D&quot;,&quot;A&quot;<br /><br />function CandleExist(I,ds)<br />return (type&#169;==&quot;function&quot; and C(I)~=nil) or<br />	(type(ds)==&quot;table&quot; and (ds&#91;I&#93;~=nil or (type(ds.Size)==&quot;function&quot; and (I&gt;0) and (I&lt;=ds:Size()))))<br />end<br /><br />function Squeeze(I,P)<br />	return math.fmod(I-1,P+1)<br />end<br /><br />function ConvertValue(T,...)<br />local function r(V, R) <br />	if R and string.upper&#174;== &quot;ON&quot; then R=0 end<br />	if V and tonumber&#174; then<br />		if V &gt;= 0 then return math.floor(V * 10^R + 0.5) / 10^R<br />		else return math.ceil(V * 10^R - 0.5) / 10^R end<br />	else return V end<br />end<br />	if arg.n &gt; 0 then<br />		for i = 1, arg.n do<br />			arg&#91;i&#93;=arg&#91;i&#93; and r(arg&#91;i&#93; * ((T and T.Multiply) or 1), (T and T.Round) or &quot;off&quot;)<br />		end<br />		return unpack(arg)<br />	else return nil end<br />end<br /><br />function GetValueEX(I,VT,ds) <br />VT=(VT and string.upper(string.sub(VT,1,1))) or ANY<br />	if VT == OPEN then			--Open<br />		return (O and O(I)) or (ds and ds:O(I))<br />	elseif VT == HIGH then 		--High<br />		return (H and H(I)) or (ds and ds:H(I))<br />	elseif VT == LOW then		--Low<br />		return (L and L(I)) or (ds and ds:L(I))<br />	elseif VT == CLOSE then		--Close<br />		return (C and C(I)) or (ds and ds:C(I))<br />	elseif VT == VOLUME then		--Volume<br />		return (V and V(I)) or (ds and ds:V(I)) <br />	elseif VT == MEDIAN then		--Median<br />		return ((GetValueEX(I,HIGH,ds) + GetValueEX(I,LOW,ds)) / 2)<br />	elseif VT == TYPICAL then	--Typical<br />		return ((GetValueEX(I,MEDIAN,ds) * 2 + GetValueEX(I,CLOSE,ds))/3)<br />	elseif VT == WEIGHTED then	--Weighted<br />		return ((GetValueEX(I,TYPICAL,ds) * 3 + GetValueEX(I,OPEN,ds))/4) <br />	elseif VT == DIFFERENCE then	--Difference<br />		return (GetValueEX(I,HIGH,ds) - GetValueEX(I,LOW,ds))<br />	else							--Any<br />		return (ds and ds&#91;I&#93;)<br />	end<br />return nil<br />end<br /><br /><br />С чем это связано...? <br />Или это странность самого языка Lua? <br />
			<i>11.09.2018 15:08:56, RayIntraday.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33180/topic3955/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33180/topic3955/</guid>
			<pubDate>Tue, 11 Sep 2018 15:08:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>LUA индикатор фрактальные уровни.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33179/topic3955/">LUA индикатор фрактальные уровни.</a></b> <i>LUA индикатор на основе фракталов</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте,<br />Сам скрипт составлен некорректно.<br />Индикатор фракталов предполагает установку значений на предыдущей свечке а не на текущей.<br />В связи с чем, рекомендуется устанавливать значения функцией SetValue<br />На нашем <noindex><a href="https://arqatech.com/upload/iblock/398/INDICATORS.zip" target="_blank" rel="nofollow">сайте</a></noindex>Вы можете найти готовые примеры индикаторов на LUA<br />рекомендуем использовать скрипт из примера. <br />
			<i>11.09.2018 12:28:47, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33179/topic3955/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33179/topic3955/</guid>
			<pubDate>Tue, 11 Sep 2018 12:28:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>LUA индикатор фрактальные уровни.</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message33177/topic3955/">LUA индикатор фрактальные уровни.</a></b> <i>LUA индикатор на основе фракталов</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день .<br />Народ, очень нужна ваша помощь по данному индикатору. А если кто поделится готовым, буду очень благодарен.<br />Намедни решил поколдовать с фрактальным индикатором, так что бы фракталы растянуть по уровню. <br />В итоге вот что у меня получилось. Не ахти, сразу скажу. <br />Я конечно не спец в программировании, только учусь, поэтому и обращаюсь сюда за помощью. <br />Как его исправить, что бы фрактальный уровень рисовался с самого начала (там где треугольники на картинке, это обычный индикатор фрактала) и &nbsp;заканчивался в том случае когда цена пересечёт этот уровень выше или ниже.<br /><img src="https://smart-lab.ru/uploads/images/05/99/80/2018/08/15/e2c069.jpg" alt="Пользователь добавил изображение" border="0" /><br />Вот сам индикатор:<br /><br />Settings =<br />{Name = &quot;Fracta_l&quot;,<br />period=21,<br />line = <br />{{<br />Name = &quot;Level_High&quot;,<br />Color = RGB(0,255,0),<br />Type = TYPE_POINT,<br />Width = 1<br />},{<br />Name = &quot;Level_Low&quot;,<br />Color = RGB(255,0,0),<br />Type = TYPE_POINT,<br />Width = 1<br />}}}<br />idx_prosl=0<br /><br />function Init()<br />return #Settings.line<br />end<br />function OnCalculate(idx)<br />if idx==1 then<br />P = math.floor(Settings.period/2)*2+1<br />t_H,t_L={},{}<br />end<br />if idx~=nil and idx&gt;P then<br />if idx_prosl~=idx then<br />local l=idx-P<br />for l=l,idx-1 do<br />t_H&#91;l&#93;=H(l)<br />t_L&#91;l&#93;=L(l)<br />end<br />if t_H&#91;#t_H-(P-1)/2&#93;==math.max(unpack(t_H,#t_H-P+1,#t_H)) then<br />H_ind_value=t_H&#91;#t_H-(P-1)/2&#93;<br />end<br />if t_L&#91;#t_L-(P-1)/2&#93;==math.min(unpack(t_L,#t_L-P+1,#t_L)) then<br />L_ind_value=t_L&#91;#t_L-(P-1)/2&#93;<br />end<br />end<br />else<br />H_ind_value=nil<br />L_ind_value=nil<br />end<br />idx_prosl=idx<br />return H_ind_value, L_ind_value<br />end <br />
			<i>11.09.2018 11:43:17, RayIntraday.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message33177/topic3955/</link>
			<guid>http://forum.quik.ru/messages/forum10/message33177/topic3955/</guid>
			<pubDate>Tue, 11 Sep 2018 11:43:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
