<?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>Wed, 22 Apr 2026 08:46:35 +0300</pubDate>
		<item>
			<title>Lua советник</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message79236/topic7630/">Lua советник</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_APorPivS" href="/user/16872/" bx-tooltip-user-id="16872">Тони</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />Добрый день,<br />---------------------------<br />Пример простого, универсального советника на луа на основе любых индикаторов.<br />------------------------------<br />Советник - это программа, <br />которая формирует сигналы &quot;купить/продать&quot; и показывает их, но не совершает сделки.<br />---------------------<br />Пример на основе &nbsp;стратегии &nbsp;пересечения двух скользящих средних.<br />Помещаем два индикатора на график цены инструмента<br />Присваиваем им идентификаторы MOV1 и MOV2 &nbsp;как на рисунке:<br /> <br /> &nbsp; &nbsp; &nbsp; <br /><br />далее &nbsp;пишем индикатор &nbsp;&quot;nk_bot&quot; &nbsp;
====code====
<pre>
</pre>
=============
 &nbsp;<br />и помещаем его на график инструмента<br />В результате получим на истории торгов сигналы &quot;купить/ продать&quot; на графике инструмента<br /> &nbsp; &nbsp;<br />---------------------<br />На основе данного примера &nbsp;Вы можете построить советник для &nbsp;любых индикаторов,<br /> которые встроены в терминал КВИК &nbsp;или написаны кем-то.<br />=============<br /> подскажите почему этот индикатор показывает метки на buy/sell не у графика, а с самого верху и низу, не могу понять, что не так ((<br />=============<br /><br />У Вас сильно растянут масштаб по Y<br />Уберите &nbsp;добавки в значениях сигналов<br />исправьте так:
====code====
<pre> if jU and jU_==nil then jBu=i; Bu=L(i); end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if jD and jD_==nil then jSe=i; Se=H(i); end</pre>
============= <br />
			<i>30.07.2025 19:38:32, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message79236/topic7630/</link>
			<guid>http://forum.quik.ru/messages/forum17/message79236/topic7630/</guid>
			<pubDate>Wed, 30 Jul 2025 19:38:32 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
		<item>
			<title>Lua советник</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message79234/topic7630/">Lua советник</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_oEA8eaZJ" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Добрый день,<br />---------------------------<br />Пример простого, универсального советника на луа на основе любых индикаторов.<br />------------------------------<br />Советник - это программа, <br />которая формирует сигналы &quot;купить/продать&quot; и показывает их, но не совершает сделки.<br />---------------------<br />Пример на основе &nbsp;стратегии &nbsp;пересечения двух скользящих средних.<br />Помещаем два индикатора на график цены инструмента<br />Присваиваем им идентификаторы MOV1 и MOV2 &nbsp;как на рисунке:<br /> <br /> &nbsp; &nbsp; &nbsp; <br /><br />далее &nbsp;пишем индикатор &nbsp;&quot;nk_bot&quot; 
====code====
<pre>&nbsp;&nbsp;Settings = { i1 =&nbsp;&nbsp;"MOV2" ,i2 =&nbsp;&nbsp;"MOV1" , Name&nbsp;&nbsp;=&nbsp;&nbsp; 'nk_bot' , }
 ------------------ 
 local&nbsp;&nbsp; function&nbsp;&nbsp; gI (s,j,i)
&nbsp;&nbsp;local&nbsp;&nbsp;t =&nbsp;&nbsp;getCandlesByIndex (s,j,i -&nbsp;&nbsp;1 , 1 );&nbsp;&nbsp;if&nbsp;&nbsp;t&nbsp;&nbsp;then&nbsp;&nbsp; return&nbsp;&nbsp;t&#91; 0 &#93;.close;&nbsp;&nbsp;else&nbsp;&nbsp; return&nbsp;&nbsp; 0&nbsp;&nbsp; end 
 end&nbsp;&nbsp; --значение индикатора 
 ------------------------- 
 local&nbsp;&nbsp; function&nbsp;&nbsp; cross (s1,j1,s2,j2,i)
&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;&nbsp;m = i;&nbsp;&nbsp;local&nbsp;&nbsp;x =&nbsp;&nbsp;gI(s1,j1,m)&nbsp;&nbsp;local&nbsp;&nbsp;x1 = gI(s2,j2,m);
&nbsp;&nbsp;&nbsp;&nbsp; while&nbsp;&nbsp;m &#62;&nbsp;&nbsp;1&nbsp;&nbsp; and&nbsp;&nbsp;x~ =&nbsp;&nbsp;0&nbsp;&nbsp; and&nbsp;&nbsp;x1~ =&nbsp;&nbsp;0&nbsp;&nbsp; and&nbsp;&nbsp;x &#62; x1&nbsp;&nbsp;do&nbsp;&nbsp;m = m -&nbsp;&nbsp;1 ; x = gI(s1,j1,m); x1 = gI(s2,j2,m)&nbsp;&nbsp;end 
&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;m &#62;&nbsp;&nbsp;1&nbsp;&nbsp; and&nbsp;&nbsp;i &#62; m&nbsp;&nbsp;then&nbsp;&nbsp; return&nbsp;&nbsp;m&nbsp;&nbsp;end 
 end&nbsp;&nbsp;&nbsp;&nbsp;--пересечение 
 -------------------------- 
 function&nbsp;&nbsp; OnCalculate (i)
&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;&nbsp;Bu,Se;&nbsp;&nbsp;local&nbsp;&nbsp;i1 = i -&nbsp;&nbsp;1 ;
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;i &#62;&nbsp;&nbsp;1&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;jU_,jD_ = jU,jD;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jU = cross(Settings.i1, 0 ,Settings.i2, 0 ,i1);&nbsp;&nbsp;--MOV1 пересекает MOV2 снизу вверх 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jD = cross(Settings.i2, 0 ,Settings.i1, 0 ,i1);&nbsp;&nbsp;--MOV1 пересекает MOV2 сверху вниз 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;jU&nbsp;&nbsp;and&nbsp;&nbsp;jU_ =&nbsp;&nbsp;=&nbsp;&nbsp;nil&nbsp;&nbsp; then&nbsp;&nbsp;jBu = i; Bu = L(i) -&nbsp;&nbsp;0.1 ;&nbsp;&nbsp;end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;jD&nbsp;&nbsp;and&nbsp;&nbsp;jD_ =&nbsp;&nbsp;=&nbsp;&nbsp;nil&nbsp;&nbsp; then&nbsp;&nbsp;jSe = i; Se = H(i) +&nbsp;&nbsp;0.1 ;&nbsp;&nbsp;end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;i =&nbsp;&nbsp;=&nbsp;&nbsp;Size ()&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;-- последняя свеча 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;end 
 return&nbsp;&nbsp;Se,Bu;
 end 
 ----- 
 function&nbsp;&nbsp; Init ()
 local&nbsp;&nbsp;t = {};
&nbsp;&nbsp; t&#91; # t +&nbsp;&nbsp;1 &#93; = {Name&nbsp;&nbsp;=&nbsp;&nbsp; "Se" ,Color&nbsp;&nbsp;=&nbsp;&nbsp; RGB ( 255 , 0 , 0 ),Type&nbsp;&nbsp;=&nbsp;&nbsp; 11 ,Width&nbsp;&nbsp;=&nbsp;&nbsp;3 };&nbsp;&nbsp;&nbsp;&nbsp;---sell 
&nbsp;&nbsp; t&#91; # t +&nbsp;&nbsp;1 &#93; = {Name&nbsp;&nbsp;=&nbsp;&nbsp; "Bu" ,Color&nbsp;&nbsp;=&nbsp;&nbsp; RGB ( 0 , 255 , 0 ),Type&nbsp;&nbsp;=&nbsp;&nbsp; 10 ,Width&nbsp;&nbsp;=&nbsp;&nbsp;3 };&nbsp;&nbsp;&nbsp;&nbsp;---buy 
Settings.line = t;
 return&nbsp;&nbsp; # t;
 end 
&nbsp;&nbsp;</pre>
=============
 <br />и помещаем его на график инструмента<br />В результате получим на истории торгов сигналы &quot;купить/ продать&quot; на графике инструмента<br /> &nbsp; &nbsp;<br />---------------------<br />На основе данного примера &nbsp;Вы можете построить советник для &nbsp;любых индикаторов,<br /> которые встроены в терминал КВИК &nbsp;или написаны кем-то.<br />=============<br />подскажите почему этот индикатор показывает метки на buy/sell не у графика, а с самого верху и низу, не могу понять, что не так (( <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=12658&" width="929" height="774" /><br /><i>30.07.2025 18:32:07, Тони.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message79234/topic7630/</link>
			<guid>http://forum.quik.ru/messages/forum17/message79234/topic7630/</guid>
			<pubDate>Wed, 30 Jul 2025 18:32:07 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
		<item>
			<title>Lua советник</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message76517/topic7630/">Lua советник</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			Идея советника интересна, но вот приведенная стратегия не выдерживает критики<br /><br />Ну если говорить о пересечении меньшим MA большего, то в теории это все работает и очень даже красиво, но вот на практике нет<br />Когда MA пересеклись, то уже поздно совершать сделку<br /><br />Переделайте индикатор, чтобы он выдавал сигнал на сделку не на максимуме и минимуме свечи (что поймать практически нереально), а, например, на закрытии, и картина будет совершенно другая. <br />
			<i>28.08.2024 17:33:26, BlaZed.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message76517/topic7630/</link>
			<guid>http://forum.quik.ru/messages/forum17/message76517/topic7630/</guid>
			<pubDate>Wed, 28 Aug 2024 17:33:26 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
		<item>
			<title>Lua советник</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message76516/topic7630/">Lua советник</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			<a class="blog-p-user-name" id="bp_w48b4lDO" href="/user/62/" bx-tooltip-user-id="62">nikolz</a>, доброго времени суток!<br />можно получить ваш индикатор прибыли/убытков? <br />
			<i>28.08.2024 16:05:25, Megagogar.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message76516/topic7630/</link>
			<guid>http://forum.quik.ru/messages/forum17/message76516/topic7630/</guid>
			<pubDate>Wed, 28 Aug 2024 16:05:25 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
		<item>
			<title>Lua советник</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message65711/topic7630/">Lua советник</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			если кому-то нужен индикатор прибыли/убытков, <br />или есть пожелание, что надо добавить<br />пишите вежливо. <br />
			<i>19.09.2022 08:20:31, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message65711/topic7630/</link>
			<guid>http://forum.quik.ru/messages/forum17/message65711/topic7630/</guid>
			<pubDate>Mon, 19 Sep 2022 08:20:31 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
		<item>
			<title>Lua советник</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message65710/topic7630/">Lua советник</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			это картинки работы советника на Сбербанке.<br />второй график - индикатор прибыли(зеленый) убытков(красный) итого (белый)<br />--------------------<br />интервал 30 минут:<br />[FILE ID=9804] <br />интервал 5 минут:<br />[FILE ID=9805] <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=9804&" width="1250" height="882" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=9805&" width="1280" height="894" /><br /><i>19.09.2022 08:17:10, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message65710/topic7630/</link>
			<guid>http://forum.quik.ru/messages/forum17/message65710/topic7630/</guid>
			<pubDate>Mon, 19 Sep 2022 08:17:10 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
		<item>
			<title>Lua советник</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message65695/topic7630/">Lua советник</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			Добрый день,<br />---------------------------<br />Пример простого, универсального советника на луа на основе любых индикаторов.<br />------------------------------<br />Советник - это программа, <br />которая формирует сигналы &quot;купить/продать&quot; и показывает их, но не совершает сделки.<br />---------------------<br />Пример на основе &nbsp;стратегии &nbsp;пересечения двух скользящих средних.<br />Помещаем два индикатора на график цены инструмента<br />Присваиваем им идентификаторы MOV1 и MOV2 &nbsp;как на рисунке:<br /> <br /> &nbsp;[FILE ID=9785]  <br /><br />далее &nbsp;пишем индикатор &nbsp;&quot;nk_bot&quot;
====code====
<pre>Settings={ i1="MOV2",i2="MOV1", Name = 'nk_bot', }
------------------
local function gI(s,j,i)
 local t=getCandlesByIndex(s,j,i-1,1); if t then return t&#91;0&#93;.close; else return 0 end
end --значение индикатора
-------------------------
local function cross(s1,j1,s2,j2,i)
&nbsp;&nbsp;&nbsp;local m=i; local x= gI(s1,j1,m) local x1=gI(s2,j2,m);
&nbsp;&nbsp;&nbsp; while m&#62;1 and x~=0 and x1~=0 and x&#62;x1 do m=m-1; x=gI(s1,j1,m); x1=gI(s2,j2,m) end
&nbsp;&nbsp;&nbsp; if m&#62;1 and i&#62;m then return m end
end&nbsp;&nbsp;--пересечение
--------------------------
function OnCalculate(i)
&nbsp;&nbsp;&nbsp;local Bu,Se; local i1=i-1;
&nbsp;&nbsp;&nbsp;if i&#62;1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local jU_,jD_=jU,jD;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jU=cross(Settings.i1,0,Settings.i2,0,i1); --MOV1 пересекает MOV2 снизу вверх
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jD=cross(Settings.i2,0,Settings.i1,0,i1); --MOV1 пересекает MOV2 сверху вниз
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if jU and jU_==nil then jBu=i; Bu=L(i)-0.1; end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if jD and jD_==nil then jSe=i; Se=H(i)+0.1; end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if i==Size() then&nbsp;&nbsp;-- последняя свеча
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
return Se,Bu;
end
-----
function Init()
local t={};
&nbsp;&nbsp;&nbsp;t&#91;#t+1&#93;={Name = "Se",Color = RGB(255,0,0),Type = 11,Width =3};&nbsp;&nbsp; ---sell
&nbsp;&nbsp;&nbsp;t&#91;#t+1&#93;={Name = "Bu",Color = RGB(0,255,0),Type = 10,Width =3};&nbsp;&nbsp; ---buy
Settings.line=t;
return #t;
end
</pre>
=============
<br />и помещаем его на график инструмента<br />В результате получим на истории торгов сигналы &quot;купить/ продать&quot; на графике инструмента<br />[FILE ID=9788] <br />---------------------<br />На основе данного примера &nbsp;Вы можете построить советник для &nbsp;любых индикаторов,<br /> которые встроены в терминал КВИК &nbsp;или написаны кем-то. <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=9785&" width="644" height="504" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=9788&" width="1480" height="942" /><br /><i>18.09.2022 10:43:57, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message65695/topic7630/</link>
			<guid>http://forum.quik.ru/messages/forum17/message65695/topic7630/</guid>
			<pubDate>Sun, 18 Sep 2022 10:43:57 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
	</channel>
</rss>
